Jmeter正则表达式提取器应用场景:接口测试业务,我们经常需要将一个请求的返回值,作为下一个请求的参数,从而实现参数的动态关联。例如订单的ID,各种业务编号等。
继续以“Jmeter快速创建接口测试脚本”博客中的脚本为例,提取响应结果中的数据,作为下一请求的参数。
添加“正则表达式提取器”
在需要提取正则的请求上面,右击“添加”\“后置处理器”\“正则表达式提取器
我们首先看一下请求的返回信息:
如何提到一个值
例如提取一个“wind”的值,选择一段数据将要提取的值换成(.+?),注意一定要是英文字符。
在“正则表达式提取器”页面填写如下内容。
引用名称:变量名将提取后的值赋给他,后续请求中使用该变量名进行传参
正则表达式:wind":"(.+?)",“week”:
():表过要提取的部分
.:匹配任何字符串。
+:一次或多次
?:找到第一个匹配项后停止
模板:模板即提取的值的序号(本例就一个,所以填
1
1
1)
匹配数字:0代表随机,1表示匹配第一个值,如果想知道第三个“wind”,输3即可。本例获取第一个1,填1。
缺省值:未获取值的时候以缺省值为值。
添加“调试取样器”和“察看结果树”,执行脚本查看结果。
提取多个值合为一个值
将返回值 中今天的天气数据合为一值
在正则提取器中填写如下内容
正则表达式:将需要提取的部分都替换成(.+?)
模板:
1
1
1
2
2
2
3
3
3
4
4
4
5
5
5(此处一共提取5个值)
执行查看结果。
传参
将正则表达提取的数据作为参数传给请求。添加新请求,值为“正值表达式提取器”中的引用名称,具体如下
发起请求查看结果。
使用fiddler进行解码(因为有中文,在发送请求时,已经转换成ASCII,所以不可识别,需要进行转码),查看请求的具体值。
已经将正则提取的数据作为请求参数。