IDT テスト結果とログを確認する - 無料RTOS

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

IDT テスト結果とログを確認する

このセクションでは、 がコンソールログとテストレポートIDTを生成する形式について説明します。

コンソールメッセージの形式

AWS IoT Device Tester は、テストスイートを起動するときにコンソールにメッセージを印刷するための標準形式を使用します。次の抜粋は、 によって生成されたコンソールメッセージの例を示していますIDT。

[INFO] [2000-01-02 03:04:05]: Using suite: MyTestSuite_1.0.0 executionId=9a52f362-1227-11eb-86c9-8c8590419f30

コンソールメッセージの大半は、次のフィールドで設定されます。

time

ログに記録されたイベントの完全な 8601 ISO タイムスタンプ。

level

ログに記録されたイベントのメッセージレベル。通常、ログに記録されるメッセージレベルは、infowarn、または error のいずれかです。IDT は、予期されるイベントが発生して早期に終了した場合、 fatalまたは panic メッセージを発行します。

msg

ログに記録されたメッセージ。

executionId

現在のIDTプロセスの一意の ID 文字列。この ID は、個々のIDT実行を区別するために使用されます。

テストスイートから生成されたコンソールメッセージは、テスト対象のデバイスと、IDT実行されるテストスイート、テストグループ、およびテストケースに関する追加情報を提供します。次の抜粋は、テストスイートから生成されたコンソールメッセージの例を示しています。

[INFO] [2000-01-02 03:04:05]: Hello world! suiteId=MyTestSuitegroupId=myTestGroup testCaseId=myTestCase deviceId=my-deviceexecutionId=9a52f362-1227-11eb-86c9-8c8590419f30

コンソールメッセージのテストスイート固有の部分には、次のフィールドが含まれています。

suiteId

現在実行中のテストスイートの名前。

groupId

現在実行中のテストグループの ID。

testCaseId

現在実行中のテストケースの ID。

deviceId

現在のテストケースが使用しているテスト対象デバイスの ID。

テストサマリーには、テストスイート、実行された各グループのテスト結果、生成されたログファイルとレポートファイルの場所に関する情報が含まれています。次の例は、テストサマリーメッセージを示しています。

========== 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 AWS 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 Device Tester レポートスキーマ

awsiotdevicetester_report.xml は、次の情報が含まれる署名済みレポートです。

  • IDT バージョン。

  • テストスイートのバージョン。

  • レポートの署名に使用されるレポートの署名とキー。

  • device.json ファイルで指定されたデバイスSKUとデバイスプール名。

  • テストされた製品のバージョンとデバイスの機能。

  • テスト結果の概要の集計。この情報は、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形式です。JenkinsBamboo などのように継続的な統合 (CI) と継続的なデプロイ (CD) のプラットフォームに統合することができます。このレポートには、テスト結果の概要の集計が含まれています。

<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.xmlsuite-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>