概要
主要的目标是测试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测试还是比较直观一点,需要优化一下参数可能会更接近真实水平