JMeter正则表达式提取器
正则表达式提取器控制面板:
位置1:名称及注释
位置2:正则表达式提取内容的范围。(关于各字段的详细说明请查询协议的相关说明)
位置3:正则表达式提取的相关设置
-引用名称:自己定义的变量名称,后续请求将要引用到的变量名,如填写的是:user_id,后面的引用方式是${user_id}
-正则表达式:提取内容的正则表达式,相当于lr中的关联函数
-() 小括号括起来的部分就是要提取的内容,对于自己要提取的内容要用小括号括起来
-. 点号表示匹配任何字符串
- + 加号表示匹配一次或多次
- ? 表示 非贪婪 匹配第一个匹配项后停止
模板:$$引用起来,如果在正则表达式中有多个正则表达式(多个小括号括起来的东东),则可以是$2$,$3$等等,表示解析到的第几个值给user_id。例如 $1$表示匹配到的第一个值。
匹配数字:0代表随机取值,-1代表所有值,此时结果是一个数组,其余正整数代表第几个匹配的内容提取出来。如果匹配数字选择的是-1,还可以通过${user_id_1}的方式来取第一个匹配的内容,${user_id_2}来取第2个匹配的内容。
缺省值:正则表达式匹配失败时,取的值。
问题1:(.+?) 与 (.*?)区别
(.+?) 匹配一个以上
(.*?)匹配0个及以上,要取的值是空值的时候可以取到。
比如: labelld:""; 要取labelled的值,使用(.+?)匹配不到值,使用(.*?)就可以取到值 空;对应的写法为label:"(.*?)";
问题2:一个表达式匹配多个参数
调用方法:
${list_g1} ${list_g2}
${list_ALL} 获取全部的值