jmeter自带后置处理器:正则表达式提取器,可以用来提取接口响应里的信息,给予后续接口传参用。
正则表达式语法:
格式 | 含义 |
---|---|
\d | 数字 |
\w | 数字或者字母 |
. | 可以匹配任意字符 |
星号* | 表示任意个字符 |
+ | 表示至少一个字符 |
? | 表示0或者1个字符 |
{n} | 表示n个字符 |
{n,m} | 表示n-m个字符 |
\s | 表示空白符 |
括号[] | 表示范围,比如: [0-9a-zA-Z\_] 可以匹配一个数字、字母或者下划线 |
[0-9a-zA-Z\_] | 可以匹配一个数字、字母或者下划线 |
^ | 表示行的开头,^\d表示必须以数字开头 |
$ | 表示行的结束,\d$表示必须以数字结束 |
A|B | 可以匹配A或B,如(P|p)ython可以匹配'Python'或者'python |
() | 表示的就是要提取的分组(Group),如 m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345') |
jmeter 中正则表达式提取界面:
各参数值的含义 :
参数 | 释义 |
---|---|
引用名称 | 在HTTP等请求中,引用此数据,需要用到的名称 |
正则表达式 | 用于将需要的数据提取出来 |
模板 | 表示正则表达式中的第几个提取值: $-1$(负数):表示取所有值 $0$:表示随机取值 $1$:表示取第1个 $2$:表示取第二个 $1$$2$: 表示第一个和第二个拼接起来 以此类推:$n$:表示取第n个 |
匹配数字(0代表随机) | 0 代表随机取值,1 代表取第1个值,-1(负数)表示取全部值 |
缺省值 | 默认值, 即没有匹配到值时的默认值 |
实际操作:
第一种设置方式:
此时, ${tagId}
表示取的是第一列的值, 第一列是由模板上的$1$
确定的。
第二种设置方式:
${tagId_1}
取的是第一个匹配值的第一列第一行的数据, ${tagId_1_g0}
取的都是第一个匹配值的第一列全部的数据 ,
${tagId_2}
取的是第一个匹配值的第一列第一行的数据, ${tagId_3}
取的是第三个匹配值的第一列第一行的数据,
第三种设置方式:
${tagId_1_g0}
取的都是第一个匹配值的第一列全部的数据 ,${tagId_1_g1}
取的是第一个匹配值的第一列第一行的数据,
${tagId_2_g1}
取的是第二个匹配值的第一列第一行的数据。
参考文章:https://blog.csdn.net/darkmanno5/article/details/80428275