运行 Amazon IoT Greengrass 资格认证套件 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon IoT Greengrass Version 1 2023 年 6 月 30 日进入延长寿命阶段。有关更多信息,请参阅 Amazon IoT Greengrass V1 维护策略。在此日期之后,将 Amazon IoT Greengrass V1 不会发布提供功能、增强功能、错误修复或安全补丁的更新。在上面运行的设备 Amazon IoT Greengrass V1 不会中断,将继续运行并连接到云端。我们强烈建议您迁移到 Amazon IoT Greengrass Version 2,这样可以添加重要的新功能支持其他平台

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

运行 Amazon IoT Greengrass 资格认证套件

设置所需的配置后,就可以开始测试了。完整测试套件的运行时取决于您的硬件。作为参考,在 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 会提示您。有关更多信息,请参阅设置默认更新行为

有关 run-suite 和其他 IDT 命令的更多信息,请参阅 适用于 Amazon 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 的依赖关系

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

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

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

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

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

设置默认更新行为

当您开始测试运行时,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

适用于 Amazon IoT Greengrass 的 IDT 命令

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

IDT v3.0.0 and later
help

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

list-groups

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

list-suites

列出可用的测试套件。

list-supported-products

列出受支持的产品(在本例中为 Amazon 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 在线检查更新的测试套件版本。有关更多信息,请参阅测试套件版本

  • 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