JMeter正则表达式实例

1、正则表达式提取器中名词解释:

            注释:可以随便自己写

             Apply to:默认即可

             要检查的字段:一般情况下选择主体,即服务器返回页面的主体信息。        

      引用名称:其他地方引用提取值的变量名称,如填写的是:id,具体的引用方式是${id}

      正则表达式:提取内容的正则表达式()表示提取,对于你要提取的内容需要用小括号括起来。.代表任何字符。+代表出现任意次。?代表不要太贪婪,在找到第一个匹配项后停止。

      模板:$$引用起来,如果在正则表达式中有多个正则表达式(多个括号括起来的东东),则可以是$2$$3$等等,表示解析到的第几个值给id

      匹配数字(0代表随机)0代表随机,-1代表所有,其余正整数代表将在已提取的内容中,第几个匹配的内容提取出来。

      缺省值:正则匹配失败即参数没有取到值时,默认给它取的值。

1)提取单个字符串

假设测试人员期望匹配Web页面的如下部分:name="file" value="readme.txt">并提取readme.txt。
一个符合要求的正则表达式:
1. name="file" value="(.+?)"> 。 
上面用到的特殊字符包括如下几个。
( 和 ):封装了待返回的匹配字符串。
.:匹配任何字符。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止。
如果没有?,在找到第一个">后,会继续寻找,直到最后一个">,这么做很可能不是测试人员期望的。
尽管上面的表达式可以达到目的,但是使用如下表达式更有效率:name="file" value="([^"]+)">,其中[^"]-意味着匹配任何东西(除了")。在这种情况下,匹配引擎在找到第一个右侧"后,就会停止搜索。而上面例子中的匹配引擎会去寻找">。
2)提取多个字符串
假设测试人员期望匹配Web页面的如下部分:name="file" value="readme.txt">,并提取file.name和readme.txt。
一个符合要求的正则表达式:
1. name="([^"]+)" value="([^"]+)" 
这会创建两个组合,并可用于JMeter正则表达式模板,形如$1$ 和$2$。

JMeter正则表达式提取器会将组合的值放在指定变量中,如图11-2所示。


例如,
引用名称:MYREF。
正则表达式:name="(.+?)" value="(.+?)"。
模板:$1$$2$。
不要用/ /封装正则表达式。
如下变量的值将会被设定。
MYREF: file.namereadme.txt。
MYREF_g0: name="file.name" value="readme.txt"。
MYREF_g1: file.name。
MYREF_g2: readme.txt。
这些变量后续可以在JMeter测试计划中引用,形如${MYREF}、${MYREF_g1}等。
3.关键字
正则表达式使用特定字符作为关键字,这些字符对正则表达式引擎有特殊意义。在字符串中使用这些字符必须进行转义(使用反斜杠"\"),目的是将它们当成原始字符,而非正则表达式的关键字。下面是关键字和它们的含义。
( ):组合。
[ ]:字符集合。
{ }:重复。
+ ?:重复。
.:任意匹配字符。
\:转义字符。
| -:选择符。
^ $:字符串或行的起始和结尾。
注意,ORO不支持\Q和\E关键字。
4.修改器(Modifier)
理论上修改器可以被放置在正则表达式的任何地方,并被放置的位置开始向后生效。(ORO存在一个BUG,修改器不能放在正则表达式的末尾。尽管修改器在这里不生效)。
单行(?s)和多行(?m)修改器通常都被放在正则表达式的开头。
忽略(?i)修改器可以被用来仅仅影响正则表达式的某一部分,例如:
1. Match ExAct case or (?i)ArBiTrARY(?-i) case 
由于单行和多行修改器的设置不同,范本匹配的表现也略有不同。请注意,单行和多行操作符之间没有任何关联;它们可以被单独指定。
1)单行模式
单行模式只影响关键字符"."。默认情况下,"."可以匹配任何字符(除了换行)。在单行模式下,"."还匹配换行。
2)多行模式
多行模式只影响关键字符"^"和"$"。默认情况下,"^"和"$"仅仅匹配字符串的开始和结尾。而在多行模式下,"^"和"$"匹配每一行的开始和结尾。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值