JMeter后置处理器之正则表达式提取器
一、正则表达式提取器
说明:
1)引用名称:下一个请求要引用的参数名称,如填写token,则可用${token}引用它。
2)正则表达式:
():括起来的部分就是要提取的。
.:匹配任何字符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。
3) 模板:用$$引用起来,表示使用提取到的第几个值:
$-1$:表示取所有值
$0$:表示随机取值
$1$:表示取第1个
$2$:表示取第二个
以此类推:$n$:表示取第n个
如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等
4)匹配数字:0随机,1第一个,2第二个,当为负数(-1,-2,-100都可以)时,表示返回全部元素,并且同时会返回一个元素总数的变量token_matchNr
5)缺省值:匹配失败时的默认值。通常用于后续的逻辑判断,建议使用一些特殊含义的,比如0,NULL,ERROR等
二、关于正则表达式的举例说明:
假如想匹配Web页面的如下部分:
"access_token":"33b893b1-8963-444c-b17e-4f042d397ea3","token_type":"bearer","expires_in":86000,"
1. 提取单个字符串:
1) 提取access_token正则表达式:
变量的值被设定为:token_1: 89e4338d-e116-458e-8555-13e901816d8d
在引用的地方可以通过:${token_1}或${token_1_g1}引用
2) 如果要提取token_type正则表达式为:
变量的值被设定为token : bearer
在引用的地方可以通过:${token}或${token_g2}引用
2. 提取多个字符串:
假如想提取access_token,token_type和expires_in。正则表达式如下:
如下变量的值将会被设定:
在需要引用地方可以通过: ${token_g1},{ token_g2},${token_g3},进行使用。