MQTT压力测试之Tsung的使用

    <clients>

        <client host="ubuntu" maxusers="50"></client>

    </clients>

<!--这里为配置MQTT brokerIP地址,端口,协议默认为tcp>

      <servers>

        <server host="127.0.0.1" port="5672" type="tcp" />

      </servers>

<!--下面为加载用户信息-->

    <load>

<!--sessionmqtt_sbuscriber的用户,10秒后启动-->

        <user session="mqtt_subscriber" start_time="10" unit="second"></user>

<!--用户组1,下面表示在前3秒内,每隔1秒新增一个用户,用户数最大为5-- >

        <arrivalphase phase="1" duration="3" unit="second">

            <users maxnumber="5" arrivalrate="1" unit="second"/>

        </arrivalphase>

<!--用户组1,下面表示在前2分钟内,每隔10秒新增一个用户,用户数最大为10-- >

        <arrivalphase phase="2" duration="2" unit="minute">

            <users maxnumber="10" arrivalrate="10" unit="second"/>

        </arrivalphase>

    </load>

    <sessions>

<!--probability100,上面非指定session所新增的用户,都用于该session-->

        <session name="mqtt_publisher" probability="100" type="ts_mqtt">

            <request>

<!--重点来了,这个通常我们的MQTT都会加入密码认证,否则不能建立连接通信。这里需要仔细查看官方文档,发现1.6.0已经开始支持MQTTuserpassword。所以我们只需要在下面加入MQTT认证的usernamepassword就可以与MQTT服务器器连接,并推送和订阅消息了-->

                <mqtt type="connect" clean_start="true" keepalive="10" will_topic="will_topic" will_qos="0" will_msg="will_msg" will_retain="false" username="user" password="yourpassword"></mqtt>

            </request>

<!--下面外面为一层for循环,执行10次,下面为一个消息推送,主题为test_topicqos1(至少保证收到一次),中间为具体的消息 -->



留言

  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