目录
引言
正则表达式提取器也是Jmeter后置处理器中经常用到的一个,通过正则表达式的方式来提取取样器的请求结果。与JSON提取器同为参数提取功能,不同的是JSON提取器只能提取响应内容,而正则表示式提取器可以提取响应头、请求头和响应内容的值。
提取器介绍
1.添加方法
2.参数说明
1)名称:显示在脚本中提取器的名字
2)注释:添加的备注信息
3)Apply to:用于可以生成子采样器的采样器,供几种类型可选,选择默认的Main sample only
- Main sample and sub-samples——适用于主采样和子采样
- Main sample only——仅适用于主采样
- Sub-samples only——仅适用于子采样
- JMeter Variable Name to use——提取适用于命名变量的内容
4)要检查的响应字段
- 主体——响应体,不包含响应头,最常用
- Body(unescaped)——响应体,替换了所有HTML转义符,不建议使用
- Body as a Document——从不同类型的文件中提取文本,会影响性能
- 信息头——响应头
- Request Headers——请求头
- URL——URL
- 响应代码——响应码(Response code)
- 响应信息——响应信息(Response message)
5)引用名称:接收提取值的变量名,必填项
6)正则表达式:填写提取数值的正则表达式
7)模板:从找到的匹配项中创建字符串的模板
- 若一条正则表达式有多个提取结果,则提取结果是数组形式
- 模板1、2……表示把解析到的第几个值赋值给变量,从1开始匹配
- 0表示整个表示式匹配的内容
- 如果只有一个结果,只能是1
8)匹配数字(0代表随机):取匹配到的第几个值(0:随机;-1:匹配所有值;1:匹配第一个值),不是必填项,不填则默认是0随机取值
9)缺省值:表示匹配不到值的时候的缺省值,非必填
10)使用空默认值:如果勾选此项,当提取不到值时,会返回空字符串
3.参数引用
提取到的参数,被引用时使用${}格式,引用名称填写在{}中间
接口脚本调试时,可添加调试取样器来查看接口参数是否提取成功
常用正则表达式操作符
序号 | 操作符 | 说明 |
1 | . | 匹配任何单个字符(除了换行符) |
2 | ? | 前面紧挨的元素,最多匹配一次 |
3 | * | 前面紧挨的元素,匹配0次或多次 |
4 | + | 前面紧挨的元素,匹配1次或多次 |
5 | {N} | 前面紧挨的元素,正好匹配N次 |
6 | {N,} | 前面紧挨的元素,至少匹配N次 |
7 | {N,M} | 前面紧挨的元素,至少匹配N次,至多匹配M次 |
8 | ^ | 匹配行开始的空字符串 |
9 | $ | 匹配行末的空字符串 |
10 | \b | 匹配词两边的空字符串 |
11 | \w | 匹配字母、数字、下划线或者汉字 |
12 | \< | 匹配任何词开头的空字符串 |
13 | \> | 匹配任何词结尾的空字符串 |
(.+?)和(.*?)的区别
(.+?) 匹配一个及以上
(.*?) 匹配0个及以上,需要取的值是空值时可以取到