AWS IoT Greengrass Version 1在 2023 年 6 月 30 日之前,将不再接收功能更新,并且将仅收到安全补丁和错误修复。有关更多信息,请参阅 AWS IoT Greengrass V1维护时段 。我们强烈建议您 迁移到AWS IoT Greengrass Version 2 ,这增加了 重要的新功能 并 支持其他平台 。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 IDT 上下文
当 IDT 运行测试套件时,测试套件可以访问一组数据,这些数据可用于确定每个测试的运行方式。这些数据称为 IDT 上下文。例如,测试运行者在
userdata.json
文件可用于 IDT 上下文中的测试套件。
IDT 上下文可以被视为只读 JSON 文档。测试套件可以使用标准 JSON 数据类型(如对象、数组、数字等)从上下文中检索数据并将数据写入上下文。
上下文架构
IDT 上下文使用以下格式:
"config": { <config-json-content> "timeoutMultiplier": timeout-multiplier "device": { <device-json-device-element> "devicePool": { <device-json-pool-element> "resource": { "devices": [ <resource-json-device-element> "name": "<resource-name>" "testData": { "awsCredentials": { "awsAccessKeyId": "<access-key-id>", "awsSecretAccessKey": "<secret-access-key>", "awsSessionToken": "<session-token>" "logFilePath": "/path/to/log/file" "userData": { <userdata-json-content>
In
suite.json
和
test.json
您使用
{
{
. 也就是说,不要使用根元素
query
}}
$.
开始你的表情。
In
statemachine.json
您使用
{
{
$.
.
query
}}
在 API 命令中,你使用
要么
query
{
{
$.
,取决于命令。有关更多信息,请参阅开发工具包中的内联文档。
query
}}
下表介绍了典型 JSONPath 表达式中的运算符:
Operator Description The root element. Because the top-level context value for IDT is an object, you will typically use
$.
to
start your queries.
.childname
Accesses the child element with name
孩子名
from an object. If applied to an array,
yields a new array with this operator applied to each element. The
element name is case sensitive. For example, the query to access the
awsRegion
value in the
config
object is
$.config.aws 区域
.
[开始:结束]
Filters elements from an array, retrieving items
beginning from the
启动
index and going up to the
结束
index, both inclusive.
[index1、index 2、...、indexN]
Filters elements from an array, retrieving items
from only the specified indices.
[? (expr)]
Filters elements from an array using the
expr
expression. This expression must evaluate to a
boolean value.
要创建过滤器表达式,请使用以下语法:
<jsonpath>
|<value>
operator
<jsonpath>
|<value>
在此语法中:
你必须每次出现
devicePool
在你的查询中都是小写的。也就是说,使用
devicepool
相反。