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"}}
        • 1
        • 1

      解决办法: 
      下载安装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测试工具的更多相关文章

  1. mqtt服务器apollo的搭建和测试工具paho的使用

    (1)前言 MQTT协议是IBM开发的一个即时通讯协议; 基于发布/订阅的消息协议,近些年来被广泛应用于能源.电力.....等硬件性能低下的远程设备,此外国内很多企业使用MQTT作为android手机 ...

  2. 渗透测试工具BurpSuite做网站的安全测试(基础版)

    渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...

  3. linux压力测试工具stress

    最近给PASS平台添加autoscaling的功能,根据服务器的负载情况autoscaling,为了测试这项功能用到了stress这个压力测试工具,这个工具相当好用了.具体安装方式就不说了.记录下这个 ...

  4. [.NET] WebApi 生成帮助文档及顺便自动创建简单的测试工具

    ==========最终的效果图========== ==========下面开始干活:生成帮助文档========== 一.创建 WebApi 项目 二.找到 HelpPageConfig.cs 并 ...

  5. RabbitMQ调试与测试工具-v1.0.1 -提供下载测试与使用

    最近几天在看RabbitMQ,所以发了两天时间写了一个调试和测试工具.方便使用. 下载地址:RabbitMQTool-V1.0.1.zip

  6. HTTP压力测试工具

    HttpTest4Net是一款基于C#实现的和HTTP压力测试工具,通过工具可以简单地对HTTP服务进行一个压力测试.虽然VS.NET也集成了压力测试项目,但由于VS自身占用的资源导致了在配置不高的P ...

  7. 微软压力测试工具 web application stress

    转自 http://www.cnblogs.com/tonykan/p/3514749.html lbimba  铜牌会员 这里给广大的煤油推荐一个web网站压力测试工具.它可以用来模拟多个用户操作网 ...

  8. WebService如何调试及测试工具

    http://www.cnblogs.com/zfanlong1314/archive/2012/04/06/2434788.html 通常,我们在Visual Studio里调试ASP.NET网站, ...

  9. Android高手速成--第四部分 开发工具及测试工具

    第四部分 开发工具及测试工具 主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Json2Java根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson ...

随机推荐

  1. poj 1523 SPF 求割点以及删除该割点后联通块的数量

    SPF Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7136   Accepted: 3255 Description C ...

  2. 二进制<4>

    位运算简介及实用技巧(四):实战篇 下面分享的是我自己写的三个代码,里面有些题目也是我自己出的.这些代码都是在我的Pascal时代写的,恕不提供C语言了.代码写得并不好,我只是想告诉大家位运算在实战中 ...

  3. [LOJ#531]「LibreOJ β Round #5」游戏

    [LOJ#531]「LibreOJ β Round #5」游戏 试题描述 LCR 三分钟就解决了问题,她自信地输入了结果-- > -- 正在检查程序 -- > -- 检查通过,正在评估智商 ...

  4. 大杂烩 Classpath / Build path / Debug关联源码 / JDK&JRE区别

    Classpath的理解及其使用方式 原文地址:http://blog.csdn.net/wk1134314305/article/details/77940147?from=bdhd_site 摘要 ...

  5. charles 抓包工具破解方法

    在线破解地址: https://www.zzzmode.com/mytools/charles/ 之后将下载的jar包替换  charles.app ->右键显示包内容 ->content ...

  6. How to resolve mysql problem when you get code 2003(10061) and 1130

    When I use Navicate to connect to mysql on Ubuntu, I got message 2003(10061) firstly. To resovle thi ...

  7. 快充 IC BQ25896 如何判斷 手機插著 adapter 充電器時,adapter Iout 大於限制,adapter Vout 小於 限制,導致 battery 不但沒充電且還需放電。

    若電池在 放電時,ICHGR 為0. 若電池在 充電時,ICHGR有變化.   下面有寫到 charge current 所以不是 discharge current   狀況:           ...

  8. Perl语言入门--3--perl的控制结构

    表达式真假值总结: 表达式不一定是逻辑表达式,但一定要得出真假值   假值:逻辑值为假 值为0 字符串为空 列表为空 undef 其他情况为真 1.if {} elsif {} else {} 2.u ...

  9. Servlet 2.4 规范之第六篇:响应

    响应对象封装了服务端返回给客户端的所有信息.在HTTP协议中,这些信息通过HTTP头和消息体传送. SRV.5.1    缓冲 出于效率考量,servlet容器可以缓冲输出数据,但这并非强制要求.常见 ...

  10. git 中遇到的问题

    刚创建的github版本库,在push代码时出错: $ git push -u origin masterTo git@github.com:******/Demo.git ! [rejected] ...