在Jmeter中,实现类似于LoadRunner中集合点的方法是采用同步定时器(Synchronizing Timer),而实现类似于LoadRunner中关联的方法是采用正则表达式提取器。
一、集合点
访问百度,然后查看结果树,可以看到每个请求中的Sample Start(1s之内)都是一致的,验证同步定时器生效。(要看效果的,请求数设成100+。为何呢,了解一下“并发”的定义可能会更明白些)
注意:同步定时器(Synchronizing Timer)要放在集合元件的前面。
二、关联(Loadrunner中的关联)
接口测试中,会有一种情况,下个接口的请求参数需要上级一个接口的返回数据,且是动态的。这种情况下怎么处理呢,就需要“关联”。
PS:哎,感觉这东西理解起来很简单,解释起来比较麻烦。不是很明白的看客,附上传送门:。
举个例子,现在很多网站都需要先登录,才能执行一些其他操作(比如计算账单),即你在计算账单之前需要让系统知道你是登录状态。每个系统的校验机制可能都不同,具体问自家开发,我所负责的系统是token校验。
1、登录获取token
2、添加正则表达式(线程组-->右键添加-->后置处理器-->正则表达式提取器)
引用名称:下一个请求要引用的参数名称。填写token,则可以用${token}引用
正则表达式:()括起来的部分就是要提取的,其中: .匹配任何字符串 +一次或多次 ?再找到第一个匹配项后停止模板:格式为$m$。可以理解为使用匹配到的第几个数据(可能会有多个匹配成功的数据,此时需要使用模板)。例如$1$就表示使用第一个正则表达式匹配成功的内容。如果是$1$2$,则表示把这两个正则表达式所匹配的内容拼接起来返回使用。匹配数字:匹配数据的最终结果可以看做一个数组,匹配数字则可看做是数组的第几个元素。为0时,随机返回匹配的数据,为负数时,返回全部数据。为1时。表示返回匹配结果数组的第一个元素,用${token_1}引用,以此类推....缺省值:如果没匹配到,默认给它一个值。一般用于后续的逻辑判断,定义为大写的英文字母,例如ERROR。3、判断token是否取到(判断这个正则写的对不对)
这个只是我个人使用的一个偏门方法。很简单,发送一个get请求,然后带上要引用的参数(这里是token),看请求的url即可。
4、计算账单
5、查看结果树
-----------------------------分割线---------------------------------
关于Jmeter最最最基础的东西,我就写到这里了。因为我之前用过一段时间的Loadrunner,所以写的这些大部分都是模拟我用loadrunner时的一些操作,而不是Jmeter的全面介绍。如果路过的看客想对Jmeter相关的知识有个系统的学习或者较深入的了解,建议去翻翻官方文档吧,或者看看一些其他人的博客,比如,等等。
接下来,不知道还会不会继续深入学习Jmeter。公司下半年的任务是api自动化,从零开始,开始踩坑之路...
____两袖青蛇,剑开天门