【问题标题】:Get max concurrency from a JMeter Test Plan and limit its value从 JMeter 测试计划中获取最大并发并限制其值
【发布时间】:2020-12-21 05:46:08
【问题描述】:

我有一个分布式 JMeter 设置,我想围绕它创建一个 Java 服务包装器。

测试计划(JMX 文件)由用户提供。因此,我不知道那里使用的属性和配置。用户测试计划可以有多个线程组和潜在的自定义线程组插件,如 Ultimate Thread Group、Arrival Thread Group 等。

  1. 我想获得用户测试计划可以实现的总体最大#threads 或最大并发(活动线程)。是否有可能在执行测试计划之前得到这个值?这将帮助我相应地为此测试运行配置服务器。

  2. 是否可以限制测试计划达到的总体最大并发量? (similar 我们可以使用计时器对 RPS 做些什么)(另外,请提及自定义线程组的选项,例如 Ultimate 线程组)

【问题讨论】:

    标签: jmeter jmeter-plugins jmeter-5.0


    【解决方案1】:

    这不是你可以有效控制的,因为:

    1. 如果当前数量不足以达到/维持目标吞吐量,则可以配置 JMeter 以启动额外线程,方法是使用 Throughput Shaping TimerConcurrency Thread Group 以及反馈功能

    2. 用户可以使用propertiesfunctions/variables来参数化/计算并发

    3. 用户可以随时使用JSR223 Test Elements 并执行以下操作:

      ctx.getThreadGroup().addNewThread(0, ctx.getEngine()) 
      

      这不是你可以检测到的,因为有很多方法可以调用这个函数,包括reflection

    因此,您可以做的最大工作是依赖 JVM 限制,通过default,每个线程有 1 兆字节的堆栈大小,这为分配给 Java 的每千兆字节内存提供 1024 个线程,因此您可以增加堆栈大小或根据您的“上限”减少分配给 JVM 的内存

    【讨论】:

      猜你喜欢
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多