本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建 IDT 测试套件配置文件
本节介绍在编写自定义测试套件时创建配置文件时所采用的格式。
必需的配置文件
suite.json
-
包含有关测试套件的信息。请参阅配置 suite.json。
group.json
-
包含有关测试组的信息。您必须为测试套件中的每个测试组创建一个
group.json
文件。请参阅配置 group.json。 test.json
-
包含有关测试用例的信息。您必须为测试套件中的每个测试用例创建一个
test.json
文件。请参阅配置 test.json。
可选配置文件
test_orchestrator.yaml
或者state_machine.json
-
定义 IDT 运行测试套件时如何运行测试。sE配置 test_orchestrator.yaml。
注意 从 IDT v4.5.2 开始,您可以使用该
test_orchestrator.yaml
文件定义测试工作流程。在以前版本的 IDT 中,您可以使用该state_machine.json
文件。有关状态机的信息,请参见配置 IDT 状态机。 userdata_schema.json
-
定义测试运行器可以在其设置配置中包含userdata.json的文件架构。该
userdata.json
文件用于运行测试所需但device.json
文件中不存在的任何其他配置信息。请参阅配置 userdata_schema.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
该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
该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
该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 的主机的操作系统。支持的值有
linux
、mac
和win
。execution.
os
.cmd-
要在指定操作系统上运行的测试用例可执行文件的路径。此位置必须位于系统路径中。
execution.
os
.args-
可选。为运行测试用例可执行文件而提供的参数。
environmentVariables
-
可选。为该测试用例设置的环境变量数组。
environmentVariables.key
-
环境变量的名称。
environmentVariables.value
-
环境变量的值。
注意 如果您在
test.json
文件和文件中指定相同的环境变量,则suite.json
test.json
文件中的值优先。
配置 test_orchestrator.yaml
测试编排器是一种控制测试套件执行流程的结构。它确定测试套件的起始状态,根据用户定义的规则管理状态转换,并在这些状态之间继续过渡,直到达到结束状态。
如果您的测试套件不包含用户定义的测试编排器,IDT 将为您生成测试编排器。
默认的测试编排器执行以下功能:
-
让测试运行者能够选择和运行特定的测试组,而不是整个测试套件。
-
如果未选择特定的测试组,则按随机顺序运行测试套件中的每个测试组。
-
生成报告并打印控制台摘要,显示每个测试组和测试用例的测试结果。
有关 IDT 如何测试编排器功能的更多信息,请参阅配置 IDT 测试编排器。
配置 userdata_schema.json
该userdata_schema.json
文件决定了测试运行者提供用户数据的架构。如果您的测试套件需要device.json
文件中不存在的信息,则需要用户数据。例如,您的测试可能需要使用 Wi-Fi 网络证书、特定的开放端口或用户必须提供的证书。这些信息可以作为用户在其
文件夹中创建的名<device-tester-extract-location>
/configuserdata
为的输入参数提供给 IDT,其值是一个userdata.json
文件。userdata.json
文件的格式基于您在测试套件中包含的userdata_schema.json
文件。
要表明测试运行者必须提供userdata.json
文件,请执行以下操作:
-
在
suite.json
文件中,设置userDataRequired
为true
。 -
在您的中
,创建一个<custom-test-suite-folder>
userdata_schema.json
文件。 -
编辑
userdata_schema.json
文件以创建有效的 IETF 草稿 v4 JSON 架构。
当 IDT 运行您的测试套件时,它会自动读取架构并使用它来验证测试运行器提供的userdata.json
文件。如果有效,则userdata.json
文件内容在 IDT 上下文和测试编排器上下文中均可用。