Jmeter后置处理器-正则表达式提取器

在实际测试中,我们可能会对一个接口的返回结果进行提取,校验其是否正确或者给另外的接口使用,通常会使用正则表达式对结果进行提取或者使用xpath提取。在这里主要介绍正则表达式提取器的使用。

正则表达式在众多语言中均有涉及,且语法大同小异,这里并不打算做深入介绍,本人也是略懂皮毛而已,需要在这块再下功夫。这里对Jmeter中正则表达式的使用也比较简单。

1. 在Jmeter中建立脚本,脚本如下

Jmeter后置处理器-正则表达式提取器

其中HTTP-请求-login的结果将要给HTTP请求-roleADD使用,find请求返回消息如下:

Jmeter后置处理器-正则表达式提取器

其中hlx是需要获取传给下个接口的数据。对返回数据进行提取,在find请求下加了一个正则表达式提取器:添加-后置处理器-正则表达式提取器

Jmeter后置处理器-正则表达式提取器

2. 设置正则表达式的参数:

Jmeter后置处理器-正则表达式提取器

要检查的响应字段:这里根据需要进行选择

引用名称:即是下一个接口要使用的变量名称,也是提取内容存放的变量

正则表达式:这里就是需要匹配的内容,使用()括起来,一个()与下面的模板对应;括号中内容是正则表达式的内容

                    .表示匹配任意字符

                    +表示匹配一次或者多次

                    ?表示0或1次

模板:模板使用$n$表示,此处,上面只有一个(),所以这里使用$1$,如果上面有两对(),那么模板为$1$$2$,以此类推

匹配数字:-1表示匹配到的全部,1表示匹配到的第一个,2表示匹配到的第二个......0表示随机取一个

缺省值:这里可以自己给一个,如果没有那么使用的是null

3. 添加一个后置处理器:Debug PostProcessor查看详细日志(如上图)

4. 在roleADD接口中对提取的变量引用:

Jmeter后置处理器-正则表达式提取器

可以看到这里引用的是${user_1}而不是上面的设置的${user},刚开始的时候这里引用也是${user},但是测试接口并不对,后来认真的看了一下正则表达式提取的值,才明白了。下面附图正则表达式提取的详细结果:

Jmeter后置处理器-正则表达式提取器

在上图中可以看到user为前缀的变量很多,通过观察我们就可以得知自己需要使用的是哪一个值(这块具体的细节笔者还在理解中,这里不做详细解释,避免误导他人)

5. 检查roleADD接口是否取值正确:

Jmeter后置处理器-正则表达式提取器

取值正确!

以上就是使用正则表达提取器提取接口返回结果的主要过程