推荐一款 RabbitMQTest 性能测试工具

PHP是最好的 2020-11-12 10:03:25 ⋅ 1933 阅读

软件简介

RabbitMQTest 用于 RabbitMQ 性能测试,可提供对单个队列写入,消费以及对多个队列进行同时读写操作的测试. 可配置连接数,通道数

GitHub: https://github.com/jc3wish/RabbitMQTest

编译

go build ./RabbitMQTest.go

配置参数

etc/config.ini

案例 1

随机生成100个队列及绑定交换机

配置信息

[declareQueue]
#单纯创建队列
Method=only_declare
Uri=amqp://guest:guest@127.0.0.1:35673/mytest

#QueueList参数存在的情况下 QueuePrefix,QueueDurable,QueueAutoDelete,QueueCount参数无效
#QueueList = name:durable,auto_delete
#QueueList=TestQueue1:true:false,TestQueue2:true:false

#自动生成的队列的前缀
QueuePrefix=TestQueue
QueueDurable=true
QueueAutoDelete=false

#生成多少个队列
QueueCount=100

#交换机配置信息
ExchangeName=amq.direct
ExchangeType=direct
ExchangeDurable=true
ExchangeAutoDelete=false

#routingkey默认为队列名,如果填写RoutingKey,则统一绑定这个routingkey
RoutingKey=

运行

./RabbitMQTest -c ./etc/config.ini -key declareQueue

++++++++++++++++++++++++++++++
+                            +
+        RabbitMQTest        +
+                            +      Version:RabbitMQTest-v1.0.1-release
++++++++++++++++++++++++++++++           By:jc3wish


2019/03/15 18:57:38 Test Start, Time: 1552647458450
2019/03/15 18:57:38 only_declare Declare Count: 100 endTime: 1552647458460  had use time(ms): 10

2019/03/15 18:57:38 Test Over: 1552647458460 Use Time(ms): 10
ConnectSuccess: 0
ConnectFail: 0
ChannelSuccess: 0
ChanneFail: 0
WriteSuccess: 0
WriteFail: 0
CosumeSuccess: 0
Write QPS: 0
Consume QPS: 0

案例 2

  • 往 vhost:mytest 下所有队列写入数据
  • 每个队列一个连接
  • 每个连接2个通道
  • 每个通道往一个队列中写入1000条数据。
  • 每条数据随机大小 1kb,2kb

配置信息

[allQueueWrite]
#同时对多个队列操作写操作
Method=all_write

#HttpUri和QueueList 两个参数,QueueList 优先
#QueueList 参数是VHOST:QUEUEU,VHOST2:QUEUEU2 格式,用逗号隔开
#HttpUri 是配置rabbitmq http接口连接,会自动拉取
HttpUri=http://127.0.0.1:15674/api/queues/mytest
#QueueList=TESTVHOST:testQueue,testVhost:testqueue2

#rabbitmq tcp连接ip+端口
AmqpUri=127.0.0.1:35673

#rabbitmq连接帐号
AmqpAdmin=guest

#rabbitmq连接密码
AmqpPwd=guest

#写入操时,则认为false
WriteTimeOut=20

#每个队列写入的连接数量
ConnectCount=1

#每个连接的通道数量
ChannelCount=2

#每个队列的每个通道写入总数
#假如总的有100个队列,ConnectCount = 1,ChannelCount = 2,ChanneWriteCount = 1000 ,则每个队列的写入量 = 1 * 2 * 10
ChanneWriteCount=10

#开启cofirm机制
WaitConfirm=1

#数据大小
DataSize=1024,2048

#持久化
DeliveryMode=1

#写入操作的时候 ,采用哪一个交换机,这里routingkey强制采用队列名作为routingkey,并且 交换机和routingkey,队列名的绑定关系 ,得事先绑好
#如果采用默认交换机,则不用填写
#ExchangeName=amq.direct

ContinueCount=100
ContinueCountSleepTime=2

运行

./RabbitMQTest -c ./etc/config.ini -key allQueueWrite

++++++++++++++++++++++++++++++
+                            +
+        RabbitMQTest        +
+                            +      Version:RabbitMQTest-v1.0.1-release
++++++++++++++++++++++++++++++           By:jc3wish


2019/03/15 19:03:16 Test Start, Time: 1552647796908
2019/03/15 19:03:16 allQueueWrite AllQueueOp start 1552647796959

2019/03/15 19:03:33 Test Over: 1552647813853 Use Time(ms): 16945
ConnectSuccess: 400
ConnectFail: 0
ChannelSuccess: 800
ChanneFail: 0
WriteSuccess: 8000
WriteFail: 0
CosumeSuccess: 0
Write QPS: 472.115668338743
Consume QPS: 0

备注

假如要同时运行多个 key 用逗号隔,例如:

./RabbitMQTest -c ./etc/config.ini -key singleSend,singleConsume

全部评论: 0

    我有话说:

    推荐前端数据源管理工具 algeb

    ALGEB 简介 这是一个比较抽象的库,开始可能比较难理解。我写它的初衷,是创建可响应的数据请求管理。在传统数据请求中,我们只是把携带ajax代码的堆函数放在一起,这样就可以调用接口。但是这种

    前端性能分析工具-Keepfast

    能够分析网站的资源构建性能和页面性能,生成性能报告并提供优化建议,让性能监控更方便。

    【开源推荐】基于 Go 语言的轻量级高性能日志库 logit使用及测评

    logit 是一个简单易用并且是基于级别控制的日志库,可以应用于所有的 GoLang 应用程序中。

    2018 国产开源软件新秀Kooteam 0.1.2 发布,解决低配服务器性能问题

    KooTeam是轻量级的在线团队协作工具,提供各类文档工具、在线思维导图、在线流程图、项目管理、任务分发,知识库管理等工具

    最全Mac工具

      MacTool Mac 开源免费工具汇总, 只罗列开源好用的。更全列表请参考awesome-mac 必备 Homebrew - 体验通过命令行安装 Mac 软件的工具(大部分是

    工具集001

      1.  Google项目管理工具 Tables   2. 终端 taskwarrior --- TODO List Taskwarrior is

    精品推荐:Docker与自动化测试及其测试实践

    Docker 本身并不会直接加速测试执行。在串行执行测试时,在容器中执行测试反而会带来约 5% 左右的性能衰减。

    推荐功能强大,开源免费的H5可视化编辑器

    H5-Dooring 是功能强大,开源免费的H5可视化页面配置解决方案,致力于提供套简单方便、专业可靠、无限可能的H5落地页最佳实践。技术栈以react为主, 后台采用nodejs开发. 预览

    TestableMock v0.6.0 发布,新增测试参数快速构造工具

    项目介绍 TestableMock是由阿里效能团队开源的Java单元测试增强工具,提供四项具有针对性的辅助能力: 快速Mock任意调用:解决传统Mock工具使用繁琐的问题 访问被测类私有成员

    RedisPlus 3.0.0 重构归来免费开源,优化性能和交互体验

    RedisPlus是为Redis可视化管理开发的开源免费的桌面客户端软件,支持Windows 、Linux、Mac三大系统平台,RedisPlus提供更加高效、方便、快捷的使用体验,有着更加

    移动H5前端五大性能优化方案(实战篇)

    移动H5前端五大性能优化方案(实战篇)

    性能与架构」MySQL 8 查询优化新工具 Explain Analyze

    Explain 是我们常用的查询分析工具,可以对查询语句的执行方式进行评估,给出很多有用的线索。

    GraalVM 20.2发布,高性能跨语言虚拟机

    GraalVM 消除了编程语言之间的隔离,并支持共享运行时的互操作性。

    工具集002

      文件对比 https://www.diffchecker.com/excel-diff 快速找出类似文件的不同之处。  

    iOS TableView性能优化

    TableView的性能优化非常考验开发的基本功,之前做项目实战的时候经常被这个问题困扰

    实时性能和健康监测工具:Netdata 1.26.0 发布

    简介 Netdata 是 Linux 性能实时监测工具。新版本带来了用 Go 语言编写的新 collector、与 DevOps startup StackPulse 的新集成以及对用户浏览

    「开源推荐」Nginx可视化配置工具—NginxWebUI,小白也可以玩转

    包括http协议转发, tcp协议转发, 反向代理, 负载均衡, ssl证书自动申请、续签、配置等