Jmeter分离登录事务的另一种方式

最近,遇到了一个困扰很多人的问题。

情景如下:

  业务流程:登录一个网站,反复进行充值。

  通常的做法是使用jmeter对登录和充值的接口进行反复的执行:

 

 

但是实现的方法却不能完美的贴合业务流程。

并且,在进行压测的时候,总不可能把登录接口也一起压了吧,因此,就需要用到jmeter的逻辑控制器了。

 

逻辑控制器

那啥是逻辑控制器呢?

Jmeter官网对逻辑控制的解释是:Logic Controllers determine the order in which Samplers are processed。

翻译一下:逻辑控制可以控制采样器(samplers)的执行顺序。

那么,Show time!!!

 

1、线程组->添加->逻辑控制器->仅一次控制器

ps:如果是英文版的jmeter,Thread Group->add->logic Controller->Once Only Controller

概念:测试计划执行期间,该控制器下的子结点对每个线程只执行一次

 

2、在仅一次控制器下添加接口请求

到此,实现登录接口的一次运行

(ps:由图可见,登录接口是在仅一次控制器下面的)

 

 

3、线程组->添加->逻辑控制器->循环控制器

ps:如果是英文版的jmeter,Thread Group->add->logic Controller->Loop Controller

概念:指定其子节点运行的次数,可以使用具体的数值(如下图,设置为4次),也可以使用变量

 

 

4、在循环控制下添加充值请求

并设置循环次数,到此,即实现了登录一次却循环执行了多次充值接口的目的。

(ps:由图可见,充值接口是在循环控制器下面的)

 

 

 

5、运行察看结果树,完美!

 

重点

重点来了,老师敲黑板了啊!

循环控制器:

1、永远选项:勾选上这一项表示一直循环下去

2、如果同时设置了线程组的循环次数和循环控制器的循环次数,那循环控制器的下面的接口运行的次数为两个数值相乘的结果。

仅一次控制器:

将仅一次控制器作为循环控制器的子节点,仅一次控制器在每次循环的第一次迭代时均会被执行。

 

posted @ 2019-03-25 18:25  小文叔  阅读(401)  评论(1编辑  收藏  举报