教學課程:建置並執行範例 IDT 測試套件 - AWS IoT Greengrass

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:建置並執行範例 IDT 測試套件

此下AWS IoT Device Tester載包含範例測試套件的原始程式碼。您可以完成本教程來構建和運行示例測試套件,以了解如何使用 IDT AWS IoT Greengrass 來運行自定義測試套件。

在本教學課程中,您將完成以下步驟:

  1. 建置範例測試套件

  2. 使用 IDT 運行示例測試套件

必要條件

為了完成本教學,您需要以下項目:

  • 主機電腦需求
    • AWS IoT Device Tester 的最新版本

    • Python 3.7 或更高版本

      若要檢查電腦上安裝的 Python 版本,請執行下列命令:

      python3 --version

      在 Windows 上,如果使用此命令返回錯誤,則使用python --version代替。如果傳回的版本號碼為 3.7 或更高版本,請在 PowerShell 終端機中執行下列命令,以設定python3python命令的別名。

      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 作業系統以及與主機電腦相同網路的網路連線的裝置。

      我們建議您使用樹莓派與樹莓派操作系統. 確保您在樹莓派上設置了 SSH 以遠程連接到它。

設定 IDT 的裝置資訊

配置 IDT 的設備信息以運行測試。您必須使用下列資訊更新位於資<device-tester-extract-location>/configs料夾中的device.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

建置範例測試套件

該文件<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>/tests件。檢閱IDTSampleSuitePython_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 從主機連接到設備。