Jmeter之正则表达式与边界提取器

当我们使用Jmeter做一些连贯性的接口调用时,常常需要使用前面接口响应的信息来作为下一接口的入参,而Jmeter便提供了针对该操作的后置处理器配件,其中较为常见的便是正则表达式处理器和更简单易用的边界提取器。

正则表达式提取器

该提取器是使用正则表达式来对信息进行摘取,比较常用的命令就是(.*?)的组合方式,可对目标信息被()覆盖的部分进行获取
Jmeter之正则表达式与边界提取器

参数 含义
引用名称 提取结果的引用名称,使用${name}方法进行调用
正则表达式 使用的正则表达式,例:提取helloworld中的ow,正则表达式为hell(.*?)orld
模板 $ n $表示使用提取到的第n个值,-1为所有值,0为随机取值
匹配数字 0 代表随机取值,1 代表全部取值
缺省值 若未捕获到信息,则使用该缺省值替代

<a href=http://www.hao123.com name=tj_trhao123 class=mnav>hao123</a>

以上方信息为例,我们的目标片段为“tj_trhao123”,这时候我们的正则表达式为"name=(.*?)class=mnav",这样我们就可以捕获到所有符合该表达式的目标片段了。

正则表达式相关信息可参考
https://www.runoob.com/regexp/regexp-metachar.html

边界提取器

这是一款极其简单但却很实用的后置处理器,相比正则表达式的繁多命令方法,这个提取器只需要知道你目标片段前后的信息就可以提取到目标片段了
Jmeter之正则表达式与边界提取器

参数 含义
引用名称 提取结果的引用名称,使用${name}方法进行调用
左边界 左侧足以凸显出目标片段的内容
右边界 右侧足以凸显出目标片段的内容
匹配数字 0 代表随机取值,1 代表全部取值
缺省值 若未捕获到信息,则使用该缺省值替代

<a href=http://www.hao123.com name=tj_trhao123 class=mnav>hao123</a>

以上方信息为例,我们的目标片段为“tj_trhao123”,这时候我们的左边界可以为“name=”,右边界为“class=mnav”,这样我们就可以捕获到目标片段了。当我们信息源内存在较多重复信息时,要注意使用更多的左右边界信息,不然容易定位失败。