为了账号安全,请及时绑定邮箱和手机立即绑定

003-JMeter-JSON提取器-关联

2019.11.15 18:15 5415浏览

关联(当上文有一些变量的值在下文当中被使用)

前言:下文中会多次使用到【BeanShell Sampler】和【Debug Sampler】,前者其实是起到一个mock server的作用,返回自定义的响应结果,后者能够输出JMeter的变量情况。

1.png

参数详解:
1-:Names of created variables:匹配到的数据存储的变量名称,后续可以使用${variable name}引用它
2-:JSON Path Expressions:JSON路径表达式
3-:Match No. (0 for Random):如果匹配到多个结果,选择使用哪个。0代表随机,-1代表全部,x代表第x个
4-:Compute concatenation var:勾选此项后,如果匹配到多个结果,JMeter会使用","将他们连接起来,存储在的变量中
5-:Default Values:默认值,如果JSON 路径表达式未能匹配到值,将使用该默认值

构建脚本结果如下:
【BeanShell Sampler】作为mock server返回下面的数据:

{
"status":200,
"data":[{"id":101,"name":"张无忌"},{"id":102,"name":"周芷若"}]
}

在【BeanShell Sampler】下面添加后置处理器-[JSON Extractor]
内容可参照如下:

2.png

注意:使用beanshell写脚本的时候,如果参数为json格式的,通常会使用“”,当参数里面有带有双引号的数据,此时如果直接引用就会报错,需要在参数中的“前面加上反斜杠 \ 进行转义

在【BeanShell Sampler】下面添加【后置处理器】–【JSON Extractor】

3.png

详解:
【JSON Path expression】首先"$.“这部分是固定写法,“data"表示在JSON串以"data"为key获取value,也就是”[{“id”:101,“name”:“张无忌”},{“id”:102,“name”:“周芷若”}]”。
这段字符串是JSONArray(JSON数组)格式,里面有两个JSONObject(JSON对象),第二个JSONObject是我们需要的,因此再按索引值"1"去获取,也就是"data"后面写"[1]",得到了"{“id”:102,“name”:“周芷若”}"这个JSONObject,接下来再根据"name"这个key去获取相应的值,就得到"周芷若"了。

接下来,添加查看结果树,然后添加调试取样器,运行脚本,在结果树中查看【Debug Sampler】的响应数据:

4.png

此时,其他地方想使用这个值的时候,就可以“${name}”来进行引用.

点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

相关文章推荐

正在加载中
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消