【问题标题】:JMeter maintain constant RPS rateJMeter 保持恒定的 RPS 速率
【发布时间】:2021-10-25 16:53:52
【问题描述】:

我已经开始使用 JMeter 对我的微服务的不同场景进行性能负载测试。我已经能够使用恒定吞吐量计时器来发送请求并测量吞吐量和 RPS。但是,使用 Constant Throughput Timer,JMeter 将根据 Web 服务对这些服务的响应速度来调整请求数量。

有没有办法在整个测试期间实现恒定的 RPS?基本上每秒以恒定速率发送 40 个请求,持续 10 分钟。我知道这可能会增加错误率,但这将有助于我们测试我们的微服务在不同场景下的表现

我目前的jmx计划如下

<hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="something" enabled="true">
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <intProp name="LoopController.loops">-1</intProp>
        </elementProp>
        <stringProp name="ThreadGroup.num_threads">${threadnum}</stringProp>
        <stringProp name="ThreadGroup.ramp_time">1</stringProp>
        <longProp name="ThreadGroup.start_time">1381113647000</longProp>
        <longProp name="ThreadGroup.end_time">1381113647000</longProp>
        <boolProp name="ThreadGroup.scheduler">true</boolProp>
        <stringProp name="ThreadGroup.duration">${duration}</stringProp>
        <stringProp name="ThreadGroup.delay">0</stringProp>
        <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
      </ThreadGroup>
      <hashTree>
        <ConstantThroughputTimer guiclass="TestBeanGUI" testclass="ConstantThroughputTimer" testname="Constant Throughput Timer" enabled="true">
          <intProp name="calcMode">2</intProp>
          <stringProp name="throughput">${throughput}</stringProp>
        </ConstantThroughputTimer>
        <hashTree/>

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    JMeter 线程模型假定在发送下一个请求之前等待响应,如果您的应用程序每秒无法处理超过 30 个请求,则无法使用 HTTP Request 采样器获得每秒 40 个请求

    恒定吞吐量计时器也只能减慢 JMeter 将其请求速率限制为所需的吞吐量,因此请确保通过此${threadnum} 变量提供足够数量的线程。否则,您可能会考虑切换到Throughput Shaping TimerConcurrency Thread Group 组合,如果您通过Feedback Function 连接它们,如果当前数量不足以达到/维持目标吞吐量,JMeter 将有可能启动更多线程

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 1970-01-01
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      相关资源
      最近更新 更多