zoukankan      html  css  js  c++  java
  • Jmeter事务与循环控制器

    循环控制器:
      1、永远选项:勾选上这一项表示一直循环下去
      2、如果同时设置了线程组的循环次数和循环控制器的循环次数,那循环控制器的下面的接口运行的次数为两个数值相乘的结果。
          添加路径线程组->添加->逻辑控制器->循环控制器
      ps:如果是英文版的jmeter,Thread Group->add->logic Controller->Loop Controller
    仅一次控制器:
      将仅一次控制器作为循环控制器的子节点,仅一次控制器在每次循环的第一次迭代时均会被执行。
           添加路径:1、线程组->添加->逻辑控制器->仅一次控制器
      ps:如果是英文版的jmeter,Thread Group->add->logic Controller->Once Only Controller
    场景设计:用户一次登录,然后多次充值,那么登录接口添加仅一次控制器,充值接口添加循环控制器,次数设置多次;
    事务控制器:

     性能测试的结果统计时我们一定会关注TPS,TPS代表的是每秒事务数,每个事务对应的是我们的请求。虽然JMeter能够帮我们把每个请求统计成一个事务,

    但有时候我们希望把多个操作统计成一个事务,JMeter也考虑到了这种需求,我们可以用个逻辑控制器中的事务控制器来完成。

     添加路径:【添加/逻辑控制器/事务控制器】

    勾选事务控制器页面的Generate parent sample:如果事务控制器下有多个取样器,勾选它,那么在“擦看结果树”中我们不仅可以看到事务控制器,还可以看到每个取样器,
    并且事务控制器定义的事务是否成功取决于子事务是否都成功,子事务其中任何一个失败即代表整个事务失败。

    勾选Include duration of timer and pre-post processors in generated sample:是否包括定时器、预处理和后期处理延迟的时间。一般不建议选择,因为选择会把一些额外时间算入总时间。

    集合点:

     让所有请求在不满足条件的时候处于等待状态,Jmeter中可以通过同步定时器 Synchronizing Timer 来完成。

    Number  of Simulated Users to Group by:按组分组的模拟用户数;

    timeout in milliseconds:Timout的意思是等待请求多久后,不管线程数有没有到达设置的并发数量都开始运行测试。

    场景设计一:

    线程数设置为6,集合点为3,超时为0,点击运行,用户将会分成了2组进行并发,每次是3个用户;

    场景设计二:

    线程数设置为6,集合点为8,超时为0,点击运行,需要手动stop。原因:不够并发数且超时为0;

    场景设计三:

    线程数设置6,集合点设置为4,超时为0,点击运行,发现只有4个请求,然后一直都没有停止,需要手动stop。原因:第一组够集合点,一起并发,第二组只有2个,不够集合点。

    场景设计四:

    线程数设置6,集合点设置为6,超时为0,点击运行,有6个请求。分1组执行。

    场景设计五:

    线程数设置6,集合点设置为4,超时为5000,点击运行,先有4个请求,为第一组,5秒后,出现后2个请求,为第二组,共6个;

    结论:

    Timeout in milliseconds: 如果设置为0,Timer将会等待线程数达到了"Number of Simultaneous Users to Group"中设置的值才释放。也就是说,如果线程数不足集合点中设置的数,就会一直等待,需要手动stop。

    如果大于0,那么如果超过Timeout in milliseconds中设置的最大等待时间(毫秒为单位)后还没达到"Number of Simultaneous Users to Group"中设置的值,Timer将不再等待,释放已到达的线程。

    也就是说如果线程数不满足集合点中设置的值,则在timeout中设置的时间后继续执行不足的那些线程。

    Timeout in milliseconds默认为0。所以当timeout设置为0,但是线程数又不满足集合点中设置的值时,就会一直等待,不执行请求,需要手动stop。

    同步定时器是在每一个采集器之前执行的,不管定时器的位置是在采集器之前还是之后,都是在采集器之前执行。

    如果一个线程中存在多个采集器,同步定时器和这些采集器在同一级(同一节点下),则同时作用于这些采集器。

    如果需要一个定时器单独对应某一个采集器,可以在采集器的子节点中创建定时器

     
  • 相关阅读:
    安卓开发学习笔记(七):仿写腾讯QQ登录注册界面
    android studio 撤销和恢复
    安卓开发学习笔记(六):如何实现指定图片定时开屏功能?
    JAVA小白开发环境配置(编译器为Idea)
    我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
    安卓开发学习笔记(五):史上最简单且华丽地实现Android Stutio当中Webview控件https/http协议的方法
    安卓开发学习笔记(四):Android Stuidio无法实现隐式Intent是为什么?
    XML如何添加注释?
    安卓开发学习笔记(三):Android Stuidio无法引用Intent来创建对象,出现cannot resolve xxx
    安卓开发学习笔记(二):如何用Android Stuidio在res资源下创建xml视图文件
  • 原文地址:https://www.cnblogs.com/camilla/p/13910837.html
Copyright © 2011-2022 走看看