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 檔案
可選 JSON 檔案
state_machine.json
-
定義 IDT 運行測試套件時如何運行測試。請參閱 配置狀態計算機 .json。
userdata_schema.json
-
定義userdata.json文件,測試運行者可以包含在其設置配置中。所以此
userdata.json
文件用於運行測試所需的任何其他配置信息,但不存在於device.json
file. 請參閱 配置用户數據。
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.json
file. 如果將此值設定為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
file. requiredResources
-
選用。提供有關運行此測試所需資源設備的信息的陣列。
requiredResources.name
-
運行此測試時為資源設備指定的唯一名稱。
requiredResources.features
-
用户定義的資源設備功能的數組。
requiredResources.features.name
-
功能的名稱。要使用此設備的設備功能。此名稱與測試運行者在
resource.json
file. requiredResources.features.version
-
選用。功能的版本。此值與測試運行者在
resource.json
file. 如果未提供版本,則不檢查該功能。如果此功能不需要版本號,請將此字段保留空白。 requiredResources.features.jobSlots
-
選用。此功能可支持的同時測試的數量。預設值為
1
。如果您希望 IDT 為單個功能使用不同的設備,我們建議您將此值設置為1
。
execution.timeout
-
IDT 等待測試完成運行的時間量 (以毫秒為單位)。如需此值的詳細資訊,請參創建 IDT 測試用例可執行文件。
execution.
os
-
要基於運行 IDT 的主機的操作系統運行的測試用例可執行文件。支援的值為
linux
、mac
和win
。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.json
file. 例如,您的測試可能需要 Wi-Fi 網絡憑據、特定的開放端口或用户必須提供的證書。此信息可以作為輸入參數提供給 IDT,名為userdata
,其值是userdata.json
文件中創建的文件,用户可以在
folder。的格式<device-tester-extract-location>
/configuserdata.json
文件基於userdata_schema.json
檔案,您包含在測試套件中。
為了表明測試運行者必須提供userdata.json
文件:
-
在 中
suite.json
檔案, 設定userDataRequired
至true
。 -
在您的
,建立<custom-test-suite-folder>
userdata_schema.json
file. -
編輯
userdata_schema.json
文件創建一個有效的IETF 草稿 V4 JSON 架構。
當 IDT 運行測試套件時,它會自動讀取架構並使用它來驗證userdata.json
文件由測試運行者提供的。如果有效,則userdata.json
文件都可用於IDT 上下文,並在狀態機器上下文。