教程:构建并运行示例 IDT 测试套件 - 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 Version 2,这增加了重要的新功能支持其他平台

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

教程:构建并运行示例 IDT 测试套件

这些区域有:Amazon IoT设备测试器下载包括示例测试套件的源代码。你可以完成本教程来构建和运行示例测试套件,以了解如何使用Amazon IoT适用于 的 Device TesterAmazon IoT Greengrass运行自定义测试套件。

在本教程中,您将完成以下步骤:

  1. 构建示例测试套件

  2. 使用 IDT 运行示例测试套件

先决条件

要完成本教程,您需要:

  • 主机要求
    • 最新版本的Amazon IoTDevice Tester

    • Python3.7 或更高版本

      要检查计算机上安装的 Python 版本,请运行以下命令:

      python3 --version

      在 Windows 上,如果使用此命令返回错误,则使用python --version相反。如果返回的版本号为 3.7 或更高,则在 Powershell 终端中运行以下命令以设置python3作为您的别名python命令。

      Set-Alias -Name "python3" -Value "python"

      如果没有返回版本信息或者版本号小于 3.7,请按照中的说明进行操作正在下载 Python安装 Python 3.7+。有关更多信息,请参阅 。Python 文档.

    • urllib3

      验证urllib3已正确安装,请运行以下命令:

      python3 -c 'import urllib3'

      如果urllib3请运行以下命令进行安装:

      python3 -m pip install urllib3
  • 设备要求
    • 具有 Linux 操作系统且与主机相同网络的网络连接的设备。

      建议使用Raspberry Pi使用树莓派 OS。确保设置SSH在 Raspberry Pi 上远程连接到它。

为 IDT 配置设备信息

为 IDT 配置设备信息以运行测试。您必须更新device.json模板位于<device-tester-extract-location>/configs包含以下信息的文件夹。

[ { "id": "pool", "sku": "N/A", "devices": [ { "id": "<device-id>", "connectivity": { "protocol": "ssh", "ip": "<ip-address>", "port": "<port>", "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", "privKeyPath": "/path/to/private/key", "password": "<password>" } } } } ] } ]

devices对象,请提供以下信息:

id

设备用户定义的唯一标识符。

connectivity.ip

设备的 IP 地址。

connectivity.port

可选。用于与设备的 SSH 连接的端口号。

connectivity.auth

连接的身份验证信息。

此属性仅在 connectivity.protocol 设置为 ssh 时适用。

connectivity.auth.method

用于通过给定的连接协议访问设备的身份验证方法。

支持的值为:

  • pki

  • password

connectivity.auth.credentials

用于身份验证的凭证。

connectivity.auth.credentials.user

用于登录设备的用户名。

connectivity.auth.credentials.privKeyPath

用于登录设备的私有密钥的完整路径。

此值仅在 connectivity.auth.method 设置为 pki 时适用。

devices.connectivity.auth.credentials.password

用于登录设备的密码。

此值仅在 connectivity.auth.method 设置为 password 时适用。

注意

只有当 method 设置为 pki 时才指定 privKeyPath

只有当 method 设置为 password 时才指定 password

构建示例测试套件

这些区域有:<device-tester-extract-location>/samples/python文件夹中包含示例配置文件、源代码和 IDT Client SDK,您可以使用提供的构建脚本将这些文件组合到测试套件中。以下目录树显示了这些示例文件的位置:

<device-tester-extract-location> ├── ... ├── tests ├── samples │ ├── ... │ └── python │ ├── configuration │ ├── src │ └── build-scripts │ ├── build.sh │ └── build.ps1 └── sdks ├── ... └── python └── idt_client

要构建测试套件,请在主机上运行以下命令:

Windows
cd <device-tester-extract-location>/samples/python/build-scripts ./build.ps1
Linux, macOS, or UNIX
cd <device-tester-extract-location>/samples/python/build-scripts ./build.sh

这将在IDTSampleSuitePython_1.0.0中的文件夹<device-tester-extract-location>/testsfolder。查看中的文件IDTSampleSuitePython_1.0.0文件夹以了解示例测试套件的结构方式,并查看测试用例可执行文件和测试配置 JSON 文件的各种示例。

下一步: 使用 IDT 可以运行示例测试套件那是你创造的。

使用 IDT 运行示例测试套件

要运行示例测试套件,请在主机上运行以下命令:

cd <device-tester-extract-location>/bin ./devicetester_[linux | mac | win_x86-64] run-suite --suite-id IDTSampleSuitePython

IDT 运行示例测试套件并将结果流式传输到控制台。测试结束运行后,您会看到以下信息:

========== Test Summary ========== Execution Time: 5s Tests Completed: 4 Tests Passed: 4 Tests Failed: 0 Tests Skipped: 0 ---------------------------------- Test Groups: sample_group: PASSED ---------------------------------- Path to IoT Device Tester Report: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/awsiotdevicetester_report.xml Path to Test Execution Logs: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/logs Path to Aggregated JUnit Report: /path/to/devicetester/results/87e673c6-1226-11eb-9269-8c8590419f30/IDTSampleSuitePython_Report.xml

问题排查

在完成教程中,请使用以下信息帮助解决所有问题。

测试用例未成功运行

如果测试未成功运行,IDT 会将错误日志流式传输到控制台,以帮助您对测试运行进行故障排除。确保您满足所有先决条件在本教程中。

无法连接到所测试设备

请验证以下内容:

  • 您的device.json文件包含正确的 IP 地址、端口和身份验证信息。

  • 您可以从主机通过 SSH 连接到设备。