JMeter正则表达式提取器说明
正则表达式提取器(Regular Expression Extractor)是 JMete r的后置处理器的元件,可以帮助我们从服务器响应数据中查找到我们需要的数据。
正则表达式提取器在使用时,可以使用查看结果树和 Debug Sampler 配合调试。
参数说明
名称: 可以随意设置,最好有业务意义
注释: 可以随意设置,可以为空
Apply to: 应用范围,四个选项
Main sample and sub-samples:匹配范围包括当前父取样器并覆盖至子取样器
Main sample only:匹配范围是当前的父取样器
Sub-sample only:仅匹配子取样器
JMeter Variable:支持对 Jmeter 变量值进行匹配
要检查的响应字段: 针对响应字段的不同部分进行匹配,共七个选项
主体:响应数据的主体部分,排除 Header 部分;Http 协议返回请求的主体部分就是 Body
Body(unescaped):针对替换了转义码的 Body 部分
Body as a Document:返回内容作为一个文档进行匹配
信息头:只匹配信息头部分的内容
URL:只匹配 URL 链接
响应代码:匹配响应代码,比如 HTTP 协议返回码 200 代表成功
响应信息:匹配响应信息,比如处理成功返回“成功”字样,或者“OK”字样
引用名称: 匹配出来的信息通过此名称进行访问,${引用名称}
正则表达式: 正则表达式提起器使用此串进行信息匹配
模板: 正则表达式可以设置多个模板进行匹配,在此指定运用哪个模板,$1$ 指第一个模板,$2$ 指定第二个模板,以此类推,$0$ 表示全文匹配
匹配数字: 在匹配过程中往往会出现多个值匹配的青睐,如果匹配数字为0,则代表随机取匹配值;不同模板可能会匹配一组值,那么可以用匹配数字来确定取这一组值中的哪一个;负数取所有值,可以与For Each Controller 一起使用来遍历
默认值: 如果没有匹配到可以指定一个默认值
使用举例
单模块举例
有这样一个 Http 请求的返回值是 “confirm”:1,“key”:“860d23285ee368d09925a4e98db55fb2” ,现在需要匹配 860d23285ee368d09925a4e98db55fb2 这个值,我们可以用这样一个正则表达式:“key”:"(.*)",要匹配到这个值模板就是 $1$ ,因此正则表达式提取器的配置如下:
匹配结果:
注: 从匹配结果看,如果要将提取的值参数化到下一个请求,我们要用 ${key} 或 ${key_g1}来引用
多模块举例
有这样一个 Java 请求的返回值是 “token_type”:“bearer”,“expires_in”:2592000,“mobile”,现在要匹配 bearer 和 2592000 两个值,我们可以用这样的表达式: “token_type”:"(.*)",“expires_in”?.*),“mobile”,要匹配这两个值的模板就是 $1$ 和 $2$ ,因此正则表达式提取器的配置如下:
匹配结果:
注:
从匹配结果看,要将提取的值参数化到下一个请求:
参数化第一个模板值要用 ${result_g1} 来引用
参数化第一个模板值要用 ${result_g2} 来引用