在实际测试中,我们可能会对一个接口的返回结果进行提取,校验其是否正确或者给另外的接口使用,通常会使用正则表达式对结果进行提取或者使用xpath提取。在这里主要介绍正则表达式提取器的使用。
正则表达式在众多语言中均有涉及,且语法大同小异,这里并不打算做深入介绍,本人也是略懂皮毛而已,需要在这块再下功夫。这里对Jmeter中正则表达式的使用也比较简单。
1. 在Jmeter中建立脚本,脚本如下
其中HTTP-请求-login的结果将要给HTTP请求-roleADD使用,find请求返回消息如下:
其中hlx是需要获取传给下个接口的数据。对返回数据进行提取,在find请求下加了一个正则表达式提取器:添加-后置处理器-正则表达式提取器
2. 设置正则表达式的参数:
要检查的响应字段:这里根据需要进行选择
引用名称:即是下一个接口要使用的变量名称,也是提取内容存放的变量
正则表达式:这里就是需要匹配的内容,使用()括起来,一个()与下面的模板对应;括号中内容是正则表达式的内容
.表示匹配任意字符
+表示匹配一次或者多次
?表示0或1次
模板:模板使用$n$表示,此处,上面只有一个(),所以这里使用$1$,如果上面有两对(),那么模板为$1$$2$,以此类推
匹配数字:-1表示匹配到的全部,1表示匹配到的第一个,2表示匹配到的第二个......0表示随机取一个
缺省值:这里可以自己给一个,如果没有那么使用的是null
3. 添加一个后置处理器:Debug PostProcessor查看详细日志(如上图)
4. 在roleADD接口中对提取的变量引用:
可以看到这里引用的是${user_1}而不是上面的设置的${user},刚开始的时候这里引用也是${user},但是测试接口并不对,后来认真的看了一下正则表达式提取的值,才明白了。下面附图正则表达式提取的详细结果:
在上图中可以看到user为前缀的变量很多,通过观察我们就可以得知自己需要使用的是哪一个值(这块具体的细节笔者还在理解中,这里不做详细解释,避免误导他人)
5. 检查roleADD接口是否取值正确:
取值正确!
以上就是使用正则表达提取器提取接口返回结果的主要过程