jmeter json提取器变量

时间:2018-10-24 03:33:34

标签: json jmeter

我正在尝试根据上一步设置的变量(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”

1 个答案:

答案 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窗口中

JMeter Log Viewer JSON Extractor

另一个潜在的问题是JSON提取器scope错误,您应将其作为返回上述JSON的请求的子代放置,否则id变量可能会被覆盖由后续的采样器

您可以使用Debug SamplerView Results Tree侦听器组合来检查${idSearch}变量值:

enter image description here