使用Tsung测试Openfire服务器

时间:2021-06-22 11:41:03

在上一篇转载来的博客(戳我打开)里讲完了Tsung的安装以及基本的测试,接下来我们这篇就开始测试我们的Openfire服务器了。

这里贴出Openfire的测试脚本:需要自行保存为.xml文件

<?xml version="1.0" ?>
<!DOCTYPE tsung SYSTEM "/usr/local/tsung/share/tsung/tsung-1.0.dtd">
<tsung loglevel="notice" dumptraffic="false" version="1.0">
<clients>
<client host="localhost" use_controller_vm="true" maxusers="30000" />
</clients>
<servers>
<server host='你的Openfire服务器ip或者主机名(主机名需要修改hosts文件)' port='5222' type='tcp' />
</servers>
<load>
<arrivalphase phase="1" duration="15" unit="minute">
<users maxnumber="20000" interarrival="0.0025" unit="second"></users>
</arrivalphase>
</load>

<options>
<option type="ts_jabber" name="global_number" value="5"></option>
<option type="ts_jabber" name="userid_max" value="20000"></option>
<option type="ts_jabber" name="domain" value="erlang-projects.org"></option>
<option type="ts_jabber" name="username" value="tsung"></option>
<option type="ts_jabber" name="passwd" value="tsung"></option>
</options>

<sessions>
<session probability="100" name="jabber-example" type="ts_jabber">

<!-- 连接Openfire服务器 -->
<request>
<jabber type="connect" ack="no_ack"></jabber>
</request>
<thinktime value="2"></thinktime>

<!-- 注册Openfire账户 -->
<request>
<match do="abort" when="match">error</match>
<jabber type="register" ack="local" id="new"></jabber>
</request>

<!-- 进行Openfire登录认证 -->
<transaction name="authenticate">
<request>
<jabber type="auth_get" ack="local"></jabber>
</request>
<request>
<jabber type="auth_set_plain" ack="local"></jabber>
</request>
</transaction>

<!-- 登录后保持在线状态300秒 -->
<request>
<jabber type="presence:initial" ack="no_ack" />
</request>
<thinktime value="300"></thinktime>

<!-- 关闭 -->
<request>
<jabber type="close" ack="no_ack"></jabber>
</request>

</session>
</sessions>

</tsung>

这里简单说一下需要注意的问题:

===================================华丽丽的分割线====================================

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

这里的这个.dtd文件需要指定到你自己的tsung目录下的dtd文件,需要检查一下,我的这个路径未必适合你

2. <client host="localhost" use_controller_vm="true" maxusers="30000" />

这里需要设置一下最大的用户数,否则可能注册了1000个就不会再往下继续注册新用户了

3. <server host='你的Openfire服务器ip或者主机名(主机名需要修改hosts文件)' port='5222' type='tcp' />

这里设置的是要测试的服务器的ip地址、端口号以及连接类型,有些同学在安装Openfire服务器的时候没有指定主机名,那应该会使用默认的本机地址,需要注意一下。

4. <load>
        <arrivalphase phase="1" duration="15" unit="minute">
            <users maxnumber="20000" interarrival="0.0025" unit="second"></users>
        </arrivalphase>
    </load>

这里进行的设置是,测试时间,以及最大的数目

5.     <options>
        <option type="ts_jabber" name="global_number" value="5"></option>
        <option type="ts_jabber" name="userid_max" value="20000"></option>
        <option type="ts_jabber" name="domain" value="erlang-projects.org"></option>
        <option type="ts_jabber" name="username" value="tsung_test_"></option>
        <option type="ts_jabber" name="passwd" value="tsung_test_"></option>
    </options>

这里指的是,注册用户的一些规则,配合第四条注意事项,最终生成的用户名是像tsung_test_1 、tsung_test_2 这样儿的,密码和用户名一致。

==================================华丽丽的分割线===================================

然后呢,保存之后,我们可以在命令行里输入如下指令,进行测试:

tsung -f OpenfireRegisterAndAuthTest.xml start

然后如果没有报错信息的话,会提示如下的信息:

使用Tsung测试Openfire服务器

这个说明Tsung已经开始工作了,然后我们就静静的看着它装逼,啊抱歉不是,是静静的等它完成。

完成了之后,我们可以查看一下是否生成了我们需要的东东

使用Tsung测试Openfire服务器

OK,生成了我们需要的结果,但是这样儿的,没法儿看啊,对了,还记得我们在上一篇安装教程里使用的那个perl的脚本嘛?我们来生成一下HTML页面:

使用Tsung测试Openfire服务器

这里我是简单的测试,而且测试也不是我的专业,所以我只是把tsung命令加入了path,那么如果是测试专业的同学们需要注意了,你可能需要把这个脚本的路径,也加入到path中去,这样儿后面使用起来就更加方便啦。那么我们把生成的HTML页面导出来,或者直接配置好HTTP服务器,那么就可以进行分析了。本次测试的结果大概是这么一个样子的:

使用Tsung测试Openfire服务器

然后你就可以好好根据测试生成的报告,进行分析了。


2015年1月17日,EricTang 记