IDT 테스트 오케스트레이터 구성 - 무료 RTOS

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

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

IDT v4.5.2부터 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

부울 값으로 평가되는 컨텍스트 표현식입니다. 평가된 값이 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는 정의된 조건에 따라 다음과 같이 테스트 그룹을 선택합니다.

  • Condition1이 true인 경우 IDT는 테스트 그룹 A, B 및 C의 테스트를 실행합니다.

  • Condition2이 true인 경우 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 메시지를 올바르게 게시하도록 지정할 수 있습니다. awsiotdevicetester_report.xml에서는 지정된 테스트의 통과 여부에 따라 제품 기능이 supported, not-supported 또는 사용자 정의 값으로 설정됩니다.

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

Name

기능의 이름입니다.

Value

선택 사항입니다. 보고서에서 supported 대신 사용할 사용자 지정 값입니다. 이 값을 지정하지 않으면 IDT가 테스트 결과에 따라 기능 값을 supported 또는 not-supported로 설정합니다. 동일한 기능을 다른 조건으로 테스트하는 경우, Features 목록에 있는 기능의 각 인스턴스에 대해 사용자 지정 값을 사용할 수 있으며, IDT는 지원되는 조건에 대해 기능 값을 연결합니다. 자세한 내용을 알아보려면 다음 섹션을 참조하세요.

Condition

부울 값으로 평가되는 컨텍스트 표현식입니다. 평가된 값이 true인 경우 IDT는 테스트 제품군 실행을 완료한 후 테스트 보고서에 기능을 추가합니다. 평가된 값이 false인 경우 테스트가 보고서에 포함되지 않습니다.

Tests

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

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

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

Features 목록의 각 기능에 대해 Tests 또는 OneOfTests 중 하나를 지정해야 합니다.

OneOfTests

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

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

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

Features 목록의 각 기능에 대해 Tests 또는 OneOfTests 중 하나를 지정해야 합니다.

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}}입니다. 테스트 오케스트레이터 컨텍스트에서 데이터에 액세스할 때는 각 값이 문자열, 숫자 또는 부울로 평가되어야 합니다.

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