【问题标题】:Jmeter HTTP Request Response Time too low compared to SoapUI与 SoapUI 相比,Jmeter HTTP 请求响应时间太短
【发布时间】:2020-08-19 05:21:33
【问题描述】:

我们正在使用 Apache JMeter(最新版本)对高性能 API 进行负载测试。与 SoapUI(免费版)相比,JMeter 响应时间太长。 SoapUI 的平均响应时间为 200 毫秒,而 JMeter 报告相同 API 至少 1200 毫秒,在同一台机器上进行测试。

这会影响每个应用程序的计算吞吐量。在 SoapUI 上,我可以为所述 API 获得高达 850 tps 的速度,没有错误。在 JMeter 上,无论如何,我最多只能获得 190 tps。

测试使用 200 个线程运行 120 秒。

我已经调整了 jvm/jmeter 堆内存、垃圾收集器等,但无济于事。没有什么变化。有人能帮忙吗?谢谢。

编辑:添加了测试设置示例图片

JMeter Thread Group and Test Plan Overall Setup

SoapUI TestSuite and Overall Setup

编辑 2:测试结果

Jmeter test results1105 毫秒

SoapUi test results 263 毫秒

【问题讨论】:

  • 举例说明你的测试计划,你是在测试网站还是不相关的API调用?
  • @user7294900 感谢您的回复测试不相关的 API 调用。测试很简单: - 1 个线程组,包含 1 个 HTTP 请求采样器。这是一个向 API 发送一个小的 json 有效负载的 post 请求。我在 JMeter 和 SoapUI 上使用 200 个线程运行相同的测试 60 秒,在吞吐量和响应时间方面得到完全不同的结果。
  • *120 秒,而不是 60 秒
  • 您是否在 HTTP 请求中的 Body 数据中发送有效负载?
  • 是的,一个非常小的 json 有效载荷。具有单值数组的对象。

标签: jmeter soapui performance-testing


【解决方案1】:

我只能想到一个可能的原因:您在 GUI 模式下运行 JMeter,this is not something you should be doing 因为 JMeter 无法足够快地发送请求,JMeter 的 GUI 模式是为测试开发和调试而设计的。

由于缺少 JMeter 测试结果,您的图片无法说明全部情况。生成HTML Reporting Dashboard 并查看增加的虚拟用户数量与响应时间/吞吐量之间的相关性也是有益的。

最后但并非最不重要的一点是,JMeter 可以在 Distributed Mode 中执行,而在 SoapUI 中它仅适用于 LoadUI Pro

【讨论】:

  • 嗨@Dmitri T,谢谢你的回答。不,我没有在 GUI 模式下运行 JMeter。实际上我在命令行模式下运行,没有监听器处于活动状态,并且还尝试使用 taurus 运行。我可以发布完整的结果,但为简单起见,我只写下数字:JMeter 平均每个 HTTP 请求的响应时间为 1200 毫秒 SoapUI 平均每个请求的响应时间为 220 毫秒
  • 如果我可以在少量负载或少量 VU / 线程的情况下获得相同的结果,分布式模式将很有帮助。但问题是即使有少量的 VU/线程,我从 jmeter 得到的响应时间也很慢,我不明白为什么。同一台机器,相同的 jvm 设置,相同的连接,进行多次顺序测试以进行比较并始终获得相同的结果。
  • 我刚刚发布了一些结果,显示响应时间存在巨大差异。
猜你喜欢
  • 2018-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多