一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“深入分析正则表达式提取器(二)”。
正则表达式提取器中的Match No
当正则表达式的捕获组匹配到多个满足条件的字符串时,会按照捕获的先后顺序依次对其进行编号:1,2,3,...,n可以使用编号来选择需要的字符串,1表示第一个匹配的字符串,2表示第二个匹配的字符串,...,依次类推.
可以根据实际需要从中选择某个匹配项,所有匹配项或随机选择某个匹配项.
1、选择某个匹配项
设置"Match No."为i(i=1,2,3,...,n),i不能超过匹配的最大次数.
比如,设置为2,表示取捕获组获取的第二个匹配项.
为了方便引用捕获的内容,JMeter提供了丰富的变量,可以根据实际情况选择所需的变量.
假设:
"Name of created variable"设置为refName
"Match No."设置为i
捕获组的个数为m
各变量的具体含义如下:
refName: 按照"Template"设置保存的模板值;
refName_g: 捕获组的个数
refName_g0: 正则表达式的值
refName_gN: 捕获组N的第i个匹配项(N=1,2,3,...,m)
下面是一个例子:
2、选择所有匹配项
设置"Match No."为-I(I=1,2,3,...).
JMeter只要检测到是负整数时则输出所有匹配项.
假设:
"Name of created variable"设置为refName
"Match No."设置为-I
捕获组的个数为m
捕获组匹配项的个数为n
各变量的具体含义如下:
refName: 在此种情况下始终显示为默认值(Default Value设置的值)
refName_i: 捕获组第i个匹配项对应的模板值(i=1,2,3,...,n)
refName_i_g: 捕获组第i个匹配项个数(i=1,2,3,...,n)
refName_i_g0: 捕获组取第i个匹配项时正则表达式的值(i=1,2,3,...,n)
refName_i_gj: 捕获组j(j=1,2,3,...,m)的第i(i=1,2,3,...,n)个匹配项
下面是一个例子:
3、随机选择某个匹配项
设置"Match No."为0.
此种情况下,各变量的具体含义与"14.4.1 选择某个匹配项"相同,不再说明.