創建 IDT 測試套件配置文件 - AWS IoT Greengrass

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 測試套件配置文件

本節介紹您在編寫自定義測試套件時所包含的 JSON 配置文件的創建格式。

必要 JSON 檔案
suite.json

包含關於測試套件的資訊。請參閱 設定套件。

group.json

包含關於測試組的資訊。您必須建立group.json文件,用於測試套件中的每個測試組。請參閱 設定組。

test.json

包含關於測試用例的資訊。您必須建立test.json文件,用於測試套件中的每個測試用例。請參閱 設定測試。

可選 JSON 檔案
state_machine.json

定義 IDT 運行測試套件時如何運行測試。請參閱 配置狀態計算機 .json

userdata_schema.json

定義userdata.json文件,測試運行者可以包含在其設置配置中。所以此userdata.json文件用於運行測試所需的任何其他配置信息,但不存在於device.jsonfile. 請參閱 配置用户數據

JSON 配置文件將放置在<custom-test-suite-folder>如下所示。

<custom-test-suite-folder> └── suite ├── suite.json ├── state_machine.json ├── userdata_schema.json ├── <test-group-folder> ├── group.json ├── <test-case-folder> └── test.json

設定套件。

所以此suite.json文件設置環境變量,並確定運行測試套件是否需要用户數據。使用下列的範本設定<custom-test-suite-folder>/suite/suite.json文件:

{ "id": "<suite-name>_<suite-version>", "title": "<suite-title>", "details": "<suite-details>", "userDataRequired": true | false, "environmentVariables": [ { "key": "<name>", "value": "<value>", }, ... { "key": "<name>", "value": "<value>", } ] }

如下所述,包含值的所有欄位皆為必要:

id

測試套件的唯一用户定義 ID。的值id必須符合測試套件檔案夾的名稱,其中suite.json檔案位置。套件名稱和套件版本也必須符合下列要求:

  • <suite-name>不能包含下劃線。

  • <suite-version>被表示為x.x.x,其中x是數字。

ID 顯示在 IDT 生成的測試報告中。

title

由此測試套件測試的產品或功能的用户定義名稱。該名稱顯示在測試運行者的 IDT CLI 中。

details

測試套件用途的簡短説明。

userDataRequired

定義測試運行者是否需要將自定義信息包含在userdata.jsonfile. 如果將此值設定為true,您也必須包含userdata_schema.json文件在測試套件文件夾中。

environmentVariables

選用。為此測試套件設定的環境變數陣列。

environmentVariables.key

環境變數的名稱。

environmentVariables.value

環境變數的值。

設定組。

所以此group.json檔案定義測試組是必要項目或選用項目。使用下列的範本設定<custom-test-suite-folder>/suite/<test-group>/group.json文件:

{ "id": "<group-id>", "title": "<group-title>", "details": "<group-details>", "optional": true | false, }

如下所述,包含值的所有欄位皆為必要:

id

測試組的唯一用户定義 ID。的值id必須符合測試組檔案的名稱,其中group.json檔案位於此,且不得包含底線 (_。ID 用於 IDT 生成的測試報告。

title

測試組的描述性名稱。該名稱顯示在測試運行者的 IDT CLI 中。

details

測試組用途的簡短説明。

optional

選用。設定為true以便在 IDT 完成運行所需測試後將此測試組顯示為可選組。預設值為 false.

設定測試。

所以此test.json文件確定測試用例可執行文件和測試用例使用的環境變量。如需建立測試用例可執行檔案的詳細資訊,請參創建 IDT 測試用例可執行文件

使用下列的範本設定<custom-test-suite-folder>/suite/<test-group>/<test-case>/test.json文件:

{ "id": "<test-id>", "title": "<test-title>", "details": "<test-details>", "requireDUT": true | false, "requiredResources": [ { "name": "<resource-name>", "features": [ { "name": "<feature-name>", "version": "<feature-version>", "jobSlots": <job-slots> } ] } ], "execution": { "timeout": <timeout>, "mac": { "cmd": "/path/to/executable", "args": [ "<argument>" ], }, "linux": { "cmd": "/path/to/executable", "args": [ "<argument>" ], }, "win": { "cmd": "/path/to/executable", "args": [ "<argument>" ] } }, "environmentVariables": [ { "key": "<name>", "value": "<value>", } ] }

如下所述,包含值的所有欄位皆為必要:

id

測試用例的唯一用户定義 ID。的值id必須符合測試用例檔案夾的名稱,其中test.json檔案位於此,且不得包含底線 (_。ID 用於 IDT 生成的測試報告。

title

測試用例的描述名稱。該名稱顯示在測試運行者的 IDT CLI 中。

details

測試用例用途的簡短描述。

requireDUT

選用。設定為true如果需要設備運行此測試,否則設置為false。預設值為 true. 測試運行者將配置他們將用於在device.jsonfile.

requiredResources

選用。提供有關運行此測試所需資源設備的信息的陣列。

requiredResources.name

運行此測試時為資源設備指定的唯一名稱。

requiredResources.features

用户定義的資源設備功能的數組。

requiredResources.features.name

功能的名稱。要使用此設備的設備功能。此名稱與測試運行者在resource.jsonfile.

requiredResources.features.version

選用。功能的版本。此值與測試運行者在resource.jsonfile. 如果未提供版本,則不檢查該功能。如果此功能不需要版本號,請將此字段保留空白。

requiredResources.features.jobSlots

選用。此功能可支持的同時測試的數量。預設值為 1。如果您希望 IDT 為單個功能使用不同的設備,我們建議您將此值設置為1

execution.timeout

IDT 等待測試完成運行的時間量 (以毫秒為單位)。如需此值的詳細資訊,請參創建 IDT 測試用例可執行文件

execution.os

要基於運行 IDT 的主機的操作系統運行的測試用例可執行文件。支援的值為 linuxmacwin

execution.os.cmd

要為指定操作系統運行的測試用例可執行文件的路徑。此位置必須位於系統路徑中。

execution.os.args

選用。要提供的用於運行測試用例可執行文件的參數。

environmentVariables

選用。此測試用例設定的環境變數陣列。

environmentVariables.key

環境變數的名稱。

environmentVariables.value

環境變數的值。

注意

如果您在test.json文件和suite.json文件中的值,test.json檔案優先。

配置狀態計算機 .json

狀態機是控制測試套件執行流程的構造。它確定測試套件的起始狀態,根據用户定義的規則管理狀態轉換,並繼續在這些狀態之間進行轉換,直到它達到結束狀態。

如果您的測試套件不包含用户定義的狀態機,IDT 將為您生成一個狀態機。默認狀態機執行以下功能:

  • 為測試運行者提供選擇和運行特定測試組的能力,而不是整個測試套件。

  • 如果未選擇特定測試組,則以隨機順序運行測試套件中的每個測試組。

  • 生成報告並打印顯示每個測試組和測試用例的測試結果的控制台摘要。

如需 IDT 狀態機器如何運行的詳細資訊,請參配置 IDT 狀態機

配置用户數據

所以此userdata_schema.json文件確定測試運行者在其中提供用户數據的架構。如果您的測試套件需要的信息不存在於device.jsonfile. 例如,您的測試可能需要 Wi-Fi 網絡憑據、特定的開放端口或用户必須提供的證書。此信息可以作為輸入參數提供給 IDT,名為userdata,其值是userdata.json文件中創建的文件,用户可以在<device-tester-extract-location>/configfolder。的格式userdata.json文件基於userdata_schema.json檔案,您包含在測試套件中。

為了表明測試運行者必須提供userdata.json文件:

  1. 在 中suite.json檔案, 設定userDataRequiredtrue

  2. 在您的<custom-test-suite-folder>,建立userdata_schema.jsonfile.

  3. 編輯userdata_schema.json文件創建一個有效的IETF 草稿 V4 JSON 架構

當 IDT 運行測試套件時,它會自動讀取架構並使用它來驗證userdata.json文件由測試運行者提供的。如果有效,則userdata.json文件都可用於IDT 上下文,並在狀態機器上下文