Regular Expression Extractor (转)

Regular Expression Extractor是JMeter中的另一个概念—Post-processor,它的作用是得到HTTP响应后,对结果(比如一个html标签页面的内容或json输出数据等)进行处理,通过regular expression抽取字符值,存成一个变量给后面的Sampler使用。

 

例如在Click Table(afterSelectTable_ajax.action)这个Sampler执行完一次HTTP Request之后得到如下的HTTP Response(一个json格式的输出):

 {"free":false,"hasError":false,"singleEntry":true,"table_nr":"05","tableid":5,"tableuseid":130}

 现在要得到tableuseid的值130,可以用这样一个regular expression:

^.+?"tableuseid":([^} ,]+).*$

上面括号中的内容就是提取130的值,用括号的作用是可以把该值作为一个组,并存成一个变量以便在下一个Sampler--CreateOrder(doOpenGuestTable_ajax.action)中使用。

注:可以用下面的perl命令行交互式测试正则表达式:
perl -n -e '/^.+?"tableuseid":([^} ,]+).*$/ && print "$1\n"' 

 

 

1. 在Regular Expression Extractor会看到Template的值是$1$,这个值是什么意思呢? 
   $1$是指取第一个()里面的值。如果Regular Expression的数值有多个,用这种方法可以避免不必要的麻烦。 

2. Regular Expression中的(.*)是什么意思? 
   那是一个正则表达式(regular expression)。’.’等同于sql语言中的’?’,表示可有可无。’*’表示0个或多个。’()’表示需要取值。(.*)表达任意长度的字符串。 

3. 在读取Regular Expression时要注意什么? 
   一定要保证所取数值的绝对唯一性。 

 

 

Suppose you want to match the following portion of a web-page: 
name="file" value="readme.txt"> 
and you want to extract readme.txt. 
A suitable regular expression would be: 
name="file" value="(.+?)">

The special characters above are:

    • ( and ) - these enclose the portion of the match string to be returned
    • . - match any character
    • + - one or more times
    • ? - don't be greedy, i.e. stop when first match succeeds

转载于:https://www.cnblogs.com/Stacie/p/4988445.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值