IDT 테스트 결과 및 로그 검토 - AWS IoT Greengrass

다음에 대한 설명서를 보고 있습니다.AWS IoT Greengrass Version 1.AWS IoT Greengrass Version 2의 최신 주요 버전입니다AWS IoT Greengrass. 사용에 관한 자세한 내용은 단원을 참조하십시오.AWS IoT Greengrass V2에 대한 자세한 내용은AWS IoT Greengrass Version 2개발자 안내서.

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

IDT 테스트 결과 및 로그 검토

이 섹션에서는 IDT가 콘솔 로그와 테스트 보고서를 생성하는 형식에 대해 설명합니다.

콘솔 메시지 형식

AWS IoT장치 테스터는 테스트 스위트를 시작할 때 콘솔에 메시지를 인쇄하기위한 표준 형식을 사용합니다. 다음 발췌문은 IDT에서 생성한 콘솔 메시지의 예를 보여줍니다.

time="2000-01-02T03:04:05-07:00" level=info msg=Using suite: MyTestSuite_1.0.0 executionId=9a52f362-1227-11eb-86c9-8c8590419f30

대부분의 콘솔 메시지는 다음 필드로 구성됩니다.

time

로깅된 이벤트에 대한 전체 ISO 8601 타임스탬프.

level

로깅된 이벤트에 대한 메시지 수준입니다. 일반적으로 기록된 메시지 수준은info,warn또는error. IDT가 발행하는fatal또는panic메시지가 일찍 종료되는 예상 이벤트가 발견되면 메시지를 표시합니다.

msg

기록된 메시지입니다.

executionId

현재 IDT 프로세스에 대한 고유 ID 문자열입니다. 이 ID는 개별 IDT 실행을 구별하는 데 사용됩니다.

테스트 도구 모음에서 생성된 콘솔 메시지는 테스트 중인 장치와 IDT가 실행하는 테스트 도구 모음, 테스트 그룹 및 테스트 사례에 대한 추가 정보를 제공합니다. 다음 발췌문은 테스트 스위트에서 생성된 콘솔 메시지의 예를 보여 줍니다.

time="2000-01-02T03:04:05-07:00" level=info msg=Hello world! suiteId=MyTestSuite groupId=myTestGroup testCaseId=myTestCase deviceId=my-device executionId=9a52f362-1227-11eb-86c9-8c8590419f30

콘솔 메시지의 테스트 스위트 특정 부분에는 다음 필드가 포함되어 있습니다.

suiteId

현재 실행 중인 테스트 제품군의 이름입니다.

groupId

현재 실행 중인 테스트 그룹의 ID입니다.

testCaseId

테스트 사례의 ID입니다.

deviceId

현재 테스트 케이스가 사용 중인 테스트 중인 장치의 ID입니다.

IDT가 테스트 실행을 마쳤을 때 테스트 요약을 콘솔에 인쇄하려면Reportstate상태 시스템에서. 테스트 요약에는 테스트 도구 모음, 실행된 각 그룹의 테스트 결과 및 생성된 로그 및 보고서 파일의 위치에 대한 정보가 포함됩니다. 다음 예제에서는 테스트 요약 메시지를 보여줍니다.

========== Test Summary ========== Execution Time: 5m00s Tests Completed: 4 Tests Passed: 3 Tests Failed: 1 Tests Skipped: 0 ---------------------------------- Test Groups: GroupA: PASSED GroupB: FAILED ---------------------------------- Failed Tests: Group Name: GroupB Test Name: TestB1 Reason: Something bad happened ---------------------------------- Path to IoT Device Tester Report: /path/to/awsiotdevicetester_report.xml Path to Test Execution Logs: /path/to/logs Path to Aggregated JUnit Report: /path/to/MyTestSuite_Report.xml

AWS IoT디바이스 테스터 보고서 스키마

awsiotdevicetester_report.xml는 다음 정보가 포함된 서명된 보고서입니다.

  • IDT 버전

  • 테스트 제품군 버전입니다.

  • 보고서에 서명하는 데 사용되는 보고서 서명 및 키입니다.

  • 디바이스 SKU 및 디바이스 풀 이름device.json파일을 생성합니다.

  • 테스트된 제품 버전 및 장치 기능

  • 테스트 결과의 집계 요약 이 정보는 포함된 정보와 동일합니다.suite-name_report.xml파일을 생성합니다.

<apnreport> <awsiotdevicetesterversion>idt-version</awsiotdevicetesterversion> <testsuiteversion>test-suite-version</testsuiteversion> <signature>signature</signature> <keyname>keyname</keyname> <session> <testsession>execution-id</testsession> <starttime>start-time</starttime> <endtime>end-time</endtime> </session> <awsproduct> <name>product-name</name> <version>product-version</version> <features> <feature name="<feature-name>" value="supported | not-supported | <feature-value>" type="optional | required"/> </features> </awsproduct> <device> <sku>device-sku</sku> <name>device-name</name> <features> <feature name="<feature-name>" value="<feature-value>"/> </features> <executionMethod>ssh | uart | docker</executionMethod> </device> <devenvironment> <os name="<os-name>"/> </devenvironment> <report> <suite-name-report-contents> </report> </apnreport>

awsiotdevicetester_report.xml 파일에는 테스트하는 제품에 대한 정보와 테스트 제품군을 실행한 후 확인된 제품 기능에 대한 정보를 포함하는 <awsproduct> 태그가 포함되어 있습니다.

<awsproduct> 태그에 사용되는 속성

name

테스트하는 제품의 이름입니다.

version

테스트하는 제품의 버전입니다.

features

확인된 기능입니다. 다음과 같이 표시된 피쳐required는 테스트 스위트가 장치의 유효성을 검사하는 데 필요합니다. 다음 코드 조각은 awsiotdevicetester_report.xml 파일에 이 정보가 나타나는 방식을 보여 줍니다.

<feature name="ssh" value="supported" type="required"></feature>

다음과 같이 표시된 피쳐optional는 유효성 검사에 필요하지 않습니다. 다음 코드 조각은 선택적 기능을 보여 줍니다.

<feature name="hsi" value="supported" type="optional"></feature>
 <feature name="mqtt" value="not-supported" type="optional"></feature>

테스트 제품군 보고서 스키마

suite-name_Result.xml 보고서는 JUnit XML 형식입니다. Jenkins, Bamboo 등과 같은 지속적 통합 및 배포 플랫폼에 이 보고서를 통합할 수 있습니다. 보고서에는 테스트 결과의 집계

<testsuites name="<suite-name> results" time="<run-duration>" tests="<number-of-test>" failures="<number-of-tests>" skipped="<number-of-tests>" errors="<number-of-tests>" disabled="0"> <testsuite name="<test-group-id>" package="" tests="<number-of-tests>" failures="<number-of-tests>" skipped="<number-of-tests>" errors="<number-of-tests>" disabled="0"> <!--success--> <testcase classname="<classname>" name="<name>" time="<run-duration>"/> <!--failure--> <testcase classname="<classname>" name="<name>" time="<run-duration>"> <failure type="<failure-type>"> reason </failure> </testcase> <!--skipped--> <testcase classname="<classname>" name="<name>" time="<run-duration>"> <skipped> reason </skipped> </testcase> <!--error--> <testcase classname="<classname>" name="<name>" time="<run-duration>"> <error> reason </error> </testcase> </testsuite> </testsuites>

모두의 보고서 섹션은awsiotdevicetester_report.xml또는suite-name_report.xml에는 실행 된 테스트와 결과가 나열됩니다.

첫 번째 XML 태그 <testsuites>에는 테스트 실행의 요약이 포함됩니다. 예:

<testsuites name="MyTestSuite results" time="2299" tests="28" failures="0" errors="0" disabled="0">

<testsuites> 태그에 사용되는 속성

name

테스트 제품군의 이름입니다.

time

테스트 제품군을 실행하는 데 걸린 시간 (초)

tests

실행된 테스트의 수입니다.

failures

실행되었지만 통과하지 못한 테스트의 수입니다.

errors

IDT에서 실행하지 못한 테스트의 수입니다.

disabled

이 속성은 사용되지 않으므로 무시해도 좋습니다.

테스트 실패 또는 오류의 경우 <testsuites> XML 태그를 검토하여 실패한 테스트를 식별할 수 있습니다. <testsuites> 태그 내부의 <testsuite> XML 태그는 테스트 그룹에 대한 테스트 결과 요약을 보여 줍니다. 예:

<testsuite name="combination" package="" tests="1" failures="0" time="161" disabled="0" errors="0" skipped="0">

형식은 <testsuites> 태그와 비슷하지만, 사용되지 않고 무시할 수 있는 skipped 속성이 있습니다. 각 <testsuite> XML 태그 내부에는 테스트 그룹에 실행된 각 테스트에 대한 <testcase> 태그가 있습니다. 예:

<testcase classname="Security Test" name="IP Change Tests" attempts="1"></testcase>>

<testcase> 태그에 사용되는 속성

name

테스트의 이름입니다.

attempts

IDT에서 테스트 사례를 실행한 횟수입니다.

테스트가 실패하거나 오류가 발생하는 경우 문제 해결에 대한 정보와 함께 <failure> 또는 <error> 태그가 <testcase> 태그에 추가됩니다. 예:

<testcase classname="mcu.Full_MQTT" name="MQTT_TestCase" attempts="1"> <failure type="Failure">Reason for the test failure</failure> <error>Reason for the test execution error</error> </testcase>