zoukankan      html  css  js  c++  java
  • Jmeter (七)脚本增强_集合点

    Jmeter也有像LR中的集合点,是通过“定时器(Synchronizing Timer)”来完成;

    一、集合点:简单来理解一下,虽然我们的“性能测试”理解为“多用户并发测试”,但真正的并发是不存在的,为了更真实实现并发的概念,我们可以在需要压力的地方设置集合点。集合点是用来实现严的并发,一般来说不需要;

      PS:一般来说,我们所谓的并发是指在线用户,不需要通过集合点来实现,顶多需要加思考时间即可。通过在稳定性能测试中,建议通过随机思考时间的方式实现在线和并发的比例。

      操作步骤:

        1、右键“定时器--Synchronizing Timer”;

        

        设置集合点参数

        

        Number of Simulated Users to Group by:集合多少人后在执行请求(也就是执行的线程数),如果设置为0,等同于设置为线程组中的线程数量。

          注意:等同于设置为线程组中的线程数,一定要确保设置的值不大于它所在的线程组包含的用户数。

        Timeout in milliseconds:指定人数 多少秒没集合到算超时(设置延迟时间以毫秒为单位)。

          注意:如果Timeout in milliseconds为0,表示无超时时间,会一直等下去,除非手动终止!

        

      作用域:

        1、Synchronizing Timer是在每个sampler之前执行的,而不是之后,不管这个定时器的位置放在sampler之后,还是之前。

          当执行一个sampler之前时,和sampler处于相同作用域的定时器都会被执行;

        2、如果希望定时器仅应用于其中一个sampler,则可以把该定时器作为子节点加入。

      补充:   Synchronizing timer 仅作用于同一个JVM中的线程。

      试想:

         a.如果分布式测试时,synchronizing timer作用于所有jvm,那么jvm之间或者说监控jvm工作的部件就需要频繁通讯,确定线程的数量及状态等,然后集结了足够的线程后,又要发送信号让Jmeter来发送测试请求,中间存在延时,这样就无法

      模拟更真实的高并发了,而且这个东西还会消耗测试机器的一部分性能,会给测试结果带来负面影响;所以暂时是只支持控制单个jvm,如果后面有办法解决上面那些问题后,就可以实现控制多个jvm,控制总并发量;

         b.如果分布式测试,并使用了Synchronizing timer,且设置的值是小于单个jvm的线程数量;但是,较难确保所有jvm都在同一时间点集结了同样数量的线程数,这样就很难下测试结论了,因为都不知道是多少并发下的性能表现;当然了,可

      以将线程的启用时间拉长,并将超时时间延长,这样就很可能会与同一时刻集结到足够的线程,达到超高并发的测试;所以,分布式测试与Synchronizing timer一般不是同时使用的;如果非要用,则需要慎重设置相关参数

  • 相关阅读:
    [UE4]Visiblity、Render Opacity
    [UE4]Tool Tip
    [UE4]工程设置:自动捕获鼠标、通过代码设置鼠标显示隐藏、输入模式、编译时自动保存
    [UE4]蓝图节点的组织
    [UE4]宏
    [UE4]对象
    [UE4]传值与传引用
    [UE4]蓝图中的基本数据类型
    [UE4]位与字节
    [UE4]Delay与Retriggerable Delay
  • 原文地址:https://www.cnblogs.com/Lydia25/p/9951969.html
Copyright © 2011-2022 走看看