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

Amazon IoT Greengrass Version 1在 2023 年 6 月 30 日之前,不再接收功能更新,只会收到安全补丁和错误修复。有关更多信息,请参阅 。Amazon IoT Greengrass V1维护政策. 强烈建议您迁移到Amazon IoT Greengrass Version 2,它补充说重要新功能对其他平台的支持.

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

创建 IDT 测试套件配置文件

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

必需的 JSON 文件

suite.json

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

group.json

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

test.json

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

JSON 文件

state_machine.json

定义 IDT 运行测试套件时测试的运行方式。请参阅 配置状态 _achine .json

userdata_schema.json

定义的架构userdata.json文件测试运行者可以包含在他们的设置配置中。这些区域有:userdata.json文件用于存储运行测试所需但不在的任何其他配置信息device.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

配置套件 .JSON

这些区域有:suite.json文件设置环境变量并确定运行测试套件是否需要用户数据。使用以下模板配置<custom-test-suite-folder>/suite/suite.jsonfile:

{ "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

环境变量的值。

配置组 .JSON

这些区域有:group.json文件定义测试组是必需的还是可选的。使用以下模板配置<custom-test-suite-folder>/suite/<test-group>/group.jsonfile:

{ "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.jsonfile 确定了测试用例可执行文件和测试用例使用的环境变量。有关创建测试用例可执行文件的更多信息,请参阅创建 IDT 测试用例可执行文件.

使用以下模板配置<custom-test-suite-folder>/suite/<test-group>/<test-case>/test.jsonfile:

{ "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文件优先。

配置状态 _achine .json

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

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

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

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

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

有关 IDT 状态机运作方式的更多信息,请参阅配置 IDT 状态机.

配置 userdata_schema.json

这些区域有:userdata_schema.json文件确定了测试运行者提供用户数据的架构。如果测试套件需要的信息不在device.json文件。例如,您的测试可能需要 Wi-Fi 网络凭据、特定的开放端口或用户必须提供的证书。此信息可以作为输入参数提供给 IDTuserdata,其价值是userdata.json文件,用户在其中创建<device-tester-extract-location>/configfolder。的格式userdata.json文件基于userdata_schema.json包含在测试套件中的文件。

为了表明测试跑步者必须提供userdata.jsonfile:

  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 上下文而且在状态机上下文.