JMeter是性能测试中被普遍使用的一种工具,常用于压力测试。该工具具有丰富的扩展插件用以满足不同情况下性能测试的需求。消息队列(Message Queue)简称为MQ,作为目前的主流中间件,在很多软件或程序中均会得到使用,测试人员在测试过程中会遇到涉及MQ的系统改造,因而需要利用JMeter实现消息队列数据的发送和接收,完成性能测试工作。本文基于实际工作中遇到的项目情况,介绍了一种JMeter扩展插件Mqmeter的使用方法,完成消息队列的性能测试。
1、引言
消息队列是分布式系统中的重要组件,主要解决应用耦合,异步消息,流量削锋等问题,以实现高性能、高可用、可伸缩和最终一致性架构。作为大型分布式系统中不可缺少的中间件,目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ和RocketMQ等。
JMeter作为Apache的开源性能测试工具,支持多种服务类型的测试;同时允许使用者对其进行二次开发扩展,以插件的形式满足JMeter无法提供的定制化需求,目前网络上包含有多种开源插件可供测试人员使用。
本文结合实际测试工作中所遇到的消息队列测试需求,介绍了一种JMeter插件Mqmeter,该插件可用于在IMB MQ队列上放置和获取消息。它使用IP地址、端口号、用户名和密码通过服务器通道连接到MQ服务器。通过该插件,测试人员可以使用JMeter完成MQ的压力测试,通过该插件实现对MQ的多并发操作。
2、环境准备
JMeter的运行需要JAVA环境,Mqmeter插件源代码的编译需要Maven环境,本节将对Mqmeter插件使用过程中的运行环境部署加以详细的阐述。
2.1 环境架构说明
本文实际进行性能测试的架构如下,报文大概流向为:JMeter发送报文至小型机应用接口,小型机应该程序将消息报文写入MQ队列中,消息消费模块从MQ中获取并消费消息报文。
2.2 环境配置