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

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

创建 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 的主机的操作系统。支持的值有 linuxmacwin

execution.os.cmd

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

execution.os.args

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

environmentVariables

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

environmentVariables.key

环境变量的名称。

environmentVariables.value

环境变量的值。

注意

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

配置 test_orchestrator.yaml

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

如果您的测试套件不包含用户定义的测试编排器,IDT 将为您生成测试编排器。

默认的测试编排器执行以下功能:

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

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

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

有关 IDT 如何测试编排器功能的更多信息,请参阅配置 IDT 测试编排器

配置 userdata_schema.json

userdata_schema.json文件决定了测试运行者提供用户数据的架构。如果您的测试套件需要device.json文件中不存在的信息,则需要用户数据。例如,您的测试可能需要使用 Wi-Fi 网络证书、特定的开放端口或用户必须提供的证书。这些信息可以作为用户在其<device-tester-extract-location>/config文件夹中创建的名userdata为的输入参数提供给 IDT,其值是一个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 草稿 v4 JSON 架构

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