通过tsung对openfire进行性能测试,单服基本没有问题,包括客户端cluster,可以进行登录,聊天,Presence改变等等一系列,但是如果针对跨域的非同服情况,貌似就无能为力了,以下是普通的tsung.xml实例:
<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">
<tsung loglevel="notice" version="1.0">
<clients>
<client host="localhost" use_controller_vm="true"></client>
</clients>
<!-- Server side setup -->
<servers>
<server host="jabber.example.com" port="5225" type="tcp"></server>
</servers>
<load>
<arrivalphase phase="1" duration="1" unit="minute">
<users interarrival="0.01" unit="second"></users>
</arrivalphase>
<arrivalphase phase="2" duration="5" unit="minute">
<users interarrival="0.1" unit="second"></users>
</arrivalphase>
<arrivalphase phase="3" duration="3" unit="minute">
<users interarrival="1" unit="second"></users>
</arrivalphase>
</load>
<!-- JABBER parameters -->
<!-- to synchronise users, use a global acknoledgement -->
<options>
<option type="ts_jabber" name="global_number" value="300"></option>
<option type="ts_jabber" name="userid_max" value="500"></option>
<option type="ts_jabber" name="domain"
value="jabber.example.com">
</option>
<option type="ts_jabber" name="username" value="tsung"></option>
<option type="ts_jabber" name="passwd" value="p4ssw0rd"></option>
</options>
<sessions>
<!-- for each user we do the same -->
<session probability="100" name="jabber-example"
type="ts_jabber">
<!-- connect and logon -->
<request>
<jabber type="connect" ack="no_ack"></jabber>
</request>
<thinktime value="2"></thinktime>
<transaction name="authenticate">
<!-- ack=global: wait for all other users to authenticate -->
<request>
<jabber type="auth_get" ack="global"></jabber>
</request>
<request>
<jabber type="auth_set_plain" ack="local"></jabber>
</request>
</transaction>
<request>
<jabber type="presence:initial" ack="no_ack" />
</request>
<thinktime value="2"></thinktime>
<transaction name="roster">
<request>
<jabber type="iq:roster:get" ack="local"></jabber>
</request>
</transaction>
<thinktime value="5"></thinktime>
<transaction name="online">
<request>
<jabber type="chat" ack="no_ack" size="16"
destination="online">
</jabber>
</request>
</transaction>
<!-- add another user to the roster; delete him later -->
<transaction name="rosteradd">
<request>
<jabber type="iq:roster:add" ack="no_ack"
destination="online">
</jabber>
</request>
<request>
<jabber type="presence:subscribe" ack="no_ack" />
</request>
</transaction>
<thinktime value="1"></thinktime>
<!-- write some message to other online and offline (this will cause some errors) users -->
<transaction name="online">
<request>
<jabber type="chat" ack="no_ack" size="56"
destination="online">
</jabber>
</request>
</transaction>
<thinktime value="4"></thinktime>
<transaction name="online">
<request>
<jabber type="chat" ack="no_ack" size="16"
destination="online">
</jabber>
</request>
</transaction>
<transaction name="rosterrename">
<request>
<jabber type="iq:roster:rename" ack="no_ack"></jabber>
</request>
</transaction>
<thinktime value="3"></thinktime>
<transaction name="offline">
<request>
<jabber type="chat" ack="no_ack" size="56"
destination="offline">
</jabber>
</request>
</transaction>
<thinktime value="3"></thinktime>
<transaction name="rosterdelete">
<request>
<jabber type="iq:roster:remove" ack="no_ack"></jabber>
</request>
</transaction>
<!-- and disconnect -->
<transaction name="close">
<request>
<jabber type="close" ack="no_ack"></jabber>
</request>
</transaction>
</session>
</sessions>
</tsung>
2009.08.17添加之疑难解答
:
后来了解到raw type,在tsung用户手册
中有提到:
raw XML
You can send raw XML data to the server using the raw
type:
|
|
<jabber type="raw" ack="no_ack" data="<stream>foo</stream>"></jabber>
|
|
|
|
|
Beware: you must encode XML characters like <
,>
, &
, etc.
又经拦截查看到原始Message体如:
<message to='test3@test7' from='user1@test6/tsung'><body>zhouhui</body> </message>
转化成tsung脚本:
<jabber type="raw" ack="no_ack" data="<message to='test3@test7'><body>zhouhui</body> </message>"></jabber>
经测试成功发送跨域消息。
想想原因一开始就是没了解到有个raw type,都往chat type里钻了
相关链接:http://wwwzhouhui.iteye.com/blog/451298
分享到:
相关推荐
### TSUNG测试总结 #### 一、TSUNG概述 TSUNG是一款开源的负载与压力测试工具,主要用于评估系统的性能及稳定性。它支持多种协议,包括但不限于XMPP、HTTP、MySQL等,并且具备支持集群和高效运行的特点。由于其...
Tsung是一款开源的多协议负载测试工具,它能够模拟大量用户并发访问服务器,用于测试系统的性能和稳定性。Tsung支持多种协议,包括HTTP、HTTPS、FTP、SOAP、XML-RPC、 Jabber/XMPP、MySQL、PostgreSQL等,以及我们...
MQTT压力测试之Tsung的使用 MQTT压力测试之Tsung的使用
### Tsung负载测试Tigase知识点详解 #### Tsung概述 Tsung是一款高效的压力测试工具,采用Erlang语言开发,能够支持多种网络协议,包括XMPP、HTTP、MySQL等。其独特的分布式特性使得它能够在单机环境下模拟大量...
tsung是用erlang开发的一款简单易用的压力测试工具,目前仅支持linux各版本系统安装,有tar.gz和deb两种安装文件, 目前我们测试用的是CentOS或RedHat两种操作系统,因此选择tar.gz安装文件,总的来说tsung工具有...
对于并发访问测试,你可以从`tsung/examples`中复制`jabber_roster.xml`并进行类似上述的配置修改,重点关注用户之间的会话建立和消息发送。 ## 7. 调整系统参数 在进行大规模并发测试时,可能需要增加操作系统的...
4. **结束阶段**:测试完成后,使用 `tsung stop` 命令停止测试,Tsung 会生成详细的测试报告,分析结果可以帮助我们了解系统在压力下的表现。 对于初学者,理解 Tsung 的基本概念和配置语法是至关重要的。同时,...
tsung高并发测试工具搭建(自己亲测,详细的一逼),改文档是自己一步一步摸索出来的,主要是安装tsung整个过程很详细,搭过的人,知道tsung的搭建依赖很恶心,不是一时半会能搞出来的
压力测试 压力测试 tsung linux
**Tsung 1.6.0 - 开源多协议分布式负载测试工具** Tsung是一个功能强大的、基于Erlang编程语言开发的开源负载测试工具。它设计用于模拟大量用户并发访问,以测试网络服务和系统的性能及稳定性。Tsung不仅支持HTTP、...
tsung的测试脚本,包含发送单人消息,群组消息,获取花名册等
对于XMPP即时通讯服务器,Tsung可以模拟消息传递和连接状态的测试。 用户手册还解释了如何使用代理记录器功能,该功能允许用户记录特定协议的交互过程,并在之后的测试中重放,这在测试具有复杂交互的应用时特别...
Openfire 3.9.3 Load Test Tsung配置xml,10万用户下集群测试的Tsung压力测试工具的jabber_cluster.xml,session 5分钟
Tsung 是一款基于 Erlang 开发的高性能压力测试工具,主要用于评估系统的并发处理能力。它支持多种协议,包括 HTTP、WebDAV、Jabber/XMPP、PostgreSQL、LDAP 和 MySQL,并且具备强大的分布式负载生成能力。Tsung 的...
使用Tsung进行压力测试时,用户可以自定义测试场景,配置不同的用户行为模型,比如模拟新用户注册、老用户登录、用户间消息传递等。此外,Tsung还支持多种协议的测试,包括HTTP、HTTPS、FTP、TCP、UDP等,这使得它不...
- **消息持久化**:测试消息在队列中的持久化能力。 ##### 2.9 MQTT相关特性 - **订阅/发布模式**:模拟MQTT协议下的订阅和发布操作。 - **QoS级别**:测试不同服务质量级别的消息传递效果。 ##### 2.10 LDAP相关...
**Tsung 1.3.3:Linux环境下的强大压力测试工具** Tsung是一个高度可扩展、分布式的多协议负载和性能测试工具,专为模拟大量用户并发访问系统而设计。它支持多种网络协议,包括HTTP、HTTPS、FTP、TCP、UDP、jabber/...
关于tsung工具的安装步骤以及使用过程中会遇到的常见问题解答
"Stronger:基于tsung的负载测试服务"这个项目,就是针对这一需求而设计的,它利用开源工具Tsung来构建强大的负载测试解决方案。Tsung是一个分布式、多协议的负载和性能测试工具,适用于多种网络服务,如HTTP、FTP、...
`Tsung` 是一个开源的负载测试工具,广泛用于评估分布式系统,如 Web 应用、数据库和 LDAP 服务器等。它支持多种协议,包括 HTTP、HTTPS、FTP、TCP 和ejabberd 等。`Tsung` 的强大之处在于它的可扩展性和灵活性,...