如何使用 Jmeter 中的 JSON JMESPasth Extractor 从 JSON 响应中提取所有 ID?
How to extract all id's from a JSON response using JSON JMESPasth Extractor in Jmeter?
我创建了一个获取请求以获取所有条目,即 997 个条目,并使用 JSON JMESPath Extractor 将条目 ID 存储在列表中。我使用的 JMESPath 表达式是 entries[*].id
并且我使用 ForEach Controller 遍历列表并在下一个 http 请求中使用列表的每个值。问题是我想获取列表中所有 997 个条目的 ID,而不仅仅是 JMESPath 提取器一次给出的 10 个值。我尝试将条目的长度取为 len 并使用 While Controller 循环 100 次,以便我可以在条件 ((${len}+3)/10)
下执行大约 1000 次下一个 http 请求。但是,无论循环执行多少次,从 JMESPath Extractor 获取的列表中的值都保持不变。
我得到的 Json 响应与下图类似。
{
"total": 997,
"entries": [
{
"id": 123389,
"parent-customer": [
{
"id": 123775,
"value": "Donal Thornber"
}
]
}
}
我只保留了一个条目供参考。
如果您需要一次性获取所有 ID - 最简单的方法是 JSON Extractor, it provides ..
deep scan operator,这样像 $..id
这样的表达式将匹配 all id
属性值,无论它们在哪里:
我创建了一个获取请求以获取所有条目,即 997 个条目,并使用 JSON JMESPath Extractor 将条目 ID 存储在列表中。我使用的 JMESPath 表达式是 entries[*].id
并且我使用 ForEach Controller 遍历列表并在下一个 http 请求中使用列表的每个值。问题是我想获取列表中所有 997 个条目的 ID,而不仅仅是 JMESPath 提取器一次给出的 10 个值。我尝试将条目的长度取为 len 并使用 While Controller 循环 100 次,以便我可以在条件 ((${len}+3)/10)
下执行大约 1000 次下一个 http 请求。但是,无论循环执行多少次,从 JMESPath Extractor 获取的列表中的值都保持不变。
我得到的 Json 响应与下图类似。
{
"total": 997,
"entries": [
{
"id": 123389,
"parent-customer": [
{
"id": 123775,
"value": "Donal Thornber"
}
]
}
}
我只保留了一个条目供参考。
如果您需要一次性获取所有 ID - 最简单的方法是 JSON Extractor, it provides ..
deep scan operator,这样像 $..id
这样的表达式将匹配 all id
属性值,无论它们在哪里: