RabbitMQTest

性能测试工具
授权协议 未知
开发语言 Google Go
所属分类 开发工具、 性能测试和优化
软件类型 开源软件
地区 国产
投 递 者 盖翰池
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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
 相关资料
  • 目录 http_load webbench ab siege http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载。 但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死。 还可以测试HTTPS类的网站请求。 下载地址:http_load-12mar2006.tar.gz 安装很简单 tar z

  • 性能测试应该有两个方向: 单接口压力测试 生产环境模拟用户操作高压力测试 生产环境模拟测试,目前我们都是交给公司的 QA 团队专门完成的。这块我只能粗略列举一下: 获取 1000 用户以上生产用户的访问日志(统计学要求 1000 是最小集合) 计算指定时间内(例如 10 分钟),所有接口的触发频率 使用测试工具(loadrunner, jmeter 等)模拟用户请求接口 适当放大压力,就可以模拟

  • 目标 对ShardingSphere-JDBC,ShardingSphere-Proxy及MySQL进行性能对比。从业务角度考虑,在基本应用场景(单路由,主从+加密+分库分表,全路由)下,INSERT+UPDATE+DELETE通常用作一个完整的关联操作,用于性能评估,而SELECT关注分片优化可用作性能评估的另一个操作;而主从模式下,可将INSERT+SELECT+DELETE作为一组评估性能的

  • go1.6.2 linux/amd64 Ubuntu 16.04 amd64 虚拟机 2 个处理器核心 2 GB 内存 并行测试 BenchmarkParallelHprose2-2 200000 9239 ns/op 789 B/op 25 allocs/op BenchmarkParallelHprose2Unix-2

  • 主要内容:测试命令格式,执行测试命令为了解 Redis 在不同配置环境下的性能表现,Redis 提供了一种行性能测试工具 redis-benchmark(也称压力测试工具),它通过同时执行多组命令实现对 Redis 的性能测试。 性能测试的作用是让我们了解 Redis 服务器的性能优劣。在实际的业务场景中,性能测试是必不可少的。在业务系统上线之前,我们都需要清楚地了解 Redis 服务器的性能,从而避免发生某些意外情况,比如数据量过

  • Redis 性能测试是通过同时执行多个命令实现的。 语法 redis 性能测试的基本命令如下: redis-benchmark [option] [option value] 实例 测试存取大小为100字节的数据包的性能。 $ redis-benchmark -h 127.0.0.1 -p 6379 -q -d 100 PING_INLINE: 85910.65 requests per se