<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/local/share/tsung/tsung-1.0.dtd"[
<!ENTITY ecstore SYSTEM "/root/.tsung/ecstore.xml">
]>
<!-- loglevel:工具写日志的标识,级别默认是"info",长时间运行建议调整为error -->
<!-- dumptraffic:运行的调试信息dump文件,如需要看脚本是否正确可以设置为"true",级别默认是"false",长时间运行建议调整为false -->
<tsung loglevel="notice" version="1.0">
<!-- Client side setup -->
<!-- 集群Client设置 -->
<!-- host必须是主机名,不能是IP地址 -->
<!-- weight: 节点上面用户的比例,一般设置为1即可 -->
<!-- maxusers: 一般设置为800,3000即可,根据机器配置来设置大小 超过这个数目
会自动开启更多的节点-->
<!-- cpu: 根据机器硬件配置来设置,如果是4核CPU,最佳设置为3,以此类推 -->
<clients>
<client host="localhost" use_controller_vm="true"></client>
</clients>
<!-- Server side setup -->
<!-- host: 填别名,需要先去host文件配置 -->
<!-- port: 填可用对外端口,一般80 -->
<!-- type: 协议类型,tsung支持tcp/udp,根据自己的需要 -->
<!-- weight 设置权重,整数型 -->
<servers>
<server host="192.168.1.3" port="80" type="tcp"></server>
</servers>
<!-- 监控(cpu, network, memory). 使用erlang或SNMP,erlang是默认值
但是要保证监控的机器和server可以互相访问,装有erlang,否则用snmp -->
<!-- 默认的snmp端口是161 默认的版本是v1 -->
<monitoring>
<monitor host="192.168.1.3" type="snmp">
<snmp version="v2" community="public" port="161">
<!-- 统计IO读,单位是blocks/s -->
<oid name="io_sent" value=".1.3.6.1.4.1.2021.11.5.0" ></oid>
<!-- 统计IO写,单位是blocks/s -->
<oid name="io_receive" value=".1.3.6.1.4.1.2021.11.6.0" ></oid>
</snmp>
</monitor>
</monitoring>
<!-- 负载场景设置 -->
<load>
<!-- several arrival phases can be set: for each phase, you can set
the mean inter-arrival time between new clients and the phase
duration -->
<!-- phase:阶段,填数字即可,系统会按顺序执行,可以设置多个阶段组合场景 -->
<!-- duration:持续时段,填数字即可,单位是unit="minute"设置,是分钟
也可设置小时,天,详细情况参考API -->
<!-- arrivalrate:虚拟用户数,填写数字即可,一般最大800,如过机器配置好,可自己调试最佳参数
有效单位unit="second" 是秒,每秒虚拟300个虚拟用户,实际执行情况可能超过,也可能达不到,需要根据调试得到最佳参数 -->
<!-- interarrival: 时间间隔默认是2秒产生一个用户 这个选项可以和arrivalrate互相调换 -->
<!-- maxnumber: 这个是设置最大用户数,所产生的总用户数不会超过这个 -->
<arrivalphase phase="1" duration="10" unit="minute">
<users arrivalrate="50" unit="second"></users>
</arrivalphase>
<!-- 如果你想设置分时间阶段的会话可以这样,这个这里的session必须是录制的脚本或者自己添加的session -->
<user session="session1" start_time="185" unit="second"></user>
<user session="session2" start_time="10" unit="minute"></user>
<user session="session3" start_time="11" unit="minute"></user>
</load>
<options>
<option type="ts_http" name="user_agent">
<!-- 设置浏览器类型 probability为所占总的浏览器类别的百分比 -->
<user_agent probability="80">Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Galeon/1.3.21</user_agent>
<user_agent probability="20">Mozilla/5.0 (Windows; U; Windows NT 5.2; fr-FR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4</user_agent>
</option>
</options>
<!-- start a session for a http user. the probability is the
frequency of this type os session. The sum of all session's
probabilities must be 100 -->
<sessions>
<!-- 设置多个session
weight 权重 -->
<session name="session1" weight="2" type="ts_http">
<!-- 变量的设置需要在session中设置 -->
<!-- 如果是引用外部的csv文件需要先设置fileid-->
<options>
<option name="file_server" id="user_list" value="users.csv"></option>
</options>
<!-- sourcetype:根据需求,参考API,我这里是csv文件 -->
<!-- fileid:根据tsung.xml内的option文件操作的id一致 -->
<!-- order:我这里选择的random随机,根据需求参考API -->
<!-- delimiter: 设置分割符 也就是上边csv文件中存储的账号密码之间的连接符 -->
<!-- name:这个变量的名称 -->
<setdynvars sourcetype="file" fileid="user_list" order="random">
<var name="userid" ></var>
</setdynvars>
<!-- sourcetype:根据需求,参考API,我这里是csv文件 -->
<!-- fileid:根据tsung.xml内的option文件操作的id一致 -->
<!-- order:我这里选择的random随机,根据需求参考API -->
<!-- name:这个变量的名称 -->
<setdynvars sourcetype="file" fileid="userdb" order="random">
<var name="user" ></var>
</setdynvars>
<!-- sourcetype:根据需求,参考API,random_number随机数字 -->
<!-- start:开始数字 -->
<!-- end:结束数字 -->
<!-- name:这个变量的名称 -->
<setdynvars sourcetype="random_number" start="1" end="40">
<var name="rndint" ></var>
</setdynvars>
<!-- 在request中需要指定subst="true"来使用替换 -->
<request subst="true"></request>
<!-- 在手动指定的session中的某个请求中加入等待时间,也可以在录制的脚本中加入,下面是随机等待时间 -->
<thinktime value='%%_rndthink%%' random='true'></thinktime>
</session>
<session name="session2" weight="1" type="ts_http"></session>
<!-- 只有一个录制的session的时候可以这样调用 -->
&ecstore;
</sessions>
</tsung>
<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/local/share/tsung/tsung-1.0.dtd">
<tsung loglevel="notice" version="1.0">
<!-- Client side setup -->
<clients>
<client host="localhost" use_controller_vm="true" maxusers="9999"/>
</clients>
<!-- Server side setup -->
<servers>
<server host="www.demo.com" port="80" type="tcp"></server>
</servers>
<!-- to start os monitoring (cpu, network, memory). Use an erlang
agent on the remote machine or SNMP. erlang is the default -->
<load>
<!-- several arrival phases can be set: for each phase, you can set
the mean inter-arrival time between new clients and the phase
duration -->
<arrivalphase phase="1" duration="120" unit="minute">
<users arrivalrate="15" unit="second"/>
</arrivalphase>
<arrivalphase phase="2" duration="120" unit="minute">
<users arrivalrate="20" unit="second"/>
</arrivalphase>
<arrivalphase phase="3" duration="120" unit="minute">
<users arrivalrate="25" unit="second"/>
</arrivalphase>
<arrivalphase phase="4" duration="120" unit="minute">
<users arrivalrate="30" unit="second"/>
</arrivalphase>
</load>
<options>
<option type="ts_http" name="user_agent">
<user_agent probability="80">Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Galeon/1.3.21</user_agent>
<user_agent probability="20">Mozilla/5.0 (Windows; U; Windows NT 5.2; fr-FR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4</user_agent>
</option>
<option name="file_server" id="productname" value="/root/.tsung/productname.csv"/>
<option name="file_server" id="productid" value="/root/.tsung/productid.csv"/>
</options>
<!-- start a session for a http user. the probability is the
frequency of this type os session. The sum of all session's
probabilities must be 100 -->
<sessions>
<session name='index' probability='20' type='ts_http'>
<request>
<http url='/index.php' version='1.1' method='GET'>
<http_header name="Accept-Encoding" value="gzip,deflate"/>
</http>
</request>
</session>
<session name='search' probability='50' type='ts_http'>
<setdynvars sourcetype="file" fileid="productname" delimiter=";" order="iter">
<var name="goods_name" />
</setdynvars>
<request subst="true">
<http url='/index.php/gallery.html?scontent=%%_goods_name%%' version='1.1' method='GET'>
<http_header name="Accept-Encoding" value="gzip,deflate"/>
</http>
</request>
</session>
<session name='product' probability='21' type='ts_http'>
<setdynvars sourcetype="file" fileid="productid" delimiter=";" order="iter">
<var name="random_id" />
</setdynvars>
<request subst="true">
<http url='/?product-%%_random_id%%.html' version='1.1' method='GET'>
<http_header name="Accept-Encoding" value="gzip,deflate"/>
</http>
</request>
</session>
<session name='radom' probability='3' type='ts_http'>
<request>
<http url='/article-help-l-1.html' version='1.1' method='GET'>
<http_header name="Accept-Encoding" value="gzip,deflate"/>
</http>
</request>
</session>
<session name='radom1' probability='3' type='ts_http'>
<request>
<http url='/article-news-55.html' version='1.1' method='GET'>
<http_header name="Accept-Encoding" value="gzip,deflate"/>
</http>
</request>
</session>
<session name='radom2' probability='3' type='ts_http'>
<request>
<http url='/article-news-l-11.html' version='1.1' method='GET'>
<http_header name="Accept-Encoding" value="gzip,deflate"/>
</http>
</request>
</session>
</sessions>
</tsung>
分享到:
相关推荐
Openfire 3.9.3 Load Test Tsung配置xml,10万用户下集群测试的Tsung压力测试工具的jabber_cluster.xml,session 5分钟
Tsung的XML配置文件包含多个部分,如`load`定义测试的负载模型,`servers`定义服务器信息,`clients`定义客户端设置,`sessions`描述用户行为等。深入理解这些元素的含义和用法是创建有效测试场景的关键。 总之,...
2. **启动阶段**:使用 `tsung start` 命令启动测试,Tsung 会根据配置文件创建虚拟用户并开始发送请求。 3. **运行阶段**:Tsung 持续监控系统性能,并记录各种指标,如响应时间、吞吐量、失败率等。 4. **结束阶段...
在Tsung的测试场景中,`websocket.xml`通常是一个配置文件,用于定义如何与WebSocket服务器交互的细节。这个文件可能包含以下关键元素: 1. **服务器定义**:指定WebSocket服务器的地址和端口。 2. **用户负载**:...
4. **配置测试脚本**:编辑`~/.tsung/tsung.xml`文件,该文件是Tsung的默认配置文件。可以通过参考`/usr/share/doc/tsung/examples/`中的示例文件(如jabber.xml)来创建自己的测试脚本。 5. **运行测试**:启动...
2. **配置测试场景**:编辑`tsung.xml`配置文件,定义测试目标、用户负载模型、会话脚本等。例如,配置HTTP请求、设置并发用户数、定义事务等。 3. **启动Tsung**:运行`tsung start`命令启动负载测试,可以指定...
- **配置文件**: `tsung.xml`是配置测试场景的主要文件,需要根据实际需求进行编辑或替换。 #### 五、示例:HTTP压力测试 - **配置文件**: 可以使用TSUNG自带的示例配置文件`http_simple.xml`作为基础。 - **运行...
该配置文件定义了Tsung的测试行为,包括文件结构、客户端与服务器的配置、监控选项以及如何定义负载进展、设置选项和会话控制。Tsung的高级特性包括动态替换、读取外部文件、动态变量、检查服务器响应和循环等。 在...
相关文件列表 ------ | —tsung-1.5.0.tar.gz —libtemplate-perl_2.20.orig.tar.gz —gnuplot-4.4.0.tar.gz —otp_src_R15B.tar.gz —perl-HTML-Tagset-3.10-2.1.1.noarch.rpm —perl-...
MQTT压力测试之Tsung的使用 MQTT压力测试之Tsung的使用
### Tsung 安装与使用详解 #### 一、Tsung 概述 Tsung 是一款基于 Erlang 开发的高性能压力测试工具,主要用于评估系统的并发处理能力。它支持多种协议,包括 HTTP、WebDAV、Jabber/XMPP、PostgreSQL、LDAP 和 ...
压力测试 压力测试 tsung linux
tsung的测试脚本,包含发送单人消息,群组消息,获取花名册等
tsung是用erlang开发的一款简单易用的压力测试工具,目前仅支持linux各版本系统安装,有tar.gz和deb两种安装文件, 目前我们测试用的是CentOS或RedHat两种操作系统,因此选择tar.gz安装文件,总的来说tsung工具有...
- **配置文件格式**:介绍tsung.xml文件的基本结构。 - **元素说明**:解释各个配置项的作用。 ##### 6.2 客户端和服务端 - **客户端配置**:指定参与测试的客户端数量及分布。 - **服务端配置**:设置被测服务的...
下面我们将深入探讨Tsung的主要特点、安装过程、配置方法以及如何执行压力测试。 1. **主要特点** - **分布式测试**:Tsung可以部署在多个节点上,模拟来自不同地理位置的并发用户,更真实地反映出实际的负载情况...
关于tsung工具的安装步骤以及使用过程中会遇到的常见问题解答
tsung高并发测试工具搭建(自己亲测,详细的一逼),改文档是自己一步一步摸索出来的,主要是安装tsung整个过程很详细,搭过的人,知道tsung的搭建依赖很恶心,不是一时半会能搞出来的
在【压缩包子文件的文件名称列表】中,只有一个条目"tsung-1.5.1",这通常意味着压缩包内包含Tsung的源代码、文档、配置示例和可能的二进制文件或编译脚本。用户在解压后,需要按照官方文档或常见安装步骤进行编译和...
4. **解析 Tsung JSON 报告**:将你的 `Tsung` 测试报告导入工具,并指定到项目配置文件中。 5. **运行应用**:使用 `npm start` 启动应用,浏览器将会自动打开显示 `React` 应用的页面。 6. **查看分析结果**:在...