运行测试 - AWS IoT Greengrass
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

运行测试

设置所需的配置后,就可以开始测试了。完整测试套件的运行时取决于您的硬件。作为参考,在 Raspberry Pi 3B 上完成完整的测试套件大约需要 30 分钟。

以下 run-suite 命令示例介绍如何针对某个设备池运行资格测试。设备池是一组相同的设备。

IDT v3.0.0 and later
在指定的测试套件中运行所有测试组。
devicetester_[linux | mac | win_x86-64] run-suite --suite-id GGQ_1.0.0 --pool-id <pool-id>

使用 list-suites 命令列出 tests 文件夹中的测试套件。

在测试套件中运行特定的测试组。
devicetester_[linux | mac | win_x86-64] run-suite --suite-id GGQ_1.0.0 --group-id <group-id> --pool-id <pool-id>

使用 list-groups 命令列出测试套件中的测试组。

在测试组中运行特定测试用例。
devicetester_[linux | mac | win_x86-64] run-suite --group-id <group-id> --test-id <test-id>
在测试组中运行多个测试用例。
devicetester_[linux | mac | win_x86-64] run-suite --group-id <group-id> --test-id <test-id1>,<test-id2>
列出测试组中的测试用例。
devicetester_[linux | mac | win_x86-64] list-test-cases --group-id <group-id>

run-suite 命令的选项是可选的。例如,如果您的 device.json 文件中只定义了一个设备池,则可以忽略 pool-id。或者,如果您要在 tests 文件夹中运行最新的测试套件版本,则可以忽略 suite-id

注意

如果在线提供了更新的测试套件版本,IDT 会提示您。有关更多信息,请参阅 适用于 AWS IoT Greengrass 的 IDT 测试套件版本

有关 run-suite 和其他 IDT 命令的更多信息,请参阅 适用于 AWS IoT Greengrass 的 IDT 命令

IDT v2.3.0 and earlier
在指定套件中运行所有测试组。
devicetester_[linux | mac | win_x86-64] run-suite --suite-id GGQ_1 --pool-id <pool-id>
运行特定测试组。
devicetester_[linux | mac | win_x86-64] run-suite --suite-id GGQ_1 --group-id <group-id> --pool-id <pool-id>

如果您在单个设备池上运行单个测试套件,则 suite-idpool-id 是可选的。这意味着您的 device.json 文件中只定义了一个设备池。

我们建议您运行依赖项检查程序测试组,以确保在运行相关测试组之前已安装所有 Greengrass 依赖项。例如:

  • 在运行核心资格测试组之前运行 ggcdependencies

  • 在运行特定于容器的测试组之前运行 containerdependencies

  • 在运行特定于 Docker 的测试组之前运行 dockerdependencies

  • 在运行特定于流管理器的测试组之前运行 ggcstreammanagementdependencies

适用于 AWS IoT Greengrass 的 IDT 命令

IDT 命令位于 <device-tester-extract-location>/bin 目录中。它们可以用于以下操作:

IDT v3.0.0 and later
help

列出有关指定命令的信息。

list-groups

列出给定测试套件中的组。

list-suites

列出可用的测试套件。

list-supported-products

列出受支持的产品(在本例中为 AWS IoT Greengrass 版本)和当前 IDT 版本的测试套件版本。

list-test-cases

列出给定测试组中的测试用例。支持以下选项:

  • group-id。要搜索的测试组。此选项是必需的,必须指定单个组。

run-suite

对某个设备池运行一组测试。以下是一些受支持的选项:

  • suite-id。要运行的测试套件版本。如果未指定,IDT 将使用 tests 文件夹中的最新版本。

  • group-id。要以逗号分隔的列表形式运行的测试组。如果未指定,IDT 将运行测试套件中的所有测试组。

  • test-id。要以逗号分隔的列表形式运行的测试用例。指定后,group-id 必须指定单个组。

  • pool-id。要测试的设备池。如果您在 device.json 文件中定义了多个设备池,则必须指定一个池。

  • upgrade-test-suite。控制如何处理测试套件版本更新。从 IDT v3.0.0 开始,IDT 在线检查更新的测试套件版本。有关更多信息,请参阅 适用于 AWS IoT Greengrass 的 IDT 测试套件版本

  • stop-on-first-failure。将 IDT 配置为在第一次失败时停止执行。应将此选项与 group-id 结合使用来调试指定的测试组。在运行完整测试套件以生成资格认证报告时,请勿使用此选项。

  • update-idt。设置对更新 IDT 的提示的响应。如果 IDT 检测到有更新的版本,输入 Y 将会停止执行测试。输入 N 将会继续执行测试。

  • update-managed-policy。如果 IDT 检测到用户的托管策略未更新,输入 Y 将会停止执行测试。输入 N 将会继续执行测试。

有关 run-suite 选项的更多信息,请使用 help 选项:

devicetester_[linux | mac | win_x86-64] run-suite -h
IDT v2.3.0 and earlier
help

列出有关指定命令的信息。

list-groups

列出给定测试套件中的组。

list-suites

列出可用的测试套件。

run-suite

对某个设备池运行一组测试。

有关 run-suite 选项的更多信息,请使用 help 选项:

devicetester_[linux | mac | win_x86-64] run-suite -h

适用于 AWS IoT Greengrass 的 IDT 测试套件版本

适用于 AWS IoT Greengrass 的 IDT 将测试组织到测试套件和测试组中。

  • 测试套件是一组测试组,用于验证设备运行的是否为特定版本的 AWS IoT Greengrass。

  • 测试组是与特定功能相关的一组单独测试,例如 Greengrass 组部署和 MQTT 消息传递。

从 IDT v3.0.0 开始,测试套件使用 major.minor.patch 格式进行版本化,例如,GGQ_1.0.0。当您下载 IDT 时,数据包中包含最新的测试套件版本。

重要

IDT 支持三个最新的测试套件版本以获得设备资格认证。有关更多信息,请参阅 适用于 AWS IoT Greengrass 的 AWS IoT Device Tester 的支持策略

您可以运行 list-supported-products 来列出当前版本的 IDT 支持的 AWS IoT Greengrass 和测试套件版本。不受支持的测试套件版本进行的测试对于设备资格认证无效。IDT 不会为不受支持的版本打印资格认证报告。

当您开始测试运行时,IDT 会在线检查是否有更新的测试套件版本。如果有,IDT 会提示您更新到最新的可用版本。您可以设置 upgrade-test-suite(或 u)标记来控制默认更新行为。有效值为:

  • y。IDT 会下载并使用最新的可用版本。

  • n (默认值).IDT 会使用 suite-id 选项中指定的版本。如果未指定 suite-id,IDT 将使用 tests 文件夹中的最新版本。

如果您未使用 upgrade-test-suite 标记,IDT 会在有更新可用时提示您,并会等待 30 秒让您输入(yn)。如果您未输入信息,则默认为 n 并继续运行测试。

以下示例显示了此功能的常见用例:

自动使用可用于测试组的最新测试。
devicetester_linux run-suite -u y --group-id mqtt --pool-id DevicePool1
在特定测试套件版本中运行测试。
devicetester_linux run-suite -u n --suite-id GGQ_1.0.0 --group-id mqtt --pool-id DevicePool1
运行时提示更新。
devicetester_linux run-suite --pool-id DevicePool1

IDT 配置设置的更新

新测试可能会引入新的 IDT 配置设置。

  • 如果设置是可选的,IDT 将继续运行测试。

  • 如果需要这些设置,IDT 会通知您并停止运行。配置设置后,请重新启动测试运行。

    配置设置位于 <device_tester_extract_location>/configs 文件夹中。有关更多信息,请参阅 设置配置以运行 AWS IoT Greengrass 资格套件

如果更新的测试套件版本添加了配置设置,IDT 会在 <device_tester_extract_location>/configs 中创建原始配置文件的副本。