튜토리얼: 신뢰도 테스트 도구 모음의 신뢰도 테스트 사용 - AWS IoT Greengrass

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

튜토리얼: 신뢰도 테스트 도구 모음의 신뢰도 테스트 사용

AWS IoT Greengrass테스트 프레임워크 (GTF) 와 Greengrass 개발 키트 (GDK) 는 개발자에게 테스트를 실행할 수 있는 방법을 제공합니다. end-to-end 이 튜토리얼을 완료하여 구성 요소로 GDK 프로젝트를 초기화하고, end-to-end 테스트 모듈로 GDK 프로젝트를 초기화하고, 신뢰도 테스트 스위트의 신뢰도 테스트를 사용할 수 있습니다. 사용자 지정 테스트 케이스를 빌드한 후 테스트를 실행할 수 있습니다.

신뢰도 테스트는 기본 구성 요소 동작을 검증하는 Greengrass에서 제공하는 일반 테스트입니다. 이러한 테스트는 보다 구체적인 구성 요소 요구 사항에 맞게 수정하거나 확장할 수 있습니다.

이 자습서에서는 HelloWorld 구성 요소를 사용합니다. 다른 구성 요소를 사용하는 경우 구성 요소를 해당 HelloWorld 구성 요소로 교체하십시오.

이 자습서에서는 다음 작업을 수행합니다.

  1. 구성 요소로 GDK 프로젝트를 초기화합니다.

  2. 테스트 모듈을 사용하여 GDK 프로젝트를 초기화합니다. end-to-end

  3. 신뢰도 테스트 스위트의 테스트를 사용하세요.

  4. 새 테스트 케이스에 태그를 추가합니다.

  5. 테스트 JAR을 빌드하세요.

  6. 테스트를 실행합니다.

사전 조건

이 튜토리얼을 완료하려면 다음이 필요합니다.

  • GDK 버전 1.6.0 이상

  • Java

  • Maven

  • Git

1단계: 구성 요소를 사용하여 GDK 프로젝트 초기화

  • GDK 프로젝트로 빈 폴더를 초기화합니다. 다음 명령을 실행하여 Python으로 구현된 HelloWorld 구성 요소를 다운로드합니다.

    gdk component init -t HelloWorld -l python -n HelloWorld

    이 명령은 현재 HelloWorld 디렉터리에 이름이 지정된 새 디렉터리를 만듭니다.

2단계: 테스트 모듈로 GDK 프로젝트 초기화 end-to-end

  • GDK를 사용하면 기능 및 단계 구현으로 구성된 테스트 모듈 템플릿을 다운로드할 수 있습니다. 다음 명령을 실행하여 HelloWorld 디렉터리를 열고 테스트 모듈을 사용하여 기존 GDK 프로젝트를 초기화합니다.

    cd HelloWorld gdk test-e2e init

    이 명령은 디렉터리 gg-e2e-tests 내에 이름이 지정된 새 디렉터리를 만듭니다. HelloWorld 이 테스트 디렉토리는 Greengrass 테스트 독립형 JAR에 종속되는 Maven 프로젝트입니다.

3단계: 컨피던스 테스트 스위트의 테스트 사용

신뢰도 테스트 사례 작성은 제공된 기능 파일을 사용하고 필요한 경우 시나리오를 수정하는 것으로 구성됩니다. 신뢰도 테스트 사용의 예는 을 참조하십시오예: 사용자 지정 테스트 케이스 만들기. 신뢰도 테스트를 사용하려면 다음 단계를 따르세요.

  • 제공된 기능 파일을 사용하세요.

    현재 디렉터리의 gg-e2e-tests/src/main/resources/greengrass/features 폴더로 이동합니다. 샘플 confidenceTest.feature 파일을 열어 신뢰도 테스트를 사용하십시오.

4단계: 새 테스트 케이스에 태그 추가

  • 기능 및 시나리오에 태그를 할당하여 테스트 프로세스를 구성할 수 있습니다. 태그를 사용하여 시나리오의 하위 집합을 분류하고 실행할 후크를 조건부로 선택할 수도 있습니다. 기능 및 시나리오에는 공백으로 구분된 여러 개의 태그가 있을 수 있습니다.

    이 예시에서는 HelloWorld 컴포넌트를 사용하고 있습니다.

    각 시나리오에는 태그가 지정되어 있습니다. @ConfidenceTest 테스트 스위트의 일부만 실행하려는 경우 태그를 변경하거나 추가하세요. 각 테스트 시나리오는 각 신뢰도 테스트의 상단에 설명되어 있습니다. 시나리오는 각 테스트 사례의 상호 작용과 예상 결과를 이해하는 데 도움이 되는 일련의 단계입니다. 자체 단계를 추가하거나 기존 단계를 수정하여 이러한 테스트를 확장할 수 있습니다.

    @ConfidenceTest Scenario: As a Developer, I can deploy GDK_COMPONENT_NAME to my device and see it is working as expected ....

5단계: 테스트 JAR 빌드

  1. 구성 요소를 빌드합니다. 테스트 모듈을 빌드하기 전에 구성 요소를 빌드해야 합니다.

    gdk component build
  2. 다음 명령을 사용하여 테스트 모듈을 빌드합니다. 이 명령은 greengrass-build 폴더에 테스트 JAR을 빌드합니다.

    gdk test-e2e build

6단계: 테스트 실행

신뢰도 테스트를 실행하면 GTF는 테스트 중에 생성된 리소스를 관리하는 동시에 테스트의 라이프사이클을 자동화합니다. 먼저 테스트 대상 장치 (DUT) 를 AWS IoT 사물로 프로비저닝하고 여기에 Greengrass 코어 소프트웨어를 설치합니다. 그러면 해당 경로에 지정된 레시피를 HelloWorld 사용하여 이름이 지정된 새 구성 요소가 생성됩니다. 그런 다음 Greengrass 사물 배포를 통해 HelloWorld 구성 요소를 코어 장치에 배포합니다. 그런 다음 배포가 성공했는지 여부를 확인합니다. 배포가 성공하면 배포 상태가 3분 COMPLETED 이내로 변경됩니다.

  1. 프로젝트 디렉터리의 gdk-config.json 파일로 이동하여 ConfidenceTest 태그 또는 4단계에서 지정한 태그 중 하나를 사용하여 테스트를 대상으로 지정합니다. 다음 명령어를 사용하여 test-e2e 키를 업데이트합니다.

    "test-e2e":{ "gtf_options" : { "tags":"ConfidenceTest" } }
  2. 테스트를 실행하기 전에 호스트 기기에 AWS 자격 증명을 제공해야 합니다. GTF는 테스트 프로세스 중에 이러한 자격 증명을 사용하여 AWS 리소스를 관리합니다. 제공하는 역할에 테스트에 포함된 필수 작업을 자동화할 수 있는 권한이 있는지 확인하세요.

    다음 명령을 실행하여 AWS 자격 증명을 제공하십시오.

    1. Linux or Unix
      export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
      Windows Command Prompt (CMD)
      set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
      PowerShell
      $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
  3. 다음 명령을 사용하여 테스트를 실행합니다.

    gdk test-e2e run

    이 명령은 greengrass-build 폴더에 있는 Greengrass 핵의 최신 버전을 다운로드하고 이를 사용하여 테스트를 실행합니다. 또한 이 명령은 ConfidenceTest 태그가 있는 시나리오만 대상으로 하고 해당 시나리오에 대한 보고서를 생성합니다. 이 테스트 중에 생성된 AWS 리소스는 테스트가 끝나면 삭제되는 것을 확인할 수 있습니다.

예: 신뢰도 테스트 사용

GDK 프로젝트에서 다운로드한 테스트 모듈은 제공된 기능 파일로 구성되어 있습니다.

다음 예제에서는 Greengrass 소프트웨어의 사물 배포 기능을 테스트하기 위해 기능 파일을 사용합니다. AWS 클라우드Greengrass를 통해 구성 요소를 배포하는 시나리오를 사용하여 이 기능의 기능을 부분적으로 테스트합니다. 이 단계는 이 사용 사례의 상호 작용과 예상 결과를 이해하는 데 도움이 되는 일련의 단계입니다.

  • 제공된 기능 파일을 사용하세요.

    현재 디렉터리의 gg-e2e-tests/src/main/resources/greengrass/features 폴더로 이동합니다. 다음 예와 같은 샘플을 confidenceTest.feature 찾을 수 있습니다.

    Feature: Confidence Test Suite Background: Given my device is registered as a Thing And my device is running Greengrass @ConfidenceTest Scenario: As a Developer, I can deploy GDK_COMPONENT_NAME to my device and see it is working as expected When I create a Greengrass deployment with components | GDK_COMPONENT_NAME | GDK_COMPONENT_RECIPE_FILE | | aws.greengrass.Cli | LATEST | And I deploy the Greengrass deployment configuration Then the Greengrass deployment is COMPLETED on the device after 180 seconds # Update component state accordingly. Possible states: {RUNNING, FINISHED, BROKEN, STOPPING} And I verify the GDK_COMPONENT_NAME component is RUNNING using the greengrass-cli

    각 테스트 시나리오는 각 신뢰 테스트의 상단에 설명되어 있습니다. 시나리오는 각 테스트 사례의 상호 작용과 예상 결과를 이해하는 데 도움이 되는 일련의 단계입니다. 자체 단계를 추가하거나 기존 단계를 수정하여 이러한 테스트를 확장할 수 있습니다. 각 시나리오에는 이러한 조정을 수행하는 데 도움이 되는 설명이 포함되어 있습니다.