本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:建置並執行範例 IDT 測試套件
此下AWS IoT Device Tester載包含範例測試套件的原始程式碼。您可以完成本教程來構建和運行示例測試套件,以了解如何使用 IDT 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
-
設定 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 Client SDK,您可以使用提供的構建腳本將其合併到測試套件中。下列目錄樹狀目錄顯示這些範例檔案的位置:<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
若要建立測試套件,請在主機電腦上執行下列命令:
這會在資料夾內的IDTSampleSuitePython_1.0.0
資料夾中建立範例測試套
件。檢閱<device-tester-extract-location>
/testsIDTSampleSuitePython_1.0.0
資料夾中的檔案,瞭解範例測試套件的結構方式,並查看測試案例可執行檔和測試設定 JSON 檔案的各種範例。
注意
示例測試套件包括 python 源代碼。請勿在測試套件代碼中包含敏感信息。
下一步:使用 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 從主機連接到設備。