如何使用JMeter正确加载测试JMS?

如何使用JMeter正确加载测试JMS?,jmeter,Jmeter,我已经用JMS点对点采样器建立了一个线程组,它可以与我们的应用程序配合使用 我发送一条xml消息,对某些字段使用${uuuuid()}函数,以确保消息是唯一的,并期望响应超时60秒,并且内容应该包含一个简单的模式(响应断言) 我试图做一个简单的负载测试,发送1000条消息,但我不知道应该如何配置线程。我用不同的配置得到不同的结果 案例1: - Threads: 1000 - Ramp-up: 1 - Loop: 1 - Avg time/sample: ~80s - Total time: 02

我已经用JMS点对点采样器建立了一个线程组,它可以与我们的应用程序配合使用

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

我试图做一个简单的负载测试,发送1000条消息,但我不知道应该如何配置线程。我用不同的配置得到不同的结果

案例1:

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

- 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配置为完全复制应用程序的预期使用,这就是您的“配置”

  • -当您确定系统的限制并寻找解决方案时。在这种情况下,我建议从1个线程开始,同时查看以下图表:

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


实际上,我的观点是,无论使用多少线程,每个样本的平均时间都不相同。以案例1为例,80年代的响应时间是真的吗?还是因为工具无法正确测量?