쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

Device Advisor 워크플로

포커스 모드
Device Advisor 워크플로 - AWS IoT Core

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

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

이 자습서에서는 사용자 지정 테스트 제품군을 만들고 콘솔에서 테스트할 디바이스에 대해 테스트를 실행하는 방법을 설명합니다. 테스트가 완료되면 테스트 결과와 세부 로그를 볼 수 있습니다.

사전 조건

이 자습서를 시작하기 전에 설정에 설명된 단계를 완료하세요.

테스트 스위트 정의 만들기

먼저 를 설치합니다 AWS SDK.

rootGroup 구문

루트 그룹은 테스트 제품군에 포함할 테스트 사례를 지정하는 JSON 문자열입니다. 또한 해당 테스트 케이스에 필요한 모든 구성을 지정합니다. 루트 그룹을 사용하여 필요에 따라 테스트 제품군을 구조화하고 정렬하세요. 테스트 스위트의 계층 구조는 다음과 같습니다.

test suite → test group(s) → test case(s)

테스트 스위트에는 하나 이상의 테스트 그룹이 있어야 하며 각 테스트 그룹에는 하나 이상의 테스트 케이스가 있어야 합니다. Device Advisor는 테스트 그룹 및 테스트 케이스를 정의하는 순서대로 테스트를 실행합니다.

각 루트 그룹에는 다음과 같은 기본 구조를 따릅니다.

{ "configuration": { // for all tests in the test suite "": "" } "tests": [{ "name": "" "configuration": { // for all sub-groups in this test group "": "" }, "tests": [{ "name": "" "configuration": { // for all test cases in this test group "": "" }, "test": { "id": "" "version": "" } }] }] }

루트 그룹에서 그룹에 포함된 name, configuration, tests를 사용하여 테스트 제품군을 정의합니다. tests 그룹에는 개별 테스트의 정의가 포함됩니다. 각 테스트는 해당 테스트의 테스트 케이스를 정의하는 name, configuration, test 블록으로 정의합니다. 마지막으로, 각 테스트 케이스는 idversion으로 정의됩니다.

각 테스트 케이스에 대한 "id""version" 필드(test 블록)의 사용 방법에 대한 자세한 내용은 Device Advisor 테스트 케이스 섹션을 참조하세요. 이 섹션에는 사용 가능한 configuration 설정에 대한 정보가 포함되어 있습니다.

다음 블록은 루트 그룹 구성의 예입니다. 이 구성은 구성 필드에 대한 설명과 함께 MQTT Connect Happy CaseMQTT Connect Exponential Backoff Retries 테스트 사례를 지정합니다.

{ "configuration": {}, // Suite-level configuration "tests": [ // Group definitions should be provided here { "name": "My_MQTT_Connect_Group", // Group definition name "configuration": {} // Group definition-level configuration, "tests": [ // Test case definitions should be provided here { "name": "My_MQTT_Connect_Happy_Case", // Test case definition name "configuration": { "EXECUTION_TIMEOUT": 300 // Test case definition-level configuration, in seconds }, "test": { "id": "MQTT_Connect", // test case id "version": "0.0.0" // test case version } }, { "name": "My_MQTT_Connect_Jitter_Backoff_Retries", // Test case definition name "configuration": { "EXECUTION_TIMEOUT": 600 // Test case definition-level configuration, in seconds }, "test": { "id": "MQTT_Connect_Jitter_Backoff_Retries", // test case id "version": "0.0.0" // test case version } }] }] }

테스트 스위트 정의를 만들 때 루트 그룹 구성을 제공해야 합니다. 응답 객체에 반환된 suiteDefinitionId를 저장합니다. 이 ID를 사용하여 테스트 제품군 정의 정보를 검색하고 테스트 제품군을 실행할 수 있습니다.

다음은 Java 예제입니다SDK.

response = iotDeviceAdvisorClient.createSuiteDefinition( CreateSuiteDefinitionRequest.builder() .suiteDefinitionConfiguration(SuiteDefinitionConfiguration.builder() .suiteDefinitionName("your-suite-definition-name") .devices( DeviceUnderTest.builder() .thingArn("your-test-device-thing-arn") .certificateArn("your-test-device-certificate-arn") .deviceRoleArn("your-device-role-arn") //if using SigV4 for MQTT over WebSocket .build() ) .rootGroup("your-root-group-configuration") .devicePermissionRoleArn("your-device-permission-role-arn") .protocol("MqttV3_1_1 || MqttV5 || MqttV3_1_1_OverWebSocket || MqttV5_OverWebSocket") .build() ) .build() )

테스트 스위트 정의 가져오기

테스트 제품군 정의를 생성하면 CreateSuiteDefinition API 작업의 응답 객체suiteDefinitionId에서를 수신합니다.

작업이 suiteDefinitionId를 반환하면 각 그룹 내에 새로운 id 필드가 표시되고 루트 그룹 내에 테스트 케이스 정의가 표시될 수 있습니다. 이를 사용하여 테스트 제품군 정의의 하위 집합을 IDs 실행할 수 있습니다.

Java SDK 예제:

response = iotDeviceAdvisorClient.GetSuiteDefinition( GetSuiteDefinitionRequest.builder() .suiteDefinitionId("your-suite-definition-id") .build() )

테스트 엔드포인트 가져오기

GetEndpoint API 작업을 사용하여 디바이스에서 사용하는 테스트 엔드포인트를 가져옵니다. 테스트에 가장 적합한 엔드포인트를 선택합니다. 여러 테스트 제품군을 동시에 실행하려면 thing ARN, certificate ARN 또는 device role ARN을 제공하여 디바이스 수준 엔드포인트를 사용합니다. 단일 테스트 제품군을 실행하려면 GetEndpoint 작업에 계정 수준 엔드포인트를 선택하는 인수를 제공하지 마십시오.

SDK 예:

response = iotDeviceAdvisorClient.getEndpoint(GetEndpointRequest.builder() .certificateArn("your-test-device-certificate-arn") .thingArn("your-test-device-thing-arn") .deviceRoleArn("your-device-role-arn") //if using SigV4 for MQTT over WebSocket .build())

테스트 스위트 실행 시작하기

테스트 제품군 정의를 생성하고 Device Advisor 테스트 엔드포인트에 연결하도록 테스트 디바이스를 구성한 후 StartSuiteRun를 사용하여 테스트 제품군을 실행합니다API.

MQTT 고객의 경우 certificateArn 또는 thingArn를 사용하여 테스트 제품군을 실행합니다. 둘 다 구성된 경우에 인증서가 해당 사물에 속하면 인증서가 사용됩니다.

MQTT 초과 WebSocket 고객의 경우 deviceRoleArn를 사용하여 테스트 제품군을 실행합니다. 지정된 역할이 테스트 제품군 정의에 지정된 역할과 다른 경우 지정된 역할이 정의된 역할을 재정의합니다.

디바이스 수준 엔드포인트를 사용하여 하나의 AWS 계정으로 여러 테스트 제품군을 병렬로 실행하는 경우 .parallelRun()true를 사용합니다.

SDK 예:

response = iotDeviceAdvisorClient.startSuiteRun(StartSuiteRunRequest.builder() .suiteDefinitionId("your-suite-definition-id") .suiteRunConfiguration(SuiteRunConfiguration.builder() .primaryDevice(DeviceUnderTest.builder() .certificateArn("your-test-device-certificate-arn") .thingArn("your-test-device-thing-arn") .deviceRoleArn("your-device-role-arn") //if using SigV4 for MQTT over WebSocket .build()) .parallelRun(true | false) .build()) .build())

응답에서 suiteRunId를 저장합니다. 이 테스트 제품군 실행 결과를 검색하는 데 사용됩니다.

테스트 스위트 실행 가져오기

테스트 제품군 실행을 시작한 후 GetSuiteRun를 사용하여 진행 상황과 결과를 확인할 수 있습니다API.

SDK 예:

// Using the SDK, call the GetSuiteRun API. response = iotDeviceAdvisorClient.GetSuiteRun( GetSuiteRunRequest.builder() .suiteDefinitionId("your-suite-definition-id") .suiteRunId("your-suite-run-id") .build())

테스트 스위트 실행 중지

아직 진행 중인 테스트 제품군 실행을 중지하려면 StopSuiteRun API 작업을 호출할 수 있습니다. StopSuiteRun 작업을 호출하고 나면 서비스가 정리 프로세스를 시작합니다. 서비스가 정리 프로세스를 실행하는 동안 테스트 제품군 실행 상태는 Stopping으로 업데이트됩니다. 정리 프로세스에는 몇 분이 걸릴 수 있습니다. 프로세스가 완료되면 테스트 제품군 실행 상태가 Stopped로 업데이트됩니다. 테스트 실행이 완전히 중지된 후에 다른 테스트 제품군 실행을 시작할 수 있습니다. 이전 섹션에 표시된 대로 GetSuiteRun API 작업을 사용하여 제품군 실행 상태를 주기적으로 확인할 수 있습니다.

SDK 예:

// Using the SDK, call the StopSuiteRun API. response = iotDeviceAdvisorClient.StopSuiteRun( StopSuiteRun.builder() .suiteDefinitionId("your-suite-definition-id") .suiteRunId("your-suite-run-id") .build())

성공적인 자격 테스트 스위트 실행을 위한 자격 보고서 받기

성공적으로 완료된 검증 테스트 제품군을 실행하는 경우 GetSuiteRunReport API 작업을 사용하여 검증 보고서를 검색할 수 있습니다. 이 자격 보고서를 사용하여 AWS IoT Core 자격 프로그램으로 디바이스에 자격을 부여합니다. 테스트 스위트가 자격 테스트 스위트인지 여부를 확인하려면 intendedForQualification 파라미터가 true로 설정되어 있는지 확인하세요. GetSuiteRunReport API 작업을 호출한 후 반환된에서 최대 90초 URL 동안 보고서를 다운로드할 수 있습니다. 이전 GetSuiteRunReport 작업 호출 후 90초 이상이 경과한 경우 작업을 다시 호출하여 새롭고 유효한를 검색합니다URL.

SDK 예:

// Using the SDK, call the getSuiteRunReport API. response = iotDeviceAdvisorClient.getSuiteRunReport( GetSuiteRunReportRequest.builder() .suiteDefinitionId("your-suite-definition-id") .suiteRunId("your-suite-run-id") .build() )
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.