了解结果和日志 - AWS IoT Greengrass
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

了解结果和日志

本节介绍如何查看和解释 IDT 结果报告和日志。

查看结果

在运行时,IDT 会将错误写入控制台、日志文件和测试报告中。IDT 在完成资格测试套件后,会生成两个测试报告。可在 <device-tester-extract-location>/results/<execution-id>/ 中找到这些报告。两个报告都捕获资格测试套件执行的结果。

awsiotdevicetester_report.xml 是您提交给 AWS 的资格测试报告,用于在 AWS 合作伙伴设备目录中列出您的设备。该报告包含以下元素:

  • IDT 版本。

  • 所测试的 AWS IoT Greengrass 版本。

  • device.json 文件中指定的 SKU 和设备池名称。

  • device.json 文件中指定的设备池的功能。

  • 测试结果的摘要汇总。

  • 按照基于设备功能(例如,本地资源访问、影子、MQTT 等)测试的库细分的测试结果。

GGQ_Result.xml 报告采用 JUnit XML 格式。您可以将它集成到持续集成和开发平台,例如 JenkinsBamboo 等。该报告包含以下元素:

  • 测试结果的摘要汇总。

  • 按照已测试的 AWS IoT Greengrass 功能细分的测试结果。

解释 AWS IoT Device Tester 结果

awsiotdevicetester_report.xmlawsiotdevicetester_report.xml 中的报告部分列出了运行的测试以及结果。

第一个 XML 标签 <testsuites> 包含测试执行情况的摘要。例如:

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

<testsuites> 标签中使用的属性

name

测试套件的名称。

time

运行资格套件所用的时间(以秒为单位)。

tests

执行的测试数。

failures

已运行但未通过的测试数。

errors

IDT 无法执行的测试数。

disabled

此属性未使用,可以忽略。

awsiotdevicetester_report.xml 文件包含一个 <awsproduct> 标签,其中包含有关正测试的产品以及在运行测试套件后验证的产品功能的信息。

<awsproduct> 标签中使用的属性

name

所测试的产品的名称。

version

所测试的产品的版本。

features

验证的功能。标记为 required 的功能需要提交您的主板信息以供资格审核。以下代码段演示了此信息在 awsiotdevicetester_report.xml 文件中的显示方式。

<feature name="aws-iot-greengrass-no-container" value="supported" type="required"></feature>

标记为 optional 的功能不是资格认证所必需的。以下代码段显示了可选功能。

<feature name="aws-iot-greengrass-container" value="supported" type="optional"></feature>
 <feature name="aws-iot-greengrass-hsi" value="not-supported" type="optional"></feature>

如果没有针对所需功能的测试失败或错误,则设备满足运行 AWS IoT Greengrass 的技术要求并可以与 AWS IoT 服务互操作。如果您想要在 AWS 合作伙伴设备目录中列出您的设备,则可以使用此报告作为资格证明。

如果出现测试失败或错误,则可以通过检查 <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 Combination (IPD + DCM) Test Context" name="Security Combination IP Change Tests sec4_test_1: Should rotate server cert when IPD disabled and following changes are made:Add CIS conn info and Add another CIS conn info" attempts="1"></testcase>>

<testcase> 标签中使用的属性

name

测试的名称。

attempts

IDT 执行测试用例的次数。

当测试失败或出现错误时,将会在 <testcase> 标签中添加包含用于问题排查的信息的 <failure><error> 标签。例如:

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

查看日志

IDT 从测试执行生成的日志位于 <devicetester-extract-location>/results/<execution-id>/logs 中。它会生成两组日志:

test_manager.log

从 AWS IoT Device Tester 的 Test Manager 组件生成的日志(例如,与配置、测试序列和报告生成相关的日志)。

<test_case_id>.log (for example, ota.log)

测试组的日志,包括来自所测试设备的日志。当测试失败时,将创建一个 tar.gz 文件,其中包含关于该测试的所测试设备日志(例如,ota_prod_test_1_ggc_logs.tar.gz)。

有关更多信息,请参阅 适用于 AWS IoT Greengrass 的 IDT 问题排查