在使用Jmeter进行接口测试、性能测试时,经常会遇到接口之间的关联问题。那么什么是关联呢?简而言之,就是解决接口请求之间的依赖关系。在Jmeter中,解决关联问题则首先会考虑到正则表达式提取器。下面我将对正则表达式提取器的用法进行讲解。
apply to:
Main sample and sub-samples:作用于主请求和子请求
Main sample only:仅作用于主请求
Sub-samples only:仅作用于子请求
JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称);用法可用于提取正则表达式提取器中的值
要检查的响应字段:
主体: 接口响应主体内容,默认选择此项
信息头:响应头的所有内容
Request Headers:请求头的所有内容
URL:是对sample的url进行匹配,也就是查看结果树中请求内容的第一行url,不包含data里的请求参数
响应代码:http响应代码,如200,302,404,501等
响应信息:http响应代码对应的响应信息,例如:HTTP/1.1 200 Ok;HTTP/1.1 404 Not Found
引用名称:
其他地方引用时的变量名称,名称只能是一个,引用方法:${变量名称}
正则表达式:
数据提取器,一般简单的通用语法就是:左边界(.+?)右边界,左右边界就是为了能准确定位到想匹配的内容。
正则表达式,必须要说一下匹配的两种模式:贪婪和非贪婪,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配;在这里加上?表示非贪婪。另外.+?与.*?
略有区别
.+?
表示匹配任意字符一个或则多个
.*?
表示匹配任意字符0个或多个
为了提高成功率,可以把查看结果树切换到regexp tester模式,对正则表达式进行测试。
模板:
对应正则表达式提取器类型,样式为:$n$
若模板为:n为0,则为整个表达式匹配到的内容,就是包括小括号内跟小括号外的内容,
若模板为:n为1,则对应正则表达式中的第一个(.+?)所匹配的内容
若模板为:n为2,则对应正则表达式中的第二个(.+?)所匹配的内容
若模板为:$1$$2$,则把2个(.+?)所匹配的内容拼接起来
模板中也可以填写常量,即把常量赋值给引用变量
匹配数字:
正则表达式匹配数据的最终结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。
当为 0 时,随机返回匹配的数据。
当为 1 时,表示返回匹配结果数组的第一个元素
当为负数(-1,-2,-100都可以)时,表示返回全部元素,并且同时会返回一个元素总数的变量
缺省值:
匹配失败时的默认值,可以不填写。通常用于后续的逻辑判断,建议使用一些特殊含义的,比如0,NULL,ERROR等。
Jmeter后置处理器之正则表达式提取器
最新推荐文章于 2022-09-20 15:25:24 发布