在上一篇转载来的博客(戳我打开)里讲完了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已经开始工作了,然后我们就静静的看着它装逼,啊抱歉不是,是静静的等它完成。
完成了之后,我们可以查看一下是否生成了我们需要的东东
OK,生成了我们需要的结果,但是这样儿的,没法儿看啊,对了,还记得我们在上一篇安装教程里使用的那个perl的脚本嘛?我们来生成一下HTML页面:
这里我是简单的测试,而且测试也不是我的专业,所以我只是把tsung命令加入了path,那么如果是测试专业的同学们需要注意了,你可能需要把这个脚本的路径,也加入到path中去,这样儿后面使用起来就更加方便啦。那么我们把生成的HTML页面导出来,或者直接配置好HTTP服务器,那么就可以进行分析了。本次测试的结果大概是这么一个样子的:
然后你就可以好好根据测试生成的报告,进行分析了。
2015年1月17日,EricTang 记