1 前言
上篇我们学习了JMeter的安装,如何发起http请求和dubbo请求,那么这篇我们来学习接口管理测试,这就要使用到JMeter提供的JSON提取器和正则表达式提取器了,下面我们来看看是如何使用的吧。
2 JSON提取器
1、添加JSON提取器
在线程组右键 > 添加 > 后置处理器 > JSON提取器
2、JSON提取器参数说明
Names of created variables:这是提取值后存储的变量名,用于后面的引用。
JSON Path expressions:JSON提取值表达式,详细看下方。
Match No.(0 for Random):0随机;n取第几个匹配值;-1匹配所有,后续引用用 变量名_N 取第N个值。
Default Values:匹配失败时候的默认值,可以给error也可以给0,根据情况调整。
3、JSON path表达式
JSON串 []表示对象组成的数组,{}表示对象。
例如要获取id,可写$.data.id,$表示根元素,然后一级级属性往下去找,先找到data,再往下子节点找到id;也可写$..id,直接从根元素去递归查找到id;如果只有1级目录,直接$.msg即可;获取token同理。
可设置查看格式为JSON Path Tester,在下方进行JSON路径表达式测试。
4、JSON path提取多个值
JSON路径表达式,分号隔开。
注意:下面所有参数都得是**;**的格式,否则会出现越界的报错!
3 正则表达式提取器
1、添加正则表达式提取器
在线程组右键 > 添加 > 后置处理器 > 正则表达式提取器
2、正则表达式参数说明
引用名称:这是提取值后存储的变量名,用于后面的引用
正则表达式:使用正则表达式解析响应结果。举例:获取【"PID": "test2656489"】里面的【test2656489】,表达式为:"PID":"(. ?)"。
():括起来的部分就是要提取的
.:匹配任何字符串
:一次或多次
?:不要太贪婪,在找到第一个匹配项后停止
模板:$1$是指取第一个()里面的值,如果在正则表达式中有多个正则表达式,则可以是$2$ $3$ $n$等等,表示解析到的第n个值。
匹配数字(0表示随机):正则表达式匹配数据的结果可以看做一个数组,表示如何取值:0代表随机取值,正数n则表示取第n个值(比如1代表取第一个值),负数则表示提取所有符合条件的值。
缺省值:匹配失败时候的默认值,可以给error也可以给0,根据情况调整。
3、添加Debug Sampler(调试取样器)
在线程组右键 > 添加 > 取样器 > Debug Sampler,通过Debug Sampler来测试是否表达式是否正确。
4 总结
做接口关联测试重要的是梳理出接口之间的调用逻辑,然后提取响应并传输到下一个接口,掌握上面2种提取器的使用,我们就可以愉快的进行接口关联测试了。
下期再见~