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. 是男人就过 8 题--Pony.AI A AStringGame

    链接:https://www.nowcoder.com/acm/contest/92/A来源:牛客网 AStringGame 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 26214 ...

  2. [错误解决]Ubuntu中使用dpkg安装deb文件提示依赖关系问题,仍未被配置

    使用dpkg进行软件安装时,提示:dpkg:处理软件包XXX时出错:依赖关系问题,仍未被配置 使用如下命令,sudo apt-get install -f 等分析完之后,重新使用dpkg –i XXX ...

  3. centos7下nginx添加到自定义系统服务中提示Access denied

    安装好nginx后,添加到系统服务中 在/usr/lib/systemd/system下创建nginx.service文件内容如下: [Unit] Description=nginx - high p ...

  4. OA笔记

    一:Asp.Net MVC请求处理原理(Asp.Net mvc 是怎样进入请求管道的.)请求-->IIS--->ISAPIRuntime-->HttpWorkRequest--> ...

  5. git命令综合

    Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势.Git常用操作命令:1) 远程仓库相关命令检出仓库:$ git clone git: ...

  6. iOS-----openGL--openGL ES iOS 入门篇3---> 纹理贴图(texture)

    在这篇文章中,我们将学习如何在openGL中使用纹理贴图. penGL中纹理可以分为1D,2D和3D纹理,我们在绑定纹理对象的时候需要指定纹理的种类.由于本文将以一张图片为例,因此我们为我们的纹理对象 ...

  7. 用js判断浏览器类型及设备

    <!DOCTYPE html> <html> <head> <title>JS判断是什么设备是什么浏览器</title> <meta ...

  8. HDU-1529 Cashier Employment

    据网上说这是到差分约束四星题... 可我觉得难吗? 比推DP方程容易... 两种约束方式,当然实现到程序就变成六种了... #include <cstdio> #include <c ...

  9. 修改Tomcat HTTP端口号(8080→8088)Eclipse

    1.如果不用Eclipse,修改Tomcat的端口号,可以参考这篇: https://jingyan.baidu.com/article/adc815139b12def722bf7377.html t ...

  10. 【bzoj3270】博物馆

    同样是高斯消元,我写的版本就受到了歧视 我怎么又犯把 $j$ 打成 $i$ 这种 $sb$ 错误 题意 一张无向图,两个人分别从 $s_1$ 号点和 $s2$ 号点开始,每轮两人都会同时进行一次以下操 ...