正则表达式在性能测试中的应用(1)
作者:网络转载 发布时间:[ 2016/4/25 11:05:37 ] 推荐标签:软件测试 性能测试
该请求的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吧),英文简写regex、regexp或RE。中文部分文献中也译作正规表示式、正规表示法、常规表示法,其实都是一个意思。正则表达式是通过字符串来描述一类具有类似结构但又不完全相同字符串集合的句法规则,用于数据提取及模式匹配等诸多方面。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11