我正在尝试根据上一步设置的变量(idSearch)查找json值。我尝试使用“ json提取器”并设置以下参数:
- Names of created variable: nameValue
- JSON Path expressions: $.[?(@.id_number == ${idSearch})].name
它似乎不起作用。
json样本:
[{"id_number":12,"name":"John"},
{"id_number":13,"name":"Ted"},
{"id_number":14,"name":"Mary"}]
所需结果: -如果我的json记录中有任何一个与我的变量($ idSearch等于12)匹配,则将nameValue设置为'John' 要么 -如果我的json记录中有任何一个与我的变量($ idSearch等于13)匹配,则将nameValue设置为“ Ted”
答案 0 :(得分:0)
您的方法应该可以正常工作,我唯一想到的可能是您的${idSearch}
变量未定义或具有与JSON输入不匹配的值
尝试查看 jmeter.log 文件并查找类似的内容:
Error processing JSON content in JSON Extractor
如果该行存在-变量或JSON Extractor配置存在问题。
您还可以通过在 log4j2.xml 文件中添加下一行来提高JSON提取器的JMeter日志详细程度:
<Logger name="org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor" level="debug" />
完成后,您应该在 jmeter.log 文件或Log Viewer窗口中
另一个潜在的问题是JSON提取器scope错误,您应将其作为返回上述JSON的请求的子代放置,否则id
变量可能会被覆盖由后续的采样器
您可以使用Debug Sampler和View Results Tree侦听器组合来检查${idSearch}
变量值: