AWS IoT Greengrass Version 1 2023 年 6 月 30 日进入延长寿命阶段。有关更多信息,请参阅 AWS IoT Greengrass V1 维护策略。在此日期之后,将 AWS IoT Greengrass V1 不会发布提供功能、增强功能、错误修复或安全补丁的更新。在上面运行的设备 AWS IoT Greengrass V1 不会中断,将继续运行并连接到云端。我们强烈建议您迁移到 AWS IoT Greengrass Version 2,这样可以添加重要的新功能并支持其他平台。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:构建和运行示例 IDT 测试套件
AWS IoT Device Tester 下载项中包含示例测试套件的源代码。您可以按照本教程所示构建和运行示例测试套件,以了解如何使用 AWS IoT Device Tester AWS IoT Greengrass 来运行自定义测试套件。
在本教程中,您将完成以下步骤:
先决条件
要完成本教程,您需要:
-
主机要求
-
AWS IoT Device Tester 的最新版本
-
Python
3.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
是否已正确安装,请运行以下命令:python3 -c 'import urllib3'
如果未安装
urllib3
,请运行以下命令进行安装:python3 -m pip install urllib3
-
-
设备要求
-
一种运行 Linux 操作系统的设备,其网络连接到与您主机相同的网络。
我们建议您使用搭载 Raspberry Pi 操作系统的 Raspberry Pi
。请确保您设置 Raspberry Pi 上的 SSH 才能远程连接到它。
-
配置 IDT 的设备信息
配置您的设备信息,以便 IDT 运行测试。您必须使用以下信息,更新位于
文件夹中的 <device-tester-extract-location>
/configsdevice.json
模板。
[ { "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
。
构建示例测试套件
文件夹包含示例配置文件、源代码和 IDT 客户端软件开发工具包,您可以使用提供的构建脚本将其组合成一个测试套件。以下目录树显示了这些示例文件的位置:<device-tester-extract-location>
/samples/python
<device-tester-extract-location>
├── ... ├── tests ├── samples │ ├── ... │ └── python │ ├── configuration │ ├── src │ └── build-scripts │ ├── build.sh │ └── build.ps1 └── sdks ├── ... └── python └── idt_client
要构建测试套件,请在主机上运行以下命令:
这将在该
文件夹下的 <device-tester-extract-location>
/testsIDTSampleSuitePython_1.0.0
文件夹中创建示例测试套件。检查 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 从主机连接到您的设备。