首页 > 解决方案 > 如何使用 JMeter 正确加载测试 JMS?

问题描述

我已经使用JMS 点对点采样器设置了一个线程组,它适用于我们的应用程序。

我发送一条 xml 消息,${__UUID()}对某些字段使用函数以保证消息是唯一的,并期望响应超时 60 秒,并且内容应该包含一个简单的模式(响应断言)。

我尝试进行发送 1000 条消息的简单负载测试,但我对如何配置线程感到困惑。我用不同的配置得到不同的结果。

情况1:

- Threads: 1000
- Ramp-up: 1
- Loop: 1
- Avg time/sample: ~80s
- Total time: 02:41

案例二:

- Threads: 1000
- Ramp-up: 10
- Loop: 1
- Avg time/sample: ~60s
- Total time: 01:43
- Errors: 3%

案例3:

- Threads: 1000
- Ramp-up: 100
- Loop: 1
- Avg time/sample: ~12s
- Total time: 02:13

案例4:

- Threads: 1
- Ramp-up: 1
- Loop: 1000
- Avg time/sample: ~1.2s
- Total time: >16min

案例5:

- Threads: 10
- Ramp-up: 1
- Loop: 100
- Avg time/sample: ~1.1s
- Total time: 02:12

案例6:

- Threads: 100
- Ramp-up: 1
- Loop: 10
- Avg time/sample: ~7.3s
- Total time: 01:30

我应该如何解释这些结果?我应该使用哪种配置?

标签: jmeter

解决方案


这取决于您要实现的目标,主要的性能测试类型是:

  • 负载测试- 当您将系统置于预期负载下并查看响应时间/每秒事务数是否符合非功能性要求SLA的预期。如果是这种情况 - 只需配置 JMeter 以准确复制您的应用程序的预期使用情况,这将是您的“配置”

  • 压力测试- 当您确定系统的限制并寻找瓶颈时。在这种情况下,我建议从 1 个线程开始并逐渐增加负载,同时查看以下图表:

    理想情况下,每秒事务数应该随着用户数量的增加而增加,并且响应时间应该保持不变,但是我希望在某些时候您会看到响应时间会增加,而每秒事务数会下降——这将指示饱和点 - 最大系统性能的点。您可以记录此阶段每秒的活动线程数或请求数并报告。此外,您可以查找性能问题的根本原因并尝试修复它。


推荐阅读