微信号:grzlwx

介绍:光荣之路官方资讯

正则表达式在性能测试中的应用(下)

2016-01-30 22:45 光荣之路

吴老的《selenium webdriver 实战宝典》出版了!

相关阅读:正则表达式在性能测试中的应用(上)

实战热身:

1、匹配一个32位的GUID[0-9a-hA-H]{32}

    说明:GUID一般为32位的十六进制数0-9a-hA-H是所有可能出现的字符类型{32}表示前面的这个匹配项正好匹配32次。

2、匹配一个国内手机号码如138000000001[3578][0-9]{9}

    说明:第一位为1,第二位为3578中的一个,后面九位数字任意(为了简单举例,此处没有考虑后续位与第二位的关联情况,如一些没有开放的号段也能通过该正则表达式匹配上)。

3、匹配网页tag标记之间的字符串:<tag>(.*)</tag>

    说明:此处匹配了<tag></tag>之间的那种任意的字符串,后续引用中一般用$1(或者\1看正则引擎的具体语法)便可使用这个字符串。

性能测试实例解析:

HyperPacer为例,下图为一个脚本回放时与录制时的快照比对:


该请求的sessionId在回放的时候发生了变动,若要脚本正常运行,此处便要对其做关联操作。提取过程便需要添加正则表达式提取器,见下图:

 

    此处正则表达式需要提取sessionId的数值,故在数据产生行,将实际数值替换成(.*),将变量命名为sessionId__110_eid,多一句嘴:名字虽然可以任意起,但是最好起一个有意义的名字,方便脚本的查看调试。

    其中的模板表示需要提取的分组$0$表示整个正则表达式匹配的字符串,1表示第一个圆括号包住的部分,2表示第二个圆括号包住的部分,以此类推。

匹配数字表示如果有多条数据匹配选哪一个,0就是从中随机选一个,如果写1就是取第一个匹配正则表达式的数据项,2就是取第二个匹配正则表达式的数据项,以此类推。

    后面凡是原来sessionId数值出现的地方,均将其替换为${sessionId__110_eid_1_g1},便达到了关联的效果。这块解释一下:HyperPacer是基于JMeter进行的定制化开发,正则表达式体系采用了和JMeter一样的模式。_1_g1的后缀表示取出第一个符合正则的第一组数字。前一个1表示如果存在多个匹配项要取第几个的选项,组的概念是通过正则表达式中的()表示的。正则表达式中第N次出现的()分组,g后面就跟N。该实例中使用的是第一次匹配项中的第一分组。见下图:

替换完成后,可以再试跑一遍脚本看看替换是否达到预期,是否还有别的类似变量没有替换的,再逐一进行替换后,关联的工作基本就完成了。剩下就是驱动脚本撒丫子开跑让服务器压力山大了(中二病又犯了:P)。

全文完。

注一:简单说,关联就是把脚本录制下来的一些固定的数据替换成由服务器响应数据中动态提取的数据。举个例子:现在大多数服务器为确保和每个浏览器会 话的一致性,通常会在首次发送响应数据时夹带一个唯一标识符,后续的交互都基于这个唯一标识符进行判断是不是同一个浏览器发来的。一般将该唯一标识符称作 Session ID。每当有新的交互过程出现,都会生成新的Session ID。脚本直接回放失败的原因就是因为新的与服务器交互过程用了脚本录制中已经写死的旧Session ID,故而回放失败。

注二:正则表达式,英文全名regular expression(玩滑板的同学不要问我goofy expression,这个真没有。咱还是讨论讨论Ollie吧),英文简写regexregexpRE。中文部分文献中也译作正规表示式、正规表示法、常规表示法,其实都是一个意思。正则表达式是通过字符串来描述一类具有类似结构但又不完全相同字符串集合的句法规则,用于数据提取及模式匹配等诸多方面。

<完>

(作者:书中蠹鱼 来源:http://www.cnblogs.com/youngchance/p/5162879.html)

公益传播测试知识、技能与正能量!感谢作者!
分享测试生活,思考测试人生!欢迎投稿!
文章图片来自网络,如有侵权请见谅,请联系我们妥善处理。
735821166@qq.com

光荣之路
软件测试培训


官网:www.gloryroad.cn

微信公众号:gloryroadtrain

性能测试QQ群:415987441
测试招聘QQ群: 203715128
自动化3群QQ: 371211499

Python群:457561756

 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 一周阅读推荐 #5 剑桥大学,伦敦有房!跟甘道夫学学B2B公司相亲牌子怎么写【岂安低调分享】 .NET 基础拾遗(3): 字符串、集合和流【2】 精华版来了 | “百川解码”第一期 热修复的坑和阿里的解 为什么说名创优品深谐零售核心之道 | 互联网+零售