通过三个例子记录下来正则表达式提取器的高级用法。一来作为自己的备忘,二来也分享出来,供那些需要用到这些功能的朋友参考。
举例一:单模板单数据
定义说明:
引用名称:image表示变量名,不用多说
正则表达式:这里的一对括号就是一个模板,两对括号就是两个模板,…..
模板:这里要告诉Jmeter你要匹配哪个或哪些模板,$1$表示匹配第一个模板(就是正则表达式里的第一对括号)
匹配数字:告诉Jmeter如果匹配到了多个符合要求的,你要哪一个?这里我填写-1,表示获取全部匹配的数据
- 0表示随机
- -1表示全部
- 1表示第一个
- 2表示第二个
- ……
缺省值:没有匹配到数据时的默认值,不用多说。
好了,正则表达式提取器的定义已经完成,下面看看如果使用:
使用说明:
由于我们在匹配数字里填写了-1,匹配到的是多个值,我们就可以通过${变量名_坐标}的方式获取:
- ${image_1}表示第一个匹配到的
- ${image_2}表示第二个匹配到的
- …..
举例二:多模板单数据
定义说明:
引用名称:label表示变量名,不用多说
正则表达式:这里的一对括号就是一个模板,两对括号就是两个模板,我们使用了两个模板
模板:这里要告诉Jmeter你要匹配哪个或哪些模板,$1$,$2$表示同时匹配第一个和第二个模板的数据
匹配数字:这里填写1,表示每个模板值获取第一个匹配的数据
缺省值:没有匹配到数据时的默认值,不用多说。
好了,正则表达式提取器的定义已经完成,下面看看如果使用:
使用说明:
由于我们使用了两个模板(两对括号),并且告诉Jmeter我们要获取每个模板匹配到的一个数据(匹配数字=1),所以通过下面的方式即可获得:
- ${globalOrderNo_g1}获取第一个模板匹配到的数据
- ${globalOrderNo_g2}获取第二个模板匹配到的数据
举例三:多模板多数据
这个例子是例1和例2的结合,使用多个模板,每个模板匹配多条数据。那么获取的方式是:
- ${list_1_g1}获取第一模板的第一个数据 ${list_1_g2}获取第二模板的第一个数据
- ${list_2_g1}**第一模板的第二个数据 ${list_2_g2}**第二模板的第二个数据