Jmeter测试Activemq队列

2023-10-25 15:59:58 浏览数 (2)

概要

主要的目标是测试MQ队列的性能表现,以确定其在各种不同的网络和硬件环境下的性能表现,以及其在负载增加时的响应速度和稳定性。

版本号:

ActiveMq Artemis 版本号:  2.19.0

Jmeter 版本号:   5.6.2

整体架构流程

提示:这里主要是面对两个方向,点对点和发布订阅

点对点配置

发布订阅配置

技术名词解释

Jmeter线程组

线程组元素是任何测试计划的起点。所有控制器和采样器必须位于线程组下。其他元素(例如侦听器)可以直接放置在测试计划下,在这种情况下,它们将应用于所有线程组。顾名思义,线程组元素控制 JMeter 将用于执行测试的线程数。线程组的控件允许您:

  • 设置线程数
  • 设置斜坡上升周期
  • 设置执行测试的次数

每个线程将完整地执行测试计划,并且完全独立于其他测试线程。多个线程用于模拟与服务器应用程序的并发连接。

加速周期告诉 JMeter 需要多长时间才能“加速”到所选线程的全部数量。如果使用 10 个线程,并且启动周期为 100 秒,那么 JMeter 将花费 100 秒来启动并运行所有 10 个线程。每个线程将在前一个线程开始后 10 (100/10) 秒启动。如果有 30 个线程且启动周期为 120 秒,则每个连续线程将延迟 4 秒。

Ramp-up 需要足够长,以避免测试开始时工作负载过大,并且足够短,以便最后一个线程在第一个线程完成之前开始运行(除非有人希望发生这种情况)。

从 Ramp-up = 线程数开始,然后根据需要向上或向下调整。

默认情况下,线程组配置为循环遍历其元素一次。

线程组还允许指定线程的生存期。单击“线程组”面板底部的复选框以启用/禁用额外字段,您可以在其中输入测试持续时间和启动延迟 您可以配置“持续时间(秒)”和“启动延迟(秒)”来控制每个线程的持续时间组以及在多少秒后开始。当测试开始时,JMeter将等待Startup Delay(秒),然后再启动线程组的线程,并运行配置的Duration(秒)时间。

技术细节

发布订阅的topic配置需要在前面加上dynamicTopics详细请看观望11.2描述

11.2 添加JMS订阅者和发布者

第6条,输入消息主题的名称。对于 ActiveMQ 动态主题(动态创建主题),示例值为“ dynamicTopics/MyStaticTopic1”

测试 pub-sub 50000数据

thread number: 14

second: 0.1

count : 3572

publisher

统计图表

subscriber

统计图表

统计表格

测试发布订阅20000数据

thread number: 14

second: 0.1

count : 1429

publisher

统计图表

统计表格

subscriber

统计图表

统计表格

测试发布订阅10000数据

thread number: 14

second: 0.1

count : 715

publisher

统计图表

统计表格

subscriber

统计图表

统计表格

测试point-to-point 50000数据

统计图表

统计表格

小结

根据之前的测试结果来看,比起我本地写代码测试的结果还是有点差距,测试还是得用工具来测试,写代码还是会有点差距。我是拿着50000数据的发布订阅模式来统计的,本地代码发送接收处理耗时26904ms,平均下来一秒1858条数据,有时候差一点1秒1697条,jmeter测试统计平均1秒1200条数据,考虑到本地会有其他的进程在跑所以有一定误差成分,之前在两台机器之间发布订阅发现误差毫秒级,但是到了本地和服务器两台机器之间的延迟蛮严重的。

不过总的来说jmeter测试还是比较直观一点,需要优化一下参数可能会更接近真实水平

0 人点赞