ActiveMQ测试工具
2016-03-25 14:26
302 查看
1. 测试工具
目前使用两种测试工具进行压力测试1. Jmeter 测试单客户端收发多主题,测试高并发,大数据量时的接收效率
2. emqtt_benchmark测试多客户端收发主题,测试高吞吐量下服务器性能
1.1 安装Erlang
emqtt_benchmark测试工具使用Erlang语言开发,必须在Linux的环境下运行,因此需要先安装Erlang语言环境。1.1.1 安装Erlang
可以参考这篇帖子,使安装别的特别简单。
1.1.2 安装问题
没有安装git,比如出现以下错误:
ERROR: Rebar requires version {1,5} or higher of git to process {git,"git://github.com/talentdeficit/jsx.git",{tag,"v0.9.0"}}
解决办法:
下载安装git工具
yum install git make clean make
不能下载Erlang,错误:
[root@localhost mqtt-test]# ./kerl build 18.3 18.3 Verifying archive checksum... Checksum error, check the files in /root/.kerl/archives
解决办法:
删除archives文件夹
[root@localhost mqtt-test]# rm -rf /root/.kerl/archives
1.2 emqtt_benchmark安装使用
这是一个简单的MQTT基准工具用Erlang编写的。该工具的主要目的是基准测试MQTT服务器可以支持的并发连接数。官网下载1.2.1 下载安装
将下载下来的
emqtt_benchmark-master.zip放置一个目录下,并解压缩, 使用make进行编译安装
unzip emqtt_benchmark-master cd emqtt_benchmark-master ls make
1.2.2 订阅命令
在目录
emqtt_benchmark-master下执行命令:
./emqtt_bench_sub --help,结果如下:
[root@localhost emqtt_benchmark-master]# ./emqtt_bench_sub --help Usage: emqtt_bench_sub [--help <help>] [-h [<host>]] [-p [<port>]] [-c [<count>]] [-i [<interval>]] [-t <topic>] [-q [<qos>]] [-u <username>] [-P <password>] [-k [<keepalive>]] [-C [<clean>]] [--ifaddr <ifaddr>] --help help information //服务器ip地址 -h, --host mqtt server hostname or IP address [default: localhost] //服务器端口号 -p, --port mqtt server port number [default: 1883] //最大连接客户端数量 默认200 -c, --count max count of clients [default: 200] //客户端连接间隔时间,默认10毫秒 -i, --interval interval of connecting to the broker [default: 10] //订阅的主题 %i=自增长序号 -t, --topic topic subscribe, support %u, %c, %i variables //消息服务qos等级, //0=最多一次 服务器与 客户端 交互1次 //1=至少一次 服务器与 客户端 交互2次 //2=仅有一次 服务器与 客户端 交互4次 -q, --qos subscribe qos [default: 0] //客户端用户名 -u, --username username for connecting to server //用户端密码 -P, --password password for connecting to server //维持客户端活跃的时间 默认300秒 -k, --keepalive keep alive in seconds [default: 300] //客户端断开后是否清除session 默认true -C, --clean clean session [default: true] //代理ip接口 --ifaddr local ipaddress or interface address
举例:创建1000个并发客户端,并每秒接收100条消息频率
./emqtt_bench_sub -c 1000 -i 10 -t bench/%i -q 2
1.2.3 发布命令
执行命令:
./emqtt_bench_pub --help,结果如下:
[root@localhost emqtt_benchmark-master]# ./emqtt_bench_pub --help Usage: emqtt_bench_pub [--help <help>] [-h [<host>]] [-p [<port>]] [-c [<count>]] [-i [<interval>]] [-I [<interval_of_msg>]] [-u <username>] [-P <password>] [-t <topic>] [-s [<size>]] [-q [<qos>]] [-r [<retain>]] [-k [<keepalive>]] [-C [<clean>]] [--ifaddr <ifaddr>] --help help information -h, --host mqtt server hostname or IP address [default: localhost] -p, --port mqtt server port number [default: 1883] -c, --count max count of clients [default: 200] -i, --interval interval of connecting to the broker [default: 10] //客户端发布消息的时间间隔 默认1000毫秒 -I, --interval_of_msg interval of publishing message(ms) [default: 1000] -u, --username username for connecting to server -P, --password password for connecting to server -t, --topic topic subscribe, support %u, %c, %i variables //消息字节大小 默认256字节 -s, --size payload size [default: 256] -q, --qos subscribe qos [default: 0] -r, --retain retain message [default: false] -k, --keepalive keep alive in seconds [default: 300] -C, --clean clean session [default: true] --ifaddr local ipaddress or interface address
举例:创造10个客户,每个客户端发布消息的速度每秒100条,吞吐量1000条/秒
./emqtt_bench_pub -c 10 -I 10 -t bench/%i -s 256
1.3 Jmeter安装使用
Apache JMeter是Apache组织开发的基于Java的压力测试工具。下载用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。
可以参考我的另一片帖子
相关文章推荐
- 解析ActiveMQ的使用说明总结
- WQL语言简介和WQL测试工具wbemtest.exe使用方法详细介绍
- ActiveMQ发消息、收消息、持久化,查询队列剩余消息数、出队数的实现
- activemq报EOFExceptionjvm错误
- ActiveMQ 消息服务(一)
- ActiveMQ 消息服务(二)
- ActiveMQ 消息服务(三)
- Spring+Log4j+ActiveMQ实现远程记录日志——实战+分析
- 基于zookeeper+leveldb搭建activemq集群
- Web网站的性能测试工具介绍
- 几款开放源代码的软件测试工具介绍
- 有用的测试工具Hamcrest
- ActiveMQ 实例
- 一台机器上运行多个ActiveMq
- activemq安全设置 设置admin的用户名和密码
- Ubuntu 14.04.1 安装 activemq 5.11.1
- 在Spring中使用ActiveMQ发送邮件
- 多个地市连接MQ,如果较长时间没有消息发送,ActiveMQ的消费端会自动断开连接(topic端)
- 通过Java操作ActiveMQ的代码记录
- 通过spring开发ActiveMQ简单应用