jmeter详解正则提取器(关联)
(1)正则表达式提取器

正则提取器界面介绍:

字段含义
| 字段 | 含义 |
| Apply to | 应用范围,选默认的 main sample only 就行了 |
| Field to check |
可提取的字段 |
| Names of created variables |
|
| Regular Expression |
正则表达式 |
| Template | 从找到的匹配项中创建字符串的模板 |
| Match No.(0 for Random) |
|
| 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控制器遍历获取:

获取值传参:

浙公网安备 33010602011771号