• 安装EMQ并启动
  • 安装Jmeter并进行测试
  • 用一个Jmeter控制多个Jmeter进行测试


提供mqtt服务的软件有多种,比如ActiveMQ、mosquitto、EMQ等。
这里选择在一个Linux主机上安装EMQ作为MQTT broker,然后用Jmeter连接到它,进行测试。

安装EMQ并启动

  1. 从EMQ官网下载EMQ安装包:http://www.emqtt.com/downloads
  2. 拷贝到一个Linux主机上直接安装。
  3. 执行以下命令启动控制台。启动时EMQ会自动检查各项功能,如果都是Successful,说明安装成功。

emqx console

  1. 退出控制台,现在可直接使用以下命令启动或停止EMQ进程。

emqx start

emqx stop

  • 启动EMQ时,在浏览器中输入以下网址(localhost改为EMQ所在主机的ip地址),便可访问EMQ的web控制页面。默认用户名: admin, 密码: public。

http://localhost:18083/

安装Jmeter并进行测试

Jmeter是一个由Apache基金会推出、基于Java的通用测试软件,可以在图形化界面中很方便地制定test plan然后执行它。

  1. 安装一个Jmeter到本地电脑,并安装好JDK,配置Java和Jmeter所需的环境变量,使得Jmeter能正常启动。
  2. 下载一个测试mqtt的Jmeter插件:https://github.com/emqx/mqtt-jmeter - 该插件包含四个sample,拷贝其jar文件到Jmeter的安装目录下的lib/ext文件中即可。
    - 如果不懂Jmeter的用法,请参考该插件的README文件。
  3. 通过Jmeter根目录下的bin/jmeter.bat或bin/jmeter.sh启动它的GUI界面。启动时可能报出warning,但可以忽略。
  4. 在Jmeter中添加一个test plan,点击"start"开始测试。

用一个Jmeter控制多个Jmeter进行测试

在多台电脑上分别安装Jmeter,然后选择一个Jmeter(记作master),控制其它Jmeter(记作slave)进行测试。slave Jmeter会将测试结果回传给master Jmeter。

测试步骤:

  1. 在多台电脑上分别安装Jmeter,并拷贝mqtt-jmeter插件。
  2. 为了能连接到slave Jmeter,修改master Jmeter根目录下的bin/jmeter.properties文件,找到remote_hosts=127.0.0.1这一行,在此处加入slave Jmeter的ip地址,端口号为1099,例如:

remote_hosts=10.10.10.1:1099

  1. 为了避免连接slave Jmeter时,因为SSL认证不通过而报错,找到server.rmi.ssl.disable=false这一行,将它改为:

server.rmi.ssl.disable=true

  1. 进入slave Jmeter根目录下的bin文件,执行以下命令(hostname设为slave Jmeter所在主机的ip地址),启动Jmeter server,它会保持运行,等待master Jmeter的控制。

./jmeter-server -Djava.rmi.server.hostname=10.10.10.1

  1. 启动master Jmeter的图形化界面,添加test plan,然后点击"remote start",间接启动slave Jmeter开始测试。