zoukankan      html  css  js  c++  java
  • jmeter混合场景的多种实现方式比较

          性能测试设计混合场景,一般有几种方式,分别是每个场景设置一个线程组,使用if控制器,使用吞吐量控制器。不同的方式实现机制不一样,哪种方式相比而言更好呢?下面做一比较。

    下面以混合访问百度首页和必应首页作为测试场景,访问预设为1:3。

    一、多个线程组

    操作步骤:

    1、Jmeter上创建一个测试计划;

    2、计划下添加3个线程组,分别是对业务场景A、业务场景B、业务场景C;

    3、假设3个场景混合并发的比例为4:4:2,则可以在3个线程组分别设置4、4、2,或者设置为40、40、20总并发量为100,只要按并发比例设置并发用户数即可

    4、运行整个测试计划(计划下哪个线程不跑的时候可以先禁用),则所有接口会混合跑,实现接口混合并发压测;

    结论:如果这两个事务的响应时间不一样,最终完成的业务数比例也会不一样。当前线程数是在假定两个业务的响应时间一样的情况下,所以这完全是理想状况。所以,这种方式控制并不完美

    二、使用if控制器

    添加一个线程组,在线程组添加两个if控制器,分别加入两个HTTP请求(百度首页和必应首页),通过调节if的条件实现按一定比例并发的需求。

    首先在线程组加一个配置元件随机变量,取值范围为1-100,变量名设为num。

    百度首页的if条件设置为${num}<=25,必应首页的if控制器条件设为${num}>25.

    线程组的并发设为目标并发30个,并发时间3分钟,分两步并发。测试结果如下,并发请求数大致为1:3,符合需求:

    三、吞吐量控制器

    实现方式与if控制器大体一致,只是把if控制器换为吞吐量控制器,分别设置两个控制器的吞吐量百分比为25%和75%,也即1:3的并发比例。

    注意:吞吐量控制器字段有两种:Total Executions:执行数量percent Executions:执行百分比(1-100)

     

    测试结果可看出吞吐量控制器与if控制器的请求并发总数也基本一样,请求比例也符合1:3的原始设置

    四、结论

           纵观以上的测试结果,可看出使用if控制器和吞吐量控制器均能实现我们的预期目标,即合理的并发请求比例,而采用多个线程组的方式与我们目标有一定差距,原因在于各线程组的请求响应时间相差大,虽然同时并发,但实际并发比例难以控制。

    若混合场景下各请求的响应时间差不多,多线程组的方式理论上也是能按预设比例并发的,只是实际测试的情况下,无法保证请求响应时间的大小,所以测试混合场景的时候,使用if控制器或者吞吐量控制器显然是更好的选择。

  • 相关阅读:
    IIC时序和24C02读写字节时序
    Labview-vi的可重入性
    Labview笔记-创建自定义控件
    非院校科研机构如何查阅下载文献?
    【转】经典的图像去噪算法NLM和BM3D算法
    【转载】计算机科学最重要的32个算法
    图像存储方式
    二维物体形状识别方法比较
    论static关键词
    论引用
  • 原文地址:https://www.cnblogs.com/pachongshangdexuebi/p/13392484.html
Copyright © 2011-2022 走看看