jmeter详解正则提取器(关联)

(1)正则表达式提取器

 

正则提取器界面介绍:

 

 

字段含义

字段 含义
Apply to 应用范围,选默认的 main sample only 就行了
Field to check

可提取的字段

Names of created variables
  • 接收提取值的变量名
  • 必传
Regular Expression

正则表达式

Template 从找到的匹配项中创建字符串的模板
Match No.(0 for Random)
  • 取第几个值
  • 0:随机,默认
  • -1:所有
  • 1:第一个值
  • 非必传
Default Value
  • 缺省值,匹配不到值的时候取该值
  • 非必传
Use empty default value

勾选后,提取不到值时,则返回空字符串

 

Template

  • 如果一条正则表达式有多个提取结果,则提取结果是数组形式
  • 模板 $1$、$2$.....表示把解析到的第几个值赋给变量,从 1 开始匹配
  • $0$ 表示整个表达式匹配的内容(后续具体看栗子)
  • 若只有一个结果,只能是$1$
 

Field to check

属性 含义
Body 响应体,不包括响应头;最常用
Body (unescaped) 响应体,替换了所有HTML转义符;不建议使用
Body as a Document 从不同类型的文件中提取文本;影响性能
Request Headers 请求头
Response Headers 响应头
URL URL
Response Code 响应码
Response Message 响应信息

 

注:正则表达式部分配置说明

 

 说明:匹配数字:-1代代表全部取值

案例:

 

 

 

动态值:name=userSession value=119828.306682868zVzDzzipfcfDzQicpAVVVf>

正则表达式:name=userSession value=(.*)>

注:“name=userSession value=”左边界,“>”右边界

补充:

知识点

  • 提其他接口可以通过  ${var}  这种格式,来获取提取到的值
  •  ( ) 里面写匹配规则,用于解析正则表达式
  •  .*? 表示匹配任意长度的任意字符,这也是最常用的正则表达式
  • 一般 (.+?) 和 (.*?) 能够满足我们 80%的使用场景

 

一般正则表达式都可以写成下面两种

  •  左边界(.+?)右边界 
  •  左边界(.*?)右边界 

 

 

 2)正则表达式获取数组

一个 ( ) 匹配到多个值的场景 ,一般会结合 ForEach控制器(遍历获取),可以循环将提取到的值赋予到 HTTP 请求中

设置正则表达式获取数据:

 

利用 FOrEach控制器遍历获取:

 

 获取值传参:

posted on 2019-04-11 16:13  uestc2007  阅读(166)  评论(0编辑  收藏  举报

导航