Jmeter 在数组中提取 JSON 格式
Jmeter extracting JSON format inside an Array
我想寻求帮助,如何提取此示例响应中的价值 USDT。非常感谢您的回复。目前这就是我使用 JSON 路径测试器 $..currency[0] 提取我的 USDT 的方式。我想让它变得灵活而不使用数字而不是包含。有没有办法模拟这个?提前谢谢你
{
"uid": "123-321",
"period": "25_minutes",
"level": "symbol",
"values": [
1.3211,
1.2212
],
"rank_by": "volume",
"currency": [
"USDT",
"SGD"
],
"measurements": [
0.42,
0.15
],
"num_instruments": 20,
"asset_classes": [
"All"
],
"version": "1.0.0",
"timestamp": "2022-05-30T03:53:09"
}
我提取的示例响应:
没有关于 JSON 提取器的线索,但可以通过以下方法完成,
- 将 JSR223 后处理器添加为 returns 请求的子项
以上 JSON
- 将以下代码放入“脚本”区域
脚本块:
def jsonResponse = new groovy.json.JsonSlurper().parse(prev.getResponseData())
jsonResponse.each { getCurrencyArray ->
def currencyExpected = "USDT"
if(getCurrencyArray.getKey() == "currency"){
getCurrencyArray.getValue().each { curr ->
if (curr.equalsIgnoreCase("USDT")) {
vars.put("Cur", currencyExpected )
log.info("Cur = " + currencyExpected)
}
}
}
}
使用 USDT:
使用多个 USDT:
没有USDT:
如果您不确定响应中的货币顺序,您可以考虑
- 切换到 JSON JMESPath Extractor
- Sorting 数组按字母顺序排列
- Slicing 到 return 的数组仅最后一次匹配(
USDT
将“低于”SGD
)
您可以使用 jsonpath-expression
检查数组中是否存在该值
$..currency[?(@ == "USDT")]
我想寻求帮助,如何提取此示例响应中的价值 USDT。非常感谢您的回复。目前这就是我使用 JSON 路径测试器 $..currency[0] 提取我的 USDT 的方式。我想让它变得灵活而不使用数字而不是包含。有没有办法模拟这个?提前谢谢你
{
"uid": "123-321",
"period": "25_minutes",
"level": "symbol",
"values": [
1.3211,
1.2212
],
"rank_by": "volume",
"currency": [
"USDT",
"SGD"
],
"measurements": [
0.42,
0.15
],
"num_instruments": 20,
"asset_classes": [
"All"
],
"version": "1.0.0",
"timestamp": "2022-05-30T03:53:09"
}
我提取的示例响应:
没有关于 JSON 提取器的线索,但可以通过以下方法完成,
- 将 JSR223 后处理器添加为 returns 请求的子项 以上 JSON
- 将以下代码放入“脚本”区域
脚本块:
def jsonResponse = new groovy.json.JsonSlurper().parse(prev.getResponseData())
jsonResponse.each { getCurrencyArray ->
def currencyExpected = "USDT"
if(getCurrencyArray.getKey() == "currency"){
getCurrencyArray.getValue().each { curr ->
if (curr.equalsIgnoreCase("USDT")) {
vars.put("Cur", currencyExpected )
log.info("Cur = " + currencyExpected)
}
}
}
}
使用 USDT:
使用多个 USDT:
没有USDT:
如果您不确定响应中的货币顺序,您可以考虑
- 切换到 JSON JMESPath Extractor
- Sorting 数组按字母顺序排列
- Slicing 到 return 的数组仅最后一次匹配(
USDT
将“低于”SGD
)
您可以使用 jsonpath-expression
检查数组中是否存在该值
$..currency[?(@ == "USDT")]