IDT 테스트 오케스트레이터 구성 - AWS IoT Greengrass

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

IDT 테스트 오케스트레이터 구성

IDT v4.5.1부터 IDT에는 새로운 기능이 포함되어 있습니다.테스트 오케스트레이터구성 요소. 테스트 오케스트레이터는 테스트 세트 실행 흐름을 제어하고 IDT가 모든 테스트 실행을 마친 후 테스트 보고서를 생성하는 IDT 구성 요소입니다. 테스트 오케스트레이터는 테스트 선택 및 사용자 정의 규칙에 따라 테스트가 실행되는 순서를 결정합니다.

테스트 세트에 사용자 정의 테스트 오케스트레이터가 포함되어 있지 않은 경우 IDT는 테스트 오케스트레이터를 생성합니다.

기본 테스트 오케스트레이터는 다음 기능을 수행합니다.

  • 테스트 러너에게 전체 테스트 세트 대신 특정 테스트 그룹을 선택하고 실행할 수 있는 기능을 제공합니다.

  • 특정 테스트 그룹을 선택하지 않으면 에서는 테스트 스위트의 모든 테스트 그룹을 임의의 순서로 실행합니다.

  • 보고서를 생성하고 각 테스트 그룹 및 테스트 사례에 대한 테스트 결과를 보여주는 콘솔 요약을 인쇄합니다.

테스트 오케스트레이터가 IDT 테스트 오케스트레이터를 대체합니다. IDT 테스트 오케스트레이터 대신 테스트 오케스트레이터를 사용하여 테스트 스위트를 개발하는 것이 좋습니다. 테스트 오케스트레이터는 다음과 같은 향상된 기능을 제공합니다.

  • IDT 상태 머신에서 사용하는 명령형 형식과 비교하여 선언적 형식을 사용합니다. 이를 통해지정하다어떤 테스트를 실행하고 싶은지언제실행하려는 경우.

  • 특정 그룹 처리, 보고서 생성, 오류 처리 및 결과 추적 관리따라서 필요하지 않습니다.를 눌러 이러한 작업을 수동으로 관리합니다.

  • 기본적으로 주석을 지원하는 YAML 형식을 사용합니다.

  • 필수80%동일한 워크플로를 정의하는 테스트 오케스트레이터보다 디스크 공간이 적습니다.

  • 사전 테스트 유효성 검사를 추가하여 워크플로 정의에 잘못된 테스트 ID 또는 순환 종속성이 포함되어 있지 않은지 확인합니다.

테스트 오케스트레이터 형식

다음 템플릿을 사용하여 고유한 템플릿을 구성할 수 있습니다.<custom-test-suite-folder>/suite/test_orchestrator.yaml파일:

Aliases: string: context-expression ConditionalTests: - Condition: context-expression Tests: - test-descriptor Order: - - group-descriptor - group-descriptor Features: - Name: feature-name Value: support-description Condition: context-expression Tests: - test-descriptor OneOfTests: - test-descriptor IsRequired: boolean

여기 설명된 것처럼 값이 포함된 모든 필드는 필수입니다.

Aliases

선택 사항. 컨텍스트 표현식에 매핑되는 사용자 정의 문자열입니다. 별칭을 사용하면 다음과 같은 이름을 생성할 수 있습니다.테스트 오케스트레이터 구성에서 컨텍스트 표현식을 식별합니다. 이 기능은 여러 위치에서 사용하는 복잡한 컨텍스트 표현식이나 표현식을 생성하는 경우에 특히 유용합니다.

컨텍스트 표현식을 사용하여 다른 IDT 구성의 데이터에 액세스할 수 있는 컨텍스트 쿼리를 저장할 수 있습니다. 자세한 정보는 컨텍스트에서 데이터 액세스을 참조하십시오.

Aliases: FizzChosen: "'{{$pool.features[?(@.name == 'Fizz')].value[0]}}' == 'yes'" BuzzChosen: "'{{$pool.features[?(@.name == 'Buzz')].value[0]}}' == 'yes'" FizzBuzzChosen: "'{{$aliases.FizzChosen}}' && '{{$aliases.BuzzChosen}}'"
ConditionalTests

선택 사항. 조건 목록 및 각 조건이 충족될 때 실행되는 해당 테스트 케이스입니다. 각 조건에는 여러 테스트 사례가 있을 수 있지만, 주어진 테스트 케이스를 하나의 조건에만 할당할 수 있습니다.

기본적으로 IDT는 이 목록의 조건에 할당되지 않은 테스트 케이스를 실행합니다. 이 섹션을 지정하지 않으면 IDT는 테스트 제품군의 모든 테스트 그룹을 실행합니다.

의 각 항목ConditionalTests에는 다음 파라미터가 포함되어 있습니다.

Condition

로 평가되는 컨텍스트 표현식입니다.부울USD 상당. 평가된 값이 true이면 IDT는 에 지정된 테스트 케이스를 실행합니다.Tests파라미터.

Tests

테스트 설명자 목록입니다.

각 테스트 설명자는 테스트 그룹 ID와 하나 이상의 테스트 사례 ID를 사용하여 특정 테스트 그룹에서 실행할 개별 테스트를 식별합니다. 테스트 설명자는 다음 형식을 사용합니다.

GroupId: group-id CaseIds: [test-id, test-id] # optional

다음 예제에서는 다음과 같이 정의할 수 있는 제네릭 컨텍스트 표현식을 사용합니다.Aliases.

ConditionalTests: - Condition: "{{$aliases.Condition1}}" Tests: - GroupId: A - GroupId: B - Condition: "{{$aliases.Condition2}}" Tests: - GroupId: D - Condition: "{{$aliases.Condition1}} || {{$aliases.Condition2}}" Tests: - GroupId: C

정의된 조건에 따라 IDT는 다음과 같이 테스트 그룹을 선택합니다.

  • 다음의 경우,Condition1true, IDT는 테스트 그룹 A, B 및 C에서 테스트를 실행합니다.

  • 다음의 경우,Condition2true, IDT는 테스트 그룹 C와 D에서 테스트를 실행합니다.

Order

선택 사항. 테스트 실행 순서입니다. 테스트 그룹 수준에서 테스트 순서를 지정합니다. 이 섹션을 지정하지 않으면 IDT는 모든 적용 가능한 테스트 그룹을 임의의 순서로 실행합니다. 의 가치Order은 그룹 설명자 목록 목록입니다. 리스팅하지 않은 모든 테스트 그룹Order는 나열된 다른 테스트 그룹과 병렬로 실행할 수 있습니다.

각 그룹 설명자 목록에는 그룹 설명자 중 하나가 더 포함되어 있으며 각 설명자에 지정된 그룹을 실행하는 순서를 식별합니다. 다음 형식을 사용하여 개별 그룹 설명자를 정의할 수 있습니다.

  • group-id—기존 테스트 그룹의 그룹 ID입니다.

  • [group-id, group-id]서로에 대해 임의의 순서로 실행할 수 있는 테스트 그룹 목록입니다.

  • "*"와일드카드 이는 현재 그룹 설명자 목록에 아직 지정되지 않은 모든 테스트 그룹 목록과 동일합니다.

에 대한 가치Order다음 요구 사항도 충족해야 합니다.

  • 그룹 설명자에서 지정한 테스트 그룹 ID는 테스트 스위트에 있어야 합니다.

  • 각 그룹 설명자 목록은 하나 이상의 테스트 그룹을 포함해야 합니다.

  • 각 그룹 설명자 목록에는 고유한 그룹 ID가 포함되어야 합니다. 개별 그룹 설명자 내에서는 테스트 그룹 ID를 반복할 수 없습니다.

  • 그룹 설명자 목록에는 와일드카드 그룹 설명자가 하나 이상 포함될 수 있습니다. 와일드카드 그룹 설명자는 목록의 첫 번째 항목이나 마지막 항목이어야 합니다.

예제

테스트 그룹 A, B, C, D 및 E를 포함하는 테스트 스위트의 경우 다음 예제 목록은 IDT가 먼저 테스트 그룹 A를 실행한 다음 테스트 그룹 B를 실행한 다음 테스트 그룹 C, D 및 E를 임의의 순서로 실행하도록 지정하는 다양한 방법을 보여줍니다.

  • Order: - - A - B - [C, D, E]
  • Order: - - A - B - "*"
  • Order: - - A - B - - B - C - - B - D - - B - E
Features

선택 사항. IDT에 추가하려는 제품 기능 목록awsiotdevicetester_report.xml파일. 이 섹션을 지정하지 않으면 IDT는 보고서에 제품 기능을 추가하지 않습니다.

제품 기능은 장치가 충족할 수 있는 특정 기준에 대한 사용자 정의 정보입니다. 예를 들어, MQTT 제품 기능은 장치가 MQTT 메시지를 올바르게 게시하도록 지정할 수 있습니다. Inawsiotdevicetester_report.xml제품 기능은 다음과 같이 설정됩니다.supported,not-supported또는 지정된 테스트가 통과되었는지 여부에 따라 사용자 정의 값입니다.

의 각 항목Features은 다음 파라미터로 구성됩니다.

Name

기능 이름입니다.

Value

선택 사항. 대신 보고서에 사용할 사용자 정의 값입니다.supported. 이 값을 지정하지 않으면 기반 IDT는 피쳐 값을 로 설정합니다.supported또는not-supported테스트 결과를 기반으로 합니다. 동일한 피처를 서로 다른 조건으로 테스트하는 경우, 에서 해당 피처의 각 인스턴스에 대해 사용자 정의 값을 사용할 수 있습니다.Featureslist 및 IDT는 지원되는 조건에 대한 기능 값을 연결합니다. 자세한 내용은 단원을 참조하십시오.

Condition

로 평가되는 컨텍스트 표현식입니다.부울USD 상당. 평가된 값이 true인 경우 IDT는 테스트 세트 실행을 마친 후 테스트 보고서에 기능을 추가합니다. 평가된 값이 false이면 테스트가 보고서에 포함되지 않습니다.

Tests

선택 사항. 테스트 설명자 목록입니다. 기능을 지원하려면 이 목록에 지정된 모든 테스트를 통과해야 합니다.

이 목록의 각 테스트 설명자는 테스트 그룹 ID와 하나 이상의 테스트 사례 ID를 사용하여 특정 테스트 그룹에서 실행할 개별 테스트를 식별합니다. 테스트 설명자는 다음 형식을 사용합니다.

GroupId: group-id CaseIds: [test-id, test-id] # optional

다음 항목을 지정해야 합니다.Tests또는OneOfTests의 각 기능에 대해Features나열

OneOfTests

선택 사항. 테스트 설명자 목록입니다. 기능이 지원되려면 이 목록에 지정된 테스트 중 하나 이상이 통과해야 합니다.

이 목록의 각 테스트 설명자는 테스트 그룹 ID와 하나 이상의 테스트 사례 ID를 사용하여 특정 테스트 그룹에서 실행할 개별 테스트를 식별합니다. 테스트 설명자는 다음 형식을 사용합니다.

GroupId: group-id CaseIds: [test-id, test-id] # optional

다음 항목을 지정해야 합니다.Tests또는OneOfTests의 각 기능에 대해Features나열

IsRequired

테스트 보고서에 기능이 필요한지 여부를 정의하는 부울 값입니다. 기본값은 false입니다.

오케스트레이터 컨텍스트

테스트 오케스트레이터 컨텍스트는 실행 중에 테스트 오케스트레이터가 사용할 수 있는 데이터를 포함하는 읽기 전용 JSON 문서입니다. 테스트 오케스트레이터 컨텍스트는 테스트 오케스트레이터에서만 액세스할 수 있으며 테스트 흐름을 결정하는 정보를 포함합니다. 예를 들어, 테스트 러너에 의해 구성된 정보를userdata.json파일을 사용하여 특정 테스트를 실행해야 하는지 여부를 확인합니다.

테스트 오케스트레이터 컨텍스트는 다음 형식을 사용합니다.

{ "pool": { <device-json-pool-element> }, "userData": { <userdata-json-content> }, "config": { <config-json-content> } }
pool

테스트 실행을 위해 선택한 장치 풀에 대한 정보입니다. 선택한 디바이스 풀의 경우 이 정보는 에 정의된 해당 최상위 디바이스 풀 배열 요소에서 검색됩니다.device.json파일.

userData

의 정보userdata.json파일.

config

의 정보config.json파일.

JsonPath 표기법을 사용하여 컨텍스트를 쿼리할 수 있습니다. 상태 정의에서 JSONPath 쿼리의 구문은 다음과 같습니다.{{query}}. 테스트 오케스트레이터 컨텍스트에서 데이터에 액세스할 때 각 값이 문자열, 숫자 또는부울.

컨텍스트에서 데이터에 액세스하는 방법에 대한 자세한 내용은 섹션을 참조하십시오.IDT 컨텍스트 사용.