Jmeter中获取返回结果中的值

jmeter做测试中,经常会有下一个请求需要用到上一个请求的返回值,那如何取到这个返回值就显得很重要。下面有两个方法,可以按照自己的熟悉程度在测试过程中灵活使用。

1、正则表达式法

      正则表达式是比较直接的获取返回值得方法,只要熟悉正则表达式,就不在话下。

      使用方法是,请求右键---后置处理器---正则表达式提取器,如图

      

      添加正则表达式提取器后,就可以设置正则表达式了,左右边界值设置正确,取到值是没问题的

      

     返回有多组数据的,想取第几个,那么再【匹配数字】中写几。如写2,则去返回第二组的值。【匹配数字】写0的时候,多个数组中的值随机取。

当然,不是所有的人都对正则表达式熟悉,那么在使用中往往会有取不到值得情况,可以试试下面的方法。

2、JSON Extractor 方法(jmeter 3.1)

      测试http接口的时候,返回值通常是json格式的。而json格式是key-value的方式来存,当然我们就可以使用key值来取到后面的value值。

      打开jmeter,新建一个调用接口的http请求,然后添加后置处理器,就可以看到有json extractor这个插件了,如下图:

      

      注意,若是jmeter3.0,可能需要自己下载插件。该插件下载地址为:http://jmeter-plugins.org/wiki/JSONPathExtractor/,下载完之后,把lib文件夹放到jmeter的目录下就可以了。3.0的名称是 json path extractor。

    

      响应数据如下图:

      

 

      需要从响应数据中取到sign,那么分析一下响应数据中的json串,sign在login_info这个列表里面存着,那就要先取到login_info里面的值,再取login_info里面的元素,就是用户信息,再取到sign。如下图:

      

      若响应数据的json串中有多个值,那就要先取到login_info里面的值,再取login_info里面的第一个元素,就是用户信息,再取到sign。JSON  Path expressions的表达式将会变成$.login_info[0].sign

      

      第二种方法更多详细介绍,可参考 http://www.nnzhp.cn/archives/322  Jmeter中处理json

posted @ 2018-11-06 10:37  blueteer  阅读(22507)  评论(0编辑  收藏  举报