MQTT压力测试之Tsung的使用

现在做物联网,MQTT协议被广泛应用。因此如何对MQTT Broker服务器进行压力测试也是测试人员、开发人员面临的问题。笔者经过多方选择,选择了Tsung这款工具。

简介

Tsung 是一个压力测试工具,可以测试包括HTTP, WebDAV, PostgreSQL, MySQL, LDAP, and XMPP/Jabber等服务器。针对 HTTP 测试,Tsung 支持

HTTP 1.0/1.1 ,包含一个代理模式的会话记录、支持 GETPOST PUT 以及 DELETE 方法,支持 Cookie 和基本的WWW 认证,同时还支持 SSL

 

tsung的工作原理

1 Tsung的每一个虚拟用户就是一个erlang的轻量进程。这点和loadrunner有很大的区别。

2 虚拟用户完成session后就消失。

3 大量的虚拟用户(erlang轻量进程)建立在erlangVM上。

4 一台测试机可以启多个erlangVM,目前按照1cpu启动1erlangVM

 

网上已经有很多怎么安装Tsung的文章了,这里我就不过多去赘述了,可以参考文:http://www.cnblogs.com/yangxia-test/p/4330571.html目前Tsung工具的最新版本为1.6.0,需要注意的是Tsung1.5.1版本及以上才支持MQTT,并且只有Tsung1.6.0开始,才支持MQTTusernamepassword的认证。下面我主要讲利用它对MQTT做压力测试工具。

Tsung测试工具的基本测试命令为 Tsung -f  ~/.tsung/mqtt.xml -l <日志保存路径> start

mqtt.xml具体如下(在/usr/share/doc/tsung/examples路径下可查找到):

<?xml version="1.0"?>

<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">

<tsung loglevel="debug" version="1.0">

<!--下面为客户端配置,可以有配有多个客户端,其中ubuntu保证通过ssh ubuntu能远程登陆上ubuntu这台机器,这里建议通过密钥对来进行远程客户端的登陆。下面类似于loadrunnerload generator,用以模拟用户。具体的详细配置请参见官网文档http://tsung.erlang-projects.org/user_manual/conf-client-server.html-->

上一页123下一页


留言

  1. #1

    部落族长(2016-07-06 21:19:36)

    @andyzhou  首先,这里的300(s)并不是指MQTT运行的时长,而是指用户加载所用的时间。其次,实际运行的用户数,与我们前面设置的client最大用户数,以及根据加载用户策略时所运行的用户数,以及session的probability分配都有关,所以定位具体原因,需要附上详细的xml配置文件。

  2. #2

    andyzhou(2016-07-06 18:26:49)

    你好 我按照上面的文档进行设置,发现程序设置的时间,并没有按照实际设置的时间结束(<arrivalphase phase="1" duration="300" unit="second">),请问这是什么原因?

    另外,设置用户并发数的时候,发现实际也没有按照那么多的用户进行并发处理,请问这是什么原因?谢谢!

  3. #3

    jessiesun(2016-05-23 10:28:56)

    @ruink,感谢分享! 我运行脚本时报错:ssh: Could not resolve hostname ubuntu:Temporary failure in name resolution,请问您运行这个脚本的时候碰到错误了吗? btw,我的环境是Ubuntu16.04