IDT 테스트 도구 모음 구성 파일 만들기 - AWS IoT Greengrass

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

IDT 테스트 도구 모음 구성 파일 만들기

이 섹션에서는 사용자 지정 테스트 제품군을 작성할 때 포함하는 구성 파일을 생성하는 형식을 설명합니다.

필수 구성 파일
suite.json

테스트 제품군 정보가 포함되어 있습니다. suite.json 구성 섹션을 참조하세요.

group.json

테스트 그룹에 대한 정보가 포함되어 있습니다. 테스트 제품군의 각 테스트 그룹에 대한 group.json 파일을 생성해야 합니다. group.json 구성 섹션을 참조하세요.

test.json

테스트 사례에 대한 정보가 들어 있습니다. 테스트 제품군의 각 테스트 사례에 대한 test.json 파일을 생성해야 합니다. test.json 구성 섹션을 참조하세요.

선택적 구성 파일
test_orchestrator.yaml 또는 state_machine.json

IDT가 테스트 제품군을 실행할 때 테스트가 실행되는 방법을 정의합니다. SSe test_orchestrator.yaml 구성.

참고

IDT v4.5.1부터 test_orchestrator.yaml 파일을 사용하여 테스트 워크플로를 정의합니다. 이전 버전의 IDT에서는 state_machine.json 파일을 사용했습니다. 상태 시스템에 대한 자세한 내용은 IDT 상태 머신 구성 섹션을 참조하세요.

userdata_schema.json

테스트 실행기가 설정 구성에 포함할 수 있는 userdata.json 파일의 스키마를 정의합니다. 이 userdata.json 파일은 테스트를 실행하는 데 필요하지만 device.json 파일에는 없는 추가 구성 정보에 사용됩니다. userdata_schema.json 구성 섹션을 참조하세요.

구성 파일은 다음과 같이 <custom-test-suite-folder>에 저장됩니다.

<custom-test-suite-folder> └── suite ├── suite.json ├── test_orchestrator.yaml ├── userdata_schema.json ├── <test-group-folder> ├── group.json ├── <test-case-folder> └── test.json

suite.json 구성

suite.json 파일은 환경 변수를 설정하고 테스트 제품군을 실행하는 데 사용자 데이터가 필요한지 여부를 결정합니다. 다음 템플릿을 사용하여 <custom-test-suite-folder>/suite/suite.json 파일을 구성합니다.

{ "id": "<suite-name>_<suite-version>", "title": "<suite-title>", "details": "<suite-details>", "userDataRequired": true | false, "environmentVariables": [ { "key": "<name>", "value": "<value>", }, ... { "key": "<name>", "value": "<value>", } ] }

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

id

테스트 제품군의 고유한 사용자 정의 ID입니다. id의 값은 suite.json 파일이 있는 테스트 제품군 폴더의 이름과 일치해야 합니다. 제품군 이름과 제품군 버전도 다음 요구 사항을 충족해야 합니다.

  • <suite-name>은 밑줄을 포함할 수 없습니다.

  • <suite-version>은 다음과 같이 x.x.x로 표시됩니다. 여기서 x는 숫자입니다.

ID는 IDT에서 생성한 테스트 보고서에 표시됩니다.

title

이 테스트 제품군에서 테스트 중인 제품 또는 기능의 사용자 정의 이름입니다. 테스트 실행기의 IDT CLI에 이름이 표시됩니다.

details

테스트 제품군의 용도에 대한 짧은 설명입니다.

userDataRequired

테스트 실행기가 userdata.json 파일에 사용자 지정 정보를 포함해야 하는지 여부를 정의합니다. 이 값을 true로 설정하는 경우, 테스트 제품군 폴더에도 userdata_schema.json 파일을 포함해야 합니다.

environmentVariables

선택 사항으로, 이 테스트 제품군에 설정할 환경 변수의 배열입니다.

environmentVariables.key

환경 변수의 이름입니다.

environmentVariables.value

환경 변수의 값입니다.

group.json 구성

group.json 파일은 테스트 그룹이 필수인지 옵션인지 여부를 정의합니다. 다음 템플릿을 사용하여 <custom-test-suite-folder>/suite/<test-group>/group.json 파일을 구성합니다.

{ "id": "<group-id>", "title": "<group-title>", "details": "<group-details>", "optional": true | false, }

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

id

테스트 그룹의 고유한 사용자 정의 ID입니다. 의 값은 group.json 파일이 있는 테스트 그룹 폴더의 이름과 id 일치해야 하며 밑줄 () 을 포함할 수 없습니다. _ ID는 IDT에서 생성한 테스트 보고서에 사용됩니다.

title

테스트 그룹을 나타내는 서술형 이름입니다. 테스트 실행기의 IDT CLI에 이름이 표시됩니다.

details

테스트 그룹의 용도에 대한 짧은 설명입니다.

optional

선택 사항으로, IDT에서 필수 테스트 실행을 완료한 후 이 테스트 그룹을 선택적 그룹으로 표시하도록 true로 설정합니다. 기본값은 false입니다.

test.json 구성

test.json 파일은 테스트 사례 실행 파일 및 테스트 사례에서 사용되는 환경 변수를 결정합니다. 테스트 사례 실행 파일 생성에 대한 자세한 내용은 IDT 테스트 케이스 실행 파일 생성 섹션을 참조하세요.

다음 템플릿을 사용하여 <custom-test-suite-folder>/suite/<test-group>/<test-case>/test.json 파일을 구성합니다.

{ "id": "<test-id>", "title": "<test-title>", "details": "<test-details>", "requireDUT": true | false, "requiredResources": [ { "name": "<resource-name>", "features": [ { "name": "<feature-name>", "version": "<feature-version>", "jobSlots": <job-slots> } ] } ], "execution": { "timeout": <timeout>, "mac": { "cmd": "/path/to/executable", "args": [ "<argument>" ], }, "linux": { "cmd": "/path/to/executable", "args": [ "<argument>" ], }, "win": { "cmd": "/path/to/executable", "args": [ "<argument>" ] } }, "environmentVariables": [ { "key": "<name>", "value": "<value>", } ] }

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

id

테스트 사례의 고유한 사용자 정의 ID입니다. 의 값은 test.json 파일이 있는 테스트 사례 폴더의 이름과 id 일치해야 하며 밑줄 () _ 을 포함할 수 없습니다. ID는 IDT에서 생성한 테스트 보고서에 사용됩니다.

title

테스트 사례를 나타내는 서술형 이름입니다. 테스트 실행기의 IDT CLI에 이름이 표시됩니다.

details

테스트 사례의 용도에 대한 짧은 설명입니다.

requireDUT

선택 사항으로, 이 테스트를 실행하는 데 디바이스가 필요한 경우, true로 설정하고, 그렇지 않으면 false로 설정합니다. 기본값은 true입니다. 테스트 실행기는 device.json 파일에서 테스트를 실행하는 데 사용할 디바이스를 구성합니다.

requiredResources

선택 사항으로, 이 테스트를 실행하는 데 필요한 리소스 디바이스에 대한 정보를 제공하는 배열입니다.

requiredResources.name

이 테스트를 실행할 때 리소스 디바이스에 부여하는 고유한 이름입니다.

requiredResources.features

사용자 정의 리소스 디바이스 기능의 배열입니다.

requiredResources.features.name

기능의 이름입니다. 이 디바이스를 사용하려는 디바이스 기능입니다. 이 이름은 테스트 실행기가 resource.json 파일에 제공한 기능 이름과 일치합니다.

requiredResources.features.version

선택 사항으로, 기능의 버전입니다. 이 값은 테스트 실행기가 resource.json 파일에서 제공한 기능 버전과 일치합니다. 버전이 제공되지 않으면 기능이 확인되지 않습니다. 기능에 버전 번호가 필요하지 않은 경우, 이 필드를 비워 둡니다.

requiredResources.features.jobSlots

선택 사항으로, 이 기능이 지원할 수 있는 동시 테스트 수입니다. 기본 값은 1입니다. IDT에서 개별 기능에 대해 서로 다른 디바이스를 사용하도록 하려면 이 값을 1로 설정하는 것이 좋습니다.

execution.timeout

IDT가 테스트 실행이 완료될 때까지 기다리는 시간(밀리초) 입니다. 이 값 설정에 대한 자세한 내용을 알아보려면 IDT 테스트 케이스 실행 파일 생성 섹션을 참조하세요.

execution.os

IDT를 실행하는 호스트 컴퓨터의 운영 체제에 따라 실행할 테스트 사례 실행 파일입니다. 지원되는 값은 linux, macwin입니다.

execution.os.cmd

지정된 운영 체제에서 실행하려는 테스트 사례 실행 파일의 경로입니다. 이 위치는 시스템 경로에 있어야 합니다.

execution.os.args

선택 사항으로, 테스트 사례 실행 파일을 실행하기 위해 제공할 인수입니다.

environmentVariables

선택 사항으로, 이 테스트 사례에 설정된 환경 변수의 배열입니다.

environmentVariables.key

환경 변수의 이름입니다.

environmentVariables.value

환경 변수의 값입니다.

참고

test.json 파일과 suite.json 파일에서 동일한 환경 변수를 지정하는 경우, test.json 파일의 값이 우선합니다.

test_orchestrator.yaml 구성

테스트 오케스트레이터는 테스트 제품군 실행 흐름을 제어하는 구조입니다. 테스트 제품군의 시작 상태를 결정하고, 사용자 정의 규칙을 기반으로 상태 전환을 관리하며, 최종 상태에 도달할 때까지 해당 상태를 계속 전환합니다.

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

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

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

  • 특정 테스트 그룹을 선택하지 않은 경우, 테스트 제품군의 모든 테스트 그룹을 무작위 순서로 실행합니다.

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

IDT 테스트 오케스트레이터의 작동 방식에 대한 자세한 내용은 IDT 테스트 오케스트레이터 구성 섹션을 참조하세요.

userdata_schema.json 구성

userdata_schema.json 파일은 테스트 실행기가 사용자 데이터를 제공하는 스키마를 결정합니다. 테스트 제품군에 device.json 파일에 없는 정보가 필요한 경우, 사용자 데이터가 필요합니다. 예를 들어 테스트에는 사용자가 제공해야 하는 Wi-Fi 네트워크 보안 인증 정보, 특정 개방 포트 또는 인증서가 필요할 수 있습니다. 이 정보는 userdata라는 입력 파라미터로 IDT에 제공될 수 있습니다. 해당 값은 사용자가 <device-tester-extract-location>/config 폴더에 생성하는 userdata.json 파일입니다. userdata.json 파일 형식은 테스트 제품군에 포함된 userdata_schema.json 파일을 기반으로 합니다.

테스트 실행기가 userdata.json 파일을 제공해야 함을 나타내려면

  1. suite.json 파일에서 userDataRequiredtrue로 설정합니다.

  2. <custom-test-suite-folder>에서 userdata_schema.json 파일을 생성합니다.

  3. userdata_schema.json 파일을 편집하여 유효한 IETF Draft v4 JSON 스키마를 생성합니다.

IDT는 테스트 제품군을 실행하면 자동으로 스키마를 읽고 이를 사용하여 테스트 실행기가 제공한 userdata.json 파일을 검증합니다. 유효한 경우, userdata.json 파일의 내용은 IDT 컨텍스트테스트 오케스트레이터 컨텍스트 모두에서 사용할 수 있습니다.