创建IDT测试套件配置文件 - 免费 RTOS

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建IDT测试套件配置文件

本节介绍创建配置文件时使用的格式,您在编写自定义测试套件时包含了这些文件。

必需配置文件

suite.json

包含有关测试套件的信息。请参阅 配置 suite.json

group.json

包含有关测试组的信息。您必须为测试套件中的每个测试组创建一个 group.json 文件。请参阅 配置 group.json

test.json

包含有关测试用例的信息。您必须为测试套件中的每个测试用例创建一个 test.json 文件。请参阅 配置 test.json

可选配置文件

test_orchestrator.yamlstate_machine.json

定义运行测试套件时如何IDT运行测试。SSe配置 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

此测试套件正在测试的产品或功能的用户定义名称。该名称显示在 for test Runner 中。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

测试组的描述性名称。该名称显示在 for test Runner 中。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

测试用例的描述性名称。该名称显示在 for test Runner 中。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 文件和 suite.json 文件中指定相同的环境变量,则 test.json 文件中的值优先。

配置 test_orchestrator.yaml

测试编排工具是一种控制测试套件执行流程的构造。它决定测试套件的起始状态,根据用户定义的规则管理状态转换,并继续在这些状态之间进行转换,直到达到结束状态。

如果您的测试套件不包含用户定义的测试协调器,则IDT会为您生成一个测试协调器。

默认测试编排工具执行以下功能:

  • 使测试运行器能够选择和运行特定的测试组,而不是整个测试套件。

  • 如果未选择特定的测试组,则按随机顺序运行测试套件中的每个测试组。

  • 生成报告并打印控制台摘要,其中显示每个测试组和测试用例的测试结果。

有关IDT测试协调器如何运行的更多信息,请参阅。配置IDT测试协调器

配置 userdata_schema.json

userdata_schema.json 文件确定了测试运行器提供用户数据的架构。如果您的测试套件需要 device.json 文件中不存在的信息,则需要用户数据。例如,您的测试可能需要 Wi-Fi 网络凭证、特定的开放端口或用户必须提供的证书。此信息可以IDT作为用户在其<device-tester-extract-location>/config文件夹中创建的名userdata为的输入参数提供,该参数的值是一个userdata.json文件。userdata.json 文件的格式取决于您在测试套件中包含的 userdata_schema.json 文件。

要指示测试运行器必须提供 userdata.json 文件:

  1. suite.json 文件中设置 userDataRequiredtrue

  2. 在您的 <custom-test-suite-folder> 中,创建一个 userdata_schema.json 文件。

  3. 编辑userdata_schema.json文件以创建有效的 IETF Draft v4 JSON 架构

IDT运行测试套件时,它会自动读取架构并使用它来验证测试运行器提供的userdata.json文件。如果有效,则该userdata.json文件的内容在IDT上下文和测试协调器上下文中都可用。