我们正在通过服务器上的JMeter执行负载测试。我们正在测试2个加载操作(注册和身份验证)。对于这两个测试计划,我们都有单独的计划。每个测试计划均包含2个HTTP请求。在第一个HTTP请求之后,我们将形成响应(使用第三方jar)并将其转发到第二个HTTP请求。
现在,在第一个加载操作(注册)中,我们获得的吞吐率为〜10 / sec。
但是,在第二个操作(身份验证)中,我们获得了1.3 / sec的吞吐量。
我们正在为这两种操作使用确切的配置。我们尝试增加JMETER的HEAP大小,但仍实现了相同的吞吐量。我们可以使用分布式测试作为最后的手段,但是我们想知道问题的根本原因。
答案 0 :(得分:0)
是什么让您认为这是一个jmeter问题,而不是第二个请求的响应时间问题,它会降低吞吐量?
您应该显示线程组。
为确保获得预期的吞吐量,有可能使缓慢的第二个请求崩溃:
使用此组件https://jmeter-plugins.org/wiki/ThroughputShapingTimer/
确保您阅读文档并设置足够的线程
组织您的计划,使其看起来像这样(请求1和2是简单控制器的子代)
线程组
|-通量整形计时器
|-简单控制器
|-Request 1
|-Request 2
答案 1 :(得分:0)
问题可能出在使用Beanshell上,因为它的性能可能是一个很大的问号,尤其是在涉及高负载时。
Since JMeter 3.1 it is recommended to use JSR223 Elements and Groovy language进行脚本编写,因此请考虑尽快迁移到JSR223 PostProcessor。
有关详细说明,基准测试,Groovy使用提示等,请参见Apache Groovy - Why and How You Should Use It文章。