环境准备

  安装Tsung、安装openfire、安装Spark

Tsung使用

要对openfire进行压力测试,因此我们主要讲解如何利用jabber_register.xml在openfire上面注册用户,以及利用jabber.xml模拟用户登录openfire上线、离开、会话操作的压力测试

一、注册用户

1、执行以下命令进入到安装目录下的examples目录:

[root@localhost ~]# cd /usr/local/tsung/share/doc/tsung/examples/
[root@localhost examples]# ll
total 64
-rw-r--r--. 1 root root 3834 Mar 7 03:09 fs-nfs.xml
-rw-r--r--. 1 root root 6391 Mar 7 03:09 http_distributed.xml
-rw-r--r--. 1 root root 2609 Mar 7 03:09 http_setdynvars.xml
-rw-r--r--. 1 root root 2215 Mar 7 03:09 http_simple.xml
-rw-r--r--. 1 root root 3140 Mar 7 03:09 jabber_muc.xml
-rw-r--r--. 1 root root 1727 Mar 7 03:09 jabber_privacy.xml
-rw-r--r--. 1 root root 1332 Mar 7 03:09 jabber_register.xml
-rw-r--r--. 1 root root 2762 Mar 7 03:09 jabber_roster.xml
-rw-r--r--. 1 root root 4225 Mar 7 03:09 jabber.xml
-rw-r--r--. 1 root root 2506 Mar 7 03:09 ldap.xml
-rw-r--r--. 1 root root 1148 Mar 7 03:09 mysql.xml
-rw-r--r--. 1 root root 1833 Mar 7 03:09 pgsql.xml
-rw-r--r--. 1 root root 1211 Mar 7 03:09 thinks2.xml
-rw-r--r--. 1 root root 1221 Mar 7 03:09 thinks.xml

2、修改jabber_register.xml文件

详细的jabber_register.xml

3、将修改后的jabber_register.xml放到/usr/local/tsung目录下

 再进入tsung的bin目录下,找到tsung执行的shell脚本文件

[root@localhost examples]# cp jabber_register.xml /usr/local/tsung
[root@localhost examples]# cd /usr/local/tsung/bin
[root@localhost bin]#

4、执行tsung脚本以驱动执行我们修改好的jabber_register.xml脚本,实现向openfire添加用户

[root@localhost bin]#  ./tsung -f   /usr/local/tsung/jabber_register.xml start
Starting Tsung
"Log directory is: /root/.tsung/log/20150311-2253"

5、查看openfire

二、登陆用户模拟发送消息

利用jabber.xml模拟用户登录openfire后执行上线、离开、忙碌、下线、发送消息等操作

1、修改jabber.xml文件(存储路径/usr/local/tsung/share/doc/tsung/examples/)

1)模拟用户上线、下线、发送消息的操作时jabber.xml配置如下:

  • 模拟上线与发消息脚本:
 <transaction name="online">
<request> <jabber type="chat" ack="no_ack" size="16" destination="online"></jabber> </request>
<request>
<jabber type="raw" ack="no_ack" data="&lt;message to='admin@myopenfire'&gt;&lt;body&gt;zhouhui&lt;/body&gt; &lt;/message&gt;"></jabber>
</request>
</transaction>
  • 模拟下线脚本:
 <thinktime value="30"></thinktime>

    <transaction name="offline">
<request> <jabber type="chat" ack="no_ack" size="56" destination="offline"></jabber> </request>
<request>
<jabber type="raw" ack="no_ack" data="&lt;message to='admin@myopenfire'&gt;&lt;body&gt;zhouhui&lt;/body&gt; &lt;/message&gt;"></jabber>
</request>
</transaction>

jabber.xml

2)模拟用户含有可聊天、离开、忙碌状态时jabber.xml配置如下:

  • 模拟空闲,可聊天状态脚本:
<transaction name="chat">
<request>
<jabber type="presence:broadcast" show="chat" status="Avaliable to chat!" ack="no_ack"/>
</request>
</transaction>
  • 模拟离开状态脚本:
<transaction name="away">
<request>
<jabber type="presence:broadcast" show="away" status="Be right back ..." ack="no_ack"/>
</request>
</transaction>
  • 模拟请勿打扰状态脚本:
<transaction name="dnd">
<request>
<jabber type="presence:broadcast" show="dnd" status="Don't bother me!" ack="no_ack"/>
</request>
</transaction>

2、将修改后的jabber.xml放到/usr/local/tsung目录下

[root@localhost examples]# cp jabber.xml /usr/local/tsung
[root@localhost examples]# cd /usr/local/tsung/bin
[root@localhost bin]#

3、 执行jabber.xml模拟用户上线、下线、发送消息等操作

[root@localhost bin]#  ./tsung -f   /usr/local/tsung/jabber.xml start
Starting Tsung
"Log directory is: /root/.tsung/log/20150311-2331"

4、查看用户状态(登录openfire查看或者登录spark查看)

若要查看是否成功发送消息则要使用spark聊天工具(可以去openfire官网下载)

1)登录openfire查看:

2)登录spark聊天工具查看

若使用spark查看其他人员状态时,必须人员双方相互注册为好友才能看到对方的状态变化,若仅验证消息接收,则无需注册好友

如:查看好友状态

三、生成报表

启动Tsung后,Tsung会输出log的存放路径

Starting Tsung
"Log directory is: /root/.tsung/log/20150311-2256"

1、等待测试完毕,进入log目录(只有输出了log日志才会自动log目录,默认路径:/root/.tsung/log)

生成统计图表

[root@localhost bin]# cd /root/.tsung/log/20150311-2256
[root@localhost 20150311-2256]# /usr/local/tsung/lib/tsung/bin/tsung_stats.pl
creating subdirectory data
creating subdirectory gnuplot_scripts
creating subdirectory images
warn, last interval (2) not equal to the first, use the first one (10)
No data for Event
No data for Async
No data for Errors

注意:一定要先进入log目录,才能生成统计图表。

2、查看统计图表

使用xftp工具,将/root/.tsung/log/20150311-2256目录下的统计图表文件report.html下载到本地的Windows操作系统上进行查看。

用IE或firefox等浏览器打开产生的html文件,就能查看本次测试的结果(参数含义见后面说明):

四、遇到的问题

1、 配置文件如果有问题或者运行中间强行关闭的情况下,有时会出现进程未关闭的情况,下次运行会出错,使用下面的命令看是否有未杀死的进程。

[root@localhost bin]# ps aux | grep erlang
root 25161 0.0 0.0 10828 428 ? S Mar10 0:00 /usr/local/erlang/lib/erlang/erts-5.8.5/bin/epmd -daemon
root 27451 0.0 0.0 103240 868 pts/0 S+ 01:05 0:00 grep erlang

Tsung测试openfire服务器的更多相关文章

  1. 用tsung测试openfire 服务器性能

    最近公司需要做一个有聊天功能的应用,客户讲的是很宏大,用户超多,以前搞过openfire,但没有深入的去了解,就想用它来搞,而且是用 java写的,想扩展也容易些,但在性能上一直担忧,想测试一下它的性 ...

  2. (转)基于即时通信和LBS技术的位置感知服务(三):搭建Openfire服务器+测试2款IM客户端

    主要包含4个章节: 1. Java 领域的即时通信的解决方案 2. 搭建 Openfire 服务器 3. 使用客户端测试我们搭建的 Openfire 服务器 4. Smack 和 ASmack 一.J ...

  3. tsung 对 openfire 压力测试

    tsung 对 openfire 压力测试   1. 参考 http://blog.csdn.net/foxisme2/article/details/7521139 http://blog.csdn ...

  4. Tsung测试Tigase

    用两台主机坐Tigase的Tsung测试,其中1台运行Tigase,另1台运行Tsung. 1.Tigase服务器设置 tigase.conf: #osgiEnabled=(true|false) # ...

  5. iOS - XMPP Openfire 服务器的搭建

    前言 提前下载好相关软件,且安装目录最好安装在全英文路径下.如果路径有中文名,那么可能会出现一些莫名其妙的问题. 提前准备好的软件: jdk-8u91-macosx-x64.dmg mysql-5.7 ...

  6. Smack 结合 Openfire服务器,建立IM通信,发送聊天消息

    在文章开始,请你了解和熟悉openfire方面的相关知识,这样对你理解下面代码以及下面代码的用途有很好的了解.同时,你可能需要安装一个简单的CS聊天工具,来测试你的代码是否成功的在openfire服务 ...

  7. JMeter测试TCP服务器遇到的一个奇怪问题

    今天工作需要测TCP服务器的压力,因为tsung测试TCP需要写的脚本实在头大,于是换了JMETER来搞压力测试.在实际测试的过程中,遇到了一个很奇怪的问题,就是发了数据包以后,JMeter不停地报5 ...

  8. 基于XMPP协议(openfire服务器)的消息推送实现

    转自:http://blog.csdn.net/nomousewch/article/details/8088277 最近好像有不少朋友关注Android客户端消息推送的实现,我在之前的项目中用到过J ...

  9. ios即时通讯客户端开发之-mac上搭建openfire服务器

    一.下载并安装openfire 1.到http://www.igniterealtime.org/downloads/index.jsp下载最新openfire for mac版 比如:Openfir ...

随机推荐

  1. mysql并发insert deadlock分析以及解决,无delete/update/for update

    关于并发insert操作发生deadlock这个情况,一直有很多争议,而且网上的帖子所有的例证和模拟其实不一定反映了真实的情况,例如:https://www.percona.com/blog/2012 ...

  2. 线上mysql内存持续增长直至内存溢出被killed分析(已解决)

    来新公司前,领导就说了,线上生产环境Mysql库经常会发生日间内存爆掉被killed的情况,结果来到这第一天,第一件事就是要根据线上服务器配置优化配置,同时必须找出现在mysql内存持续增加爆掉的原因 ...

  3. C语言动态调用库(转)

    转自:http://cloverprince.iteye.com/blog/481309 现有一个主程序用C语言写成.现在要允许第三方开发人员编写扩展的模块,约定第三方开发的模块必须提供一系列已知名称 ...

  4. 最近提交并被合并的 jDiameter pull request 31 解决的问题

    使用过程中发现的问题都提交并合并了,应该会出现在1.7.0版本中: https://github.com/RestComm/jdiameter/pull/31 修复多个超时事件同时发生的问题. 修复B ...

  5. Linux 学习手记(5):使用Vim文本编辑器

    Vim是从vi发展而来的文本编辑器.vi是Linux及类Unix系统中主流的命令行文本编辑器,Vim 除了对vi功能上进行了加强,还加入了对GUI的支持.绝大多数的Linux系统上均安装了vim,vi ...

  6. [原创]html5游戏_五线谱打音符

    html5手机游戏—五线谱打音符 1.[用五线谱打唱名] 2.[用唱名打五线谱] 3.[无限练习模式] 用来熟悉五线谱上音符的位置 代码不难,这回注释还是有认真写的[只是废代码没有全部删除...] 效 ...

  7. jquery实现拖拽以及jquery监听事件的写法

    很久之前写了一个jquery3D楼盘在线选择,这么一个插件,插件很简单,因为后期项目中没有实际用到,因此,有些地方不是很完善,后面也懒得再进行修改维护了.最近放到github上面,但是也少有人问津及s ...

  8. 基于h5的图片无刷新上传(uploadifive)

    基于h5的图片无刷新上传(uploadifive) uploadifive简介 了解uploadify之前,首先了解来一下什么是uploadify,uploadfy官网,uploadify和uploa ...

  9. Python数据结构与算法--数据类型

    从数据类型开始 Python支持面向对象的编程范式,这意味着Python把数据看成解决问题的关键. 在Python中,类似其他的面向对象的编程语言, 我们定义一个类,用来描述数据是什么 (状态) 和数 ...

  10. NSInvocation

    NSInvocation 基本简介 NSInvocation是一个静态描绘的OC消息,也就是说,它是一个动作,这个动作可以变成一个对象.NSInvocation对象在对象和对象之间和应用程序和应用程序 ...