您的位置:首页 > 运维架构 > Linux

Tsung压力测试文件配置说明

2014-04-29 09:59 459 查看
其实前边说了听过关于Tsung的安装配置使用,就是没有详细的解释过每个东西的配置选项和参数,下面就给出一个我自己整理的配置文件的说明,直接在上边标注的,不要嫌弃哦.

PS:这个文件是不能直接使用的.

001
<?
xml

version
=
"1.0"
?>
002
<!DOCTYPE tsung SYSTEM "/usr/local/tsung/share/tsung/tsung-1.0.dtd"[
003
<!ENTITY mysession1 SYSTEM "/root/.tsung/tsung_recorder20130716-0945.xml">
004
]>
005
<!-- loglevel:工具写日志的标识,级别默认是"info",长时间运行建议调整为error -->
006
<!-- dumptraffic:运行的调试信息dump文件,如需要看脚本是否正确可以设置为"true",级别默认是"false",长时间运行建议调整为false -->
007
<
tsung

loglevel
=
"notice"

version
=
"1.0"
>
008
 
 
009
  
<!-- Client side setup -->
010
  
<!-- 集群Client设置 -->
011
  
<!-- host必须是主机名,不能是IP地址 -->
012
  
<!-- weight: 节点上面用户的比例,一般设置为1即可 -->
013
  
<!-- maxusers: 一般设置为800,3000即可,根据机器配置来设置大小 超过这个数目
014
       
会自动开启更多的节点-->
015
  
<!-- cpu: 根据机器硬件配置来设置,如果是4核CPU,最佳设置为3,以此类推 -->
016
 
 
017
  
<
clients
>
018
    
<
client

host
=
"localhost"

use_controller_vm
=
"true"
/>
019
  
</
clients
>
020
 
 
021
  
<!-- Server side setup -->
022
  
<!-- host: 填别名,需要先去host文件配置 -->
023
  
<!-- port: 填可用对外端口,一般80 -->
024
  
<!-- type: 协议类型,tsung支持tcp/udp,根据自己的需要 -->
025
  
<!-- weight 设置权重,整数型 -->
026
<
servers
>
027
  
<
server

host
=
"192.168.1.3"

port
=
"80"

type
=
"tcp"
></
server
>
028
</
servers
>
029
 
 
030
  
<!-- 监控(cpu, network, memory). 使用erlang或SNMP,erlang是默认值 
031
  
但是要保证监控的机器和server可以互相访问,装有erlang,否则用snmp -->
032
  
<!-- 默认的snmp端口是161 默认的版本是v1 -->
033
  
<
monitoring
>
034
    
<
monitor

host
=
"192.168.1.3"

type
=
"snmp"
>
035
      
<
snmp

version
=
"v2"

community
=
"public"

port
=
"161"
>
036
       
<!-- 统计IO读,单位是blocks/s -->
037
       
<
oid

name
=
"io_sent"

value
=
".1.3.6.1.4.1.2021.11.5.0"

></
oid
>
038
       
<!-- 统计IO写,单位是blocks/s -->
039
       
<
oid

name
=
"io_receive"

value
=
".1.3.6.1.4.1.2021.11.6.0"

></
oid
>
040
      
</
snmp
>
041
    
</
monitor
>
042
  
</
monitoring
>
043
 
 
044
  
<!-- 负载场景设置 -->
045
  
<
load
>
046
  
<!-- several arrival phases can be set: for each phase, you can set
047
  
the mean inter-arrival time between new clients and the phase
048
  
duration -->
049
  
<!-- phase:阶段,填数字即可,系统会按顺序执行,可以设置多个阶段组合场景 -->
050
  
<!-- duration:持续时段,填数字即可,单位是unit="minute"设置,是分钟 
051
  
也可设置小时,天,详细情况参考API -->
052
  
<!-- arrivalrate:虚拟用户数,填写数字即可,一般最大800,如过机器配置好,可自己调试最佳参数 
053
  
有效单位unit="second" 是秒,每秒虚拟300个虚拟用户,实际执行情况可能超过,也可能达不到,需要根据调试得到最佳参数 -->
054
  
<!-- interarrival: 时间间隔默认是2秒产生一个用户 这个选项可以和arrivalrate互相调换 -->
055
  
<!-- maxnumber: 这个是设置最大用户数,所产生的总用户数不会超过这个 -->
056
   
<
arrivalphase

phase
=
"1"

duration
=
"10"

unit
=
"minute"
>
057
     
<
users

arrivalrate
=
"50"

unit
=
"second"
></
users
>
058
   
</
arrivalphase
>
059
   
<!-- 如果你想设置分时间阶段的会话可以这样,这个这里的session必须是录制的脚本或者自己添加的session  -->
060
   
<
user

session
=
"session1"

start_time
=
"185"

unit
=
"second"
></
user
>
061
   
<
user

session
=
"session2"

start_time
=
"10"

unit
=
"minute"
></
user
>
062
   
<
user

session
=
"session3"

start_time
=
"11"

unit
=
"minute"
></
user
>
063
  
</
load
>
064
 
 
065
  
<
options
>
066
   
<
option

type
=
"ts_http"

name
=
"user_agent"
>
067
    
<!-- 设置浏览器类型 probability为所占总的浏览器类别的百分比 -->
068
    
<
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
>
069
    
<
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
>
070
   
</
option
>
071
  
</
options
>
072
 
 
073
  
<!-- start a session for a http user. the probability is the
074
  
frequency of this type os session. The sum of all session's
075
  
probabilities must be 100 -->
076
 
 
077
 
<
sessions
>
078
  
<!-- 设置多个session
079
       
weight 权重 -->
080
  
<
session

name
=
"session1"

weight
=
"2"

type
=
"ts_http"
>
081
 
 
082
   
<!-- 变量的设置需要在session中设置 -->
083
 
 
084
   
<!-- 如果是引用外部的csv文件需要先设置fileid-->
085
   
<
options
>
086
    
<
option

name
=
"file_server"

id
=
"user_list"

value
=
"users.csv"
/>
087
   
</
options
>
088
   
<!-- sourcetype:根据需求,参考API,我这里是csv文件 -->
089
   
<!-- fileid:根据tsung.xml内的option文件操作的id一致 -->
090
   
<!-- order:我这里选择的random随机,根据需求参考API -->
091
   
<!-- delimiter: 设置分割符 也就是上边csv文件中存储的账号密码之间的连接符 -->
092
   
<!-- name:这个变量的名称 -->
093
   
<
setdynvars

sourcetype
=
"file"

fileid
=
"user_list"

order
=
"random"
>
094
    
<
var

name
=
"userid"

/>
095
   
</
setdynvars
>
096
   
<!-- sourcetype:根据需求,参考API,我这里是csv文件 -->
097
   
<!-- fileid:根据tsung.xml内的option文件操作的id一致 -->
098
   
<!-- order:我这里选择的random随机,根据需求参考API -->
099
   
<!-- name:这个变量的名称 -->
100
   
<
setdynvars

sourcetype
=
"file"

fileid
=
"userdb"

order
=
"random"
>
101
    
<
var

name
=
"user"

/>
102
   
</
setdynvars
>
103
   
<!-- sourcetype:根据需求,参考API,random_number随机数字 -->
104
   
<!-- start:开始数字 -->
105
   
<!-- end:结束数字 -->
106
   
<!-- name:这个变量的名称 -->
107
   
<
setdynvars

sourcetype
=
"random_number"

start
=
"1"

end
=
"40"
>
108
    
<
var

name
=
"rndint"

/>
109
   
</
setdynvars
>
110
   
<!-- 在request中需要指定subst="true"来使用替换 -->
111
   
<
request

subst
=
"true"
></
request
>
112
   
<!-- 在手动指定的session中的某个请求中加入等待时间,也可以在录制的脚本中加入,下面是随机等待时间 -->
113
   
<
thinktime

value
=
'%%_rndthink%%'

random
=
'true'
></
thinktime
>
114
  
</
session
>
115
  
<
session

name
=
"session2"

weight
=
"1"

type
=
"ts_http"
></
session
>
116
  
<!-- 只有一个录制的session的时候可以这样调用 -->
117
  
&mysession1;
118
 
</
sessions
>
119
</
tsung
>
我想只要你能够仔细的阅读这个配置文件,就能配置出属于自己的http压力测试的文件,一定要仔细阅读哦~

如果有什么问题可以在下边的评论中提出,我会第一时间回复的~   大家一起交流学习….
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息