关联(当上文有一些变量的值在下文当中被使用)
前言:下文中会多次使用到【BeanShell Sampler】和【Debug Sampler】,前者其实是起到一个mock server的作用,返回自定义的响应结果,后者能够输出JMeter的变量情况。
参数详解:
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]
内容可参照如下:
注意:使用beanshell写脚本的时候,如果参数为json格式的,通常会使用“”,当参数里面有带有双引号的数据,此时如果直接引用就会报错,需要在参数中的“前面加上反斜杠 \ 进行转义
在【BeanShell Sampler】下面添加【后置处理器】–【JSON Extractor】
详解:
【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】的响应数据:
此时,其他地方想使用这个值的时候,就可以“${name}”来进行引用.
共同学习,写下你的评论
评论加载中...
作者其他优质文章