创建 IDT 测试套件配置文件 - FreeRTOS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

创建 IDT 测试套件配置文件

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

必需的 JSON 文件

suite.json

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

group.json

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

test.json

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

可选 JSON 文件

state_machine.json

定义 IDT 运行测试套件时如何运行测试。请参阅配置 state_machine.json.

userdata_schema.json

userdata.json 文件定义测试运行程序可将其包含在设置配置中的架构。文件用于运行测试所需的任何其他配置信息,但该文件中不存在这些信息。userdata.jsondevice.json请参阅配置 userdata_schema.json.

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

文件设置环境变量,并确定是否需要用户数据才能运行测试套件。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 的主机的操作系统运行的测试用例可执行文件。支持的值为 linuxmacwin

execution.os.cmd

要为指定操作系统运行的测试用例可执行文件的路径。此位置必须位于系统路径中。

execution.os.args

可选。提供的用于运行测试用例可执行文件的参数。

environmentVariables

可选。为此测试用例设置的环境变量数组。

environmentVariables.key

环境变量的名称。

environmentVariables.value

环境变量的值。

注意

如果您在 test.json 文件和 suite.json 文件中指定相同的环境变量,则 test.json 文件中的值优先。

配置 state_machine.json

状态机是控制测试套件执行流的构造。它确定测试套件的开始状态,根据用户定义的规则管理状态转换,并继续转换经过这些状态,直到它达到结束状态。

如果您的测试套件不包括用户定义的状态机,IDT 将为您生成一个状态机。默认状态机执行以下功能:

  • 提供测试运行程序以选择和运行特定测试组,而不是整个测试套件。

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

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

有关 IDT 状态机如何工作的更多信息,请参阅配置 IDT 状态机

配置 userdata_schema.json

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

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

  1. suite.json 文件中,将 userDataRequired 设置为 true

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

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

当 IDT 运行您的测试套件时,它会自动读取架构并使用它来验证测试运行程序提供的 userdata.json 文件。如果有效,则 userdata.json 文件的内容在 IDT context (IDT 上下文)state machine context (状态机上下文) 中均可用。