zoukankan      html  css  js  c++  java
  • 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、如果同时设置了线程组的循环次数和循环控制器的循环次数,那循环控制器的下面的接口运行的次数为两个数值相乘的结果。

    仅一次控制器:

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

  • 相关阅读:
    mysql排序
    MySQL命令行导出数据库
    os.path python使用遍历文件夹文件
    linux后台运行和关闭、查看后台任务
    WebDriver中自动识别验证码--Python实现
    一起学react (1) 10分钟 让你dva从入门到精通
    git命令大全
    jQuery中的100个技巧(译)
    Flow入门初识
    深入理解typescript的Functions
  • 原文地址:https://www.cnblogs.com/xiaowenshu/p/10595454.html
Copyright © 2011-2022 走看看