분산 애플리케이션 추세가 계속되면서 Java 애플리케이션 테스트가 점점 더 복잡해지고 있습니다. 분산 시스템에는 수많은 마이크로서비스가 포함되므로 일관성을 보장하고 오류를 관리하며 모든 구성 요소에서 데이터 무결성을 확인하는 것이 필수적입니다. 애플리케이션이 예상대로 작동하는지 보장하려면 포괄적인 엔드투엔드 테스트가 중요합니다.
행동 중심 개발(BDD)은 애플리케이션 동작을 자연어로 정의하고 분산 애플리케이션에 대한 테스트 사례에 대한 설명과 이해를 단순화하여 이러한 과제를 해결합니다.
그러나 BDD를 분산 Java 애플리케이션 테스트에 통합하는 데에는 고유한 과제가 있습니다. 여러 서비스에 대한 BDD 시나리오 유지 관리, 테스트 환경 조정, 서비스 및 테스트 데이터 관리는 어려운 작업이 될 수 있습니다.
이 블로그 게시물에서는 Testkube가 분산 Java 애플리케이션용 Cucumber를 사용하여 BDD 테스트를 간소화하여 프로세스를 더욱 효율적이고 관리하기 쉽게 만드는 방법을 살펴보겠습니다.
오이는 널리 사용되는 BDD 테스트 도구 중 하나입니다. 팀이 자연어를 사용하여 애플리케이션 기능을 정의할 수 있도록 하는 Gherkin을 사용합니다. 여기에는 Java를 포함한 다양한 프로그래밍 언어에 대한 지원이 포함됩니다. 또한 널리 사용되는 개발 프레임워크와 잘 통합되므로 널리 선택됩니다. 마지막으로 자세한 보고서를 생성하여 테스트에 대한 통찰력을 제공합니다.
Cucumber는 BDD 구현을 위한 훌륭한 도구이지만, 특히 Kubernetes 환경에서 분산 애플리케이션을 테스트할 때 문제가 있습니다.
테스트 데이터를 처리하는 것은 어려울 수 있으며, 특히 Kubernetes와 같은 분산 환경에서는 더욱 그렇습니다. Cucumber는 단계 간에 상태 및 테스트 데이터를 공유해야 하므로 격리가 복잡하면서도 중요합니다.
컴퓨팅, 메모리, 스토리지 등의 리소스는 Kubernetes에서 동적으로 프로비저닝됩니다. 오이는 이러한 리소스에 액세스해야 하며 이를 구성하는 것은 어렵습니다.
분산된 오이 테스트 실행에서 테스트 결과를 집계하는 것은 어려우며 모든 결과를 하나의 대시보드 아래로 가져오려면 추가 설정이 필요할 수 있습니다.
Kubernetes는 배포, 확장 및 앱 관리를 자동화하는 동시에 Cucumber가 작동하도록 구성하는 것과 함께 관리해야 하는 추가 추상화 계층을 추가합니다. 이것이 바로 Testkube와 같은 도구가 등장하는 곳입니다.
Testkube는 전체 테스트 프로세스를 단순화하고 간소화하기 위해 Kubernetes용으로 구축된 통합 테스트 프레임워크를 제공합니다. 테스트 팀은 Kubernetes 클러스터에서 테스트를 저장, 실행 및 관리할 수 있습니다. 테스트를 Kubernetes CRD로 정의하여 모든 테스트를 관리하고 필요할 때 확장하기 위한 최신 솔루션을 제공합니다.
Testkube를 사용하면 필요한 인프라 구성 요소 프로비저닝부터 다른 테스트 도구와의 원활한 통합 및 복잡한 테스트 조정에 이르기까지 모든 것을 포함하는 테스트 워크플로를 생성할 수 있습니다. 자세한 내용은 테스트 워크플로를 참조하세요.
BDD 테스트를 위해 Testkube와 함께 Cucumber를 사용하는 방법을 살펴보겠습니다. Gradle을 사용하여 테스트 워크플로를 만들고 여기에 Cucumber 테스트를 통합하겠습니다.
이 저장소에는 이 예제에 필요한 모든 파일이 포함되어 있습니다.
Testkube 계정을 만드세요.
Kubernetes 클러스터 - 로컬 Minikube 클러스터를 사용하고 있습니다.
클러스터에 구성된 Testkube 에이전트.
전제 조건이 충족되면 Testkube 에이전트가 구성된 대상 Kubernetes 클러스터가 준비되어야 합니다.
테스트 워크플로 탭으로 이동하여 '새 테스트 워크플로 추가'를 클릭하세요.
다음 세 가지 옵션이 제공됩니다.
처음부터 만들기 - 마법사를 사용하여 테스트 워크플로 만들기.
예제에서 시작 - 기존 k6, 사이프러스, 극작가 예 사용.
yaml에서 가져오기 - 자신만의 테스트 워크플로를 가져옵니다.
이 워크플로를 만들려면 '처음부터 만들기' 옵션을 선택하겠습니다.
워크플로 이름을 지정하고 유형을 Gradle로 선택하세요.
실행 명령을 제공합니다. 이 경우 Gradle 테스트를 제공하겠습니다.
Gradle 버전을 제공하면 8.5.0-jdk11을 사용하겠습니다.
다음 화면에서 테스트 파일의 소스를 입력하세요. 이는 Git Repo, 문자열 또는 파일일 수 있습니다. 이 경우 Git 저장소를 사용하겠습니다.
다음 화면에서는 yaml 사양 파일을 생성하고 출력을 표시합니다.
단계 실패 여부에 관계없이 로그가 항상 수집되도록 아티팩트 단계에 항상 조건을 추가하여 yaml을 업데이트합니다.
kind: TestWorkflow apiVersion: testworkflows.testkube.io/v1 metadata: name: gradle-cucumber namespace: testkube labels: test-workflow-templates: "yes" spec: use: - name: official--gradle--beta config: run: gradle test version: 8.5.0-jdk11 content: git: uri:<a href="https://github.com/kubeshop/testkube-examples.git"> https://github.com/kubeshop/testkube-examples.git</a> revision: main paths: - Cucumber Test Using Gradle container: workingDir: /data/repo/Cucumber Test Using Gradle steps: - condition: always artifacts: paths: - '**/*'
YAML 파일은 YAML에 제공한 세부정보를 나열하므로 설명이 필요하지 않습니다. 아래는 우리가 테스트하고 있는 내용을 설명하는 Cucumber 기능 파일입니다.
Feature: Hello World Scenario: Print Hello World Given I have a working hello world example When I run the hello world example Then I should see "Hello World" on the console
저장소에는 오이 테스트를 실행하기 위한 관련 코드가 포함된 테스트 단계 및 테스트 실행기를 비롯한 기타 파일이 포함되어 있습니다.
테스트 워크플로를 생성하려면 '만들기'를 클릭하세요.
워크플로가 준비되면 새로 생성된 테스트 워크플로가 화면에 표시됩니다. 이를 클릭하고 "지금 실행"을 클릭하면 워크플로가 시작됩니다.
모든 단계의 실시간 로그와 함께 실행되는 워크플로를 볼 수 있습니다.
테스트 실행에 따른 테스트 결과를 보실 수 있습니다. 이 경우 테스트를 실패하도록 수정했으므로 실패가 표시됩니다.
이를 위해 아티팩트를 구성했으므로 아티팩트 탭으로 이동하여 Cucumber가 생성한 보고서를 볼 수 있습니다. Testkube는 실행될 때마다 이러한 보고서를 저장하므로 테스트를 더 쉽게 분석할 수 있습니다.
Kubernetes 테스트를 위해 Gradle을 사용하여 오이 테스트 워크플로를 생성하는 간단한 데모였습니다. 테스트 워크플로를 더 활용하려면 사용자 정의 워크플로를 생성하고 이를 Testkube로 가져올 수 있습니다.
이 게시물은 분산 Java 애플리케이션 테스트를 위한 BDD 테스트 실행의 복잡성을 요약합니다. 널리 사용되는 BDD 테스트 도구인 Cucumber와 이를 Kubernetes에서 실행하는 데 따른 복잡성을 살펴보았습니다.
또한 테스트의 모든 측면을 관리할 수 있는 전체 테스트 워크플로를 단일 파일로 가져오는 테스트 워크플로도 살펴보았습니다. 데모에서는 Java 애플리케이션의 BDD 테스트에 Cucumber를 사용하는 방법을 보여주었습니다.
통합할 수 있는 다른 테스트 도구에 대해 자세히 알아보려면 Testkube 웹사이트를 방문하세요. 문제가 있는 경우 활동적인 Slack 커뮤니티에 자유롭게 메모를 게시해 주세요.
위 내용은 Testkube를 사용하여 분산 Java 애플리케이션에 대한 BDD 테스트 단순화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!