建立 IDT 測試套件設定檔 - AWS IoT Greengrass

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

建立 IDT 測試套件設定檔

本節說明您在撰寫自訂測試套件時所包含的組態檔案所使用的格式。

必要的組態檔案
suite.json

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

group.json

包含測試群組的相關資訊。您必須為測試套group.json件中的每個測試組創建一個文件。請參閱 設定群組

test.json

包含有關測試用例的信息。您必須為測試套test.json件中的每個測試用例創建一個文件。請參閱 配置測試

可選配置文件
test_orchestrator.yamlstate_machine.json

定義 IDT 執行測試套件時如何執行測試。上交所設定測試協調工具

注意

從 IDT v4.5.1 開始,您可以使用test_orchestrator.yaml檔案來定義測試工作流程。在舊版 IDT 中,您可以使用該state_machine.json檔案。如需狀態機的相關資訊,請參閱配置 IDT 狀態機

userdata_schema.json

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

配置文件放置在您的<custom-test-suite-folder>,如下所示。

<custom-test-suite-folder> └── suite ├── suite.json ├── test_orchestrator.yaml ├── 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.json檔案中包含自訂資訊。如果將此值設定為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.json文件中運行測試的設備。

requiredResources

選用。陣列,提供執行此測試所需資源裝置的相關資訊。

requiredResources.name

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

requiredResources.features

使用者定義的資源裝置功能陣列。

requiredResources.features.name

特徵的名稱。您要使用此裝置的裝置功能。此名稱與resource.json文件中測試運行器提供的功能名稱匹配。

requiredResources.features.version

選用。功能的版本。該值與resource.json文件中的測試運行程序提供的功能版本匹配。如果未提供版本,則不檢查該功能。如果功能不需要版本號碼,請將此欄位保留空白。

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檔案和檔案中指定相同的環境變數,則test.json檔案中的值優先。suite.json

設定測試協調工具

測試協調器是一種控制測試套件執行流程的構造。它會判斷測試套件的開始狀態、根據使用者定義的規則管理狀態轉換,並繼續透過這些狀態轉換,直到達到結束狀態為止。

如果您的測試套件不包含用戶定義的測試協調器,IDT 將為您生成測試協調器。

默認測試協調器執行以下功能:

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

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

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

如需 IDT 測試協調器如何運作的詳細資訊,請參閱。配置 IDT 測試編排器

配置用戶數據模式

userdata_schema.json文件確定測試運行程序提供用戶數據的模式。如果您的測試套件需要device.json文件中不存在的信息,則需要用戶數據。例如,您的測試可能需要使用者必須提供的 Wi-Fi 網路認證、特定開放連接埠或憑證。此資訊可以作為使用者在其資<device-tester-extract-location>/config料夾中建立的名為userdatauserdata.json檔案的輸入參數提供給 IDT。該userdata.json文件的格式基於您包含在測試套userdata_schema.json件中的文件。

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

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

  2. 在您的<custom-test-suite-folder>中建立userdata_schema.json檔案。

  3. 編輯該userdata_schema.json文件以創建一個有效的 IETF 草案 v4 JSON 模式。

當 IDT 運行測試套件時,它會自動讀取模式並使用它來驗證測試運行器提供的userdata.json文件。如果有效,則userdata.json檔案內容可在 IDT 前後關聯測試協調器內容中使用。