단지 API를 테스트하기 위해 RestAssured에서 끝없는 반복 코드 라인을 작성하는 데 지치셨다면 여러분은 혼자가 아닙니다. API 테스트는 까다롭게 느껴져서는 안 되지만, 현실을 직시하면 REST Assured는 프로세스를 지루하고 불필요하게 시간 소모적으로 만들 수 있습니다. 하지만 그 힘든 일을 뒤로하고 떠날 수 있다면 어떨까요?
이 가이드에서는 API를 테스트하는 더 스마트한 제로 코드 방법인 Keploy로 전환하는 방법을 보여 드리겠습니다. API 테스트를 더 빠르고 쉽게, 감히 말하자면 재미있게 만들어 보겠습니다! 업그레이드할 준비가 되셨나요?
REST Assured는 RESTful 웹 서비스 테스트에 사용되는 인기 있는 Java 라이브러리입니다. 테스트 작성을 위한 DSL(도메인별 언어)을 제공하므로 개발자는 API의 응답을 효과적으로 확인할 수 있습니다. 다음과 같은 기능을 제공합니다:
JUnit 및 TestNG와 같은 테스트 프레임워크와 쉽게 통합됩니다.
다양한 HTTP 메소드(GET, POST, PUT, DELETE)를 지원합니다.
그러나 API가 더욱 복잡해지고 테스트 요구가 증가함에 따라 REST Assured에 의존하는 것은 큰 어려움이 될 수 있습니다. 현실을 직시합시다:
수동 테스트 작성은 반복적이고 시간이 많이 걸립니다.
테스트 유지 관리는 특히 API가 발전할 때 악몽입니다.
커버리지 보고는 내장되어 있지 않으며 Jacoco와 같은 라이브러리를 사용하여 설정해야 합니다.
복잡한 설정은 개발 시간을 잡아먹고 엔지니어의 핵심 작업을 방해합니다.
여기서 Keploy가 개입합니다. Keploy는 테스트 프로세스를 자동화하여 엔지니어링 노력을 20% 이상 줄이고 팀이 중요한 일, 즉 고품질 소프트웨어 제공에 집중할 수 있도록 해줍니다.
Keploy는 API 상호 작용을 캡처하고 나중에 재생하여 API 테스트를 자동화하도록 설계된 오픈 소스 도구입니다. 주요 기능 중 일부는 다음과 같습니다.
데이터 모킹 자동 생성: Keploy는 마이크로서비스, 데이터베이스 등 다양한 종속성과의 상호작용을 기반으로 모의를 자동으로 생성할 수 있으므로 수동 모의 생성 필요성이 줄어듭니다.
저비용 실행: Keploy는 복잡한 전용 테스트 환경 설정이 필요하지 않습니다. 이를 통해 병렬 환경 관리에 따른 오버헤드가 줄어들고 인프라와 관련된 비용이 절감됩니다.
제로 코드 테스트: 개발자가 모든 테스트를 수동으로 작성해야 하는 RestAssured와 달리 Keploy는 API 상호 작용을 캡처하고 테스트를 자동으로 생성하여 제로 코드 접근 방식을 제공합니다.
쉬운 통합: CI/CD 파이프라인 및 JUnit, TestNG, GitHub Action 등과 같은 기타 테스트 도구와 잘 통합됩니다.
포괄적인 테스트 적용 범위: Keploy는 엣지 케이스를 포함한 실제 API 상호 작용을 캡처하므로 RestAssured에서 수동으로 작성된 테스트에 비해 더 광범위하고 현실적인 테스트 적용 범위를 보장하는 데 도움이 됩니다.
이 가이드의 데이터베이스로 Postgres를 사용하여 Java로 간단한 직원-관리자 애플리케이션을 실행하겠습니다.
마이그레이션하기 전에 기존 RestAssured 테스트 제품군에 대한 종합적인 평가를 수행하세요.
기존 테스트 사례 식별: 모든 기존 테스트 사례와 해당 기능을 문서화합니다.
종속성 참고: 마이그레이션 프로세스에 영향을 미칠 수 있는 종속성을 식별합니다.
테스트 케이스를 실행하여 모든 것이 제대로 작동하는지 확인해 보겠습니다
mvn test
모든 테스트 케이스가 통과되었는지 관찰하고 jacoco가 설치되었으므로 적용 범위도 확인할 수 있습니다.
테스트 제품군의 커버리지가 약 68% 확보되었습니다.
Keploy 및 마이그레이션 프로세스를 설정해 보겠습니다.
Keploy 설치: Keploy GitHub 저장소의 설치 지침에 따라 Keploy를 설정할 수 있습니다.
터미널에서 Keploy 명령을 실행하여 설치를 확인할 수 있으며, 아래 출력을 볼 수 있습니다.
기존 REST Assured 테스트 사례를 마이그레이션하는 프로세스를 시작해 보겠습니다.
@BeforeEach public void setUp() { RestAssured.baseURI = "http://localhost"; RestAssured.port = 8080; // Clean up repository to ensure fresh data for each test employeeRepository.deleteAll(); // Create and save test employee testEmployee = new Employee(); testEmployee.setFirstName("John"); testEmployee.setLastName("Doe"); testEmployee.setEmail("john.doe@example.com"); employeeRepository.save(testEmployee); // save to generate ID }
애플리케이션이 포트 8080에서 로컬로 실행되므로 RestAssured.port가 8080에서도 실행되도록 구성하여 Keploy가 API 상호 작용을 캡처하고 REST Assured TestSuite가 실행될 때 새 테스트 모음을 생성할 수 있도록 했습니다.
mvn clean install -Dmaven.test.skip=true를 실행하여 애플리케이션용 jar 파일을 생성해 보겠습니다.
Jar 파일이 준비되면 레코드 모드에서 keploy를 시작하여 테스트 사례를 캡처해 보겠습니다. 이제 docker-compose up postgres를 사용하여 데이터베이스를 가동하고 실행할 시간입니다. -
새 터미널에서 keploy Record -c "java -jar target/springbootapp-0.0.1-SNAPSHOT.jar"을 실행해 보겠습니다. -
이제 테스트 도구 모음을 마이그레이션하기 위한 모든 준비와 설정이 완료되었습니다. 이제 기존 REST Assured 테스트 스위트를 실행할 시간입니다. 이 실행을 통해 Keploy는 API 요청 및 응답을 캡처할 수 있습니다.
keploy에서 생성된 각 테스트 케이스는 REST Assured 테스트 케이스입니다. -
mvn test
REST Assured 테스트 케이스를 keploy 테스트 스위트로 성공적으로 마이그레이션했습니다. 다음은 그러한 keploy 테스트 사례 중 하나입니다. -
그러면 - keploy test -c "java -jar target/springbootapp-0.0.1-SNAPSHOT.jar" --delay 10: -
을 실행하여 keploy 테스트 스위트를 실행해 보겠습니다.노이즈가 있어서 한 번의 테스트는 실패했고, keploy로 ~70.5% 정도의 커버리지를 얻었습니다.
REST Assured에서 Keploy로 마이그레이션하면 제로 코드 테스트, 실시간 피드백, 간소화된 CI/CD 통합 등 다양한 이점이 제공되었습니다. 이 가이드에 설명된 단계를 따르면 API 테스트 요구 사항에 맞게 Keploy의 이점을 극대화하면서 원활한 전환을 보장할 수 있습니다.
Keploy를 채택하면 개발팀이 엔지니어링 노력을 줄이고 고품질 소프트웨어를 제공하는 데 더 집중할 수 있어 궁극적으로 생산성과 소프트웨어 품질이 향상됩니다.
CI/CD - https://keploy.io/docs/ci-cd/jenkins/
Cloud 평가판 다운로드 - https://keploy.io/docs/keploy-cloud/cloud-installation/
위 내용은 REST Assured에서 Keploy로 마이그레이션하려고 하시나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!