tsung参考文档说明¶
默认编码¶
默认编码为utf-8,你可以根据需要进行修改,如:
<?xml version=”1.0″ encoding=”ISO-8859-1″?>
配置文件的整体结构¶
它是由下面这些标签构成:
顶级标签<tsung>
客户端标签<clients>
服务端标签<servers>
监控标签<monitor>
负载标签<load>
选项标签<options>
过程标签<sessions>
顶级标签¶
顶级标签是tsung,如:
<?xml version=”1.0″?>
<!DOCTYPE tsung SYSTEM “/usr/share/tsung/tsung-1.0.dtd” [] >
<tsung loglevel=”info”>
…
</tsung>
参数:
dumptraffic:
* true:所有的通信都会被记录,注:这会大大降低tsung速度,一般是用于调试
* light:只转储前44字节
loglevel:
* emergency
* critical
* error
* warning(推荐)
* notice (默认)
* info
* debug(需要察看详细信息时,注:使用这个属性时要用make debug重新编译tsung)
客户端标签与服务端标签(这两个有关联,需对照理解)¶
简单设置:
<clients>
<client host=”localhost” use_controller_vm=”true”/>
</clients>
<servers>
<server host=”127.0.0.1″ port=”80″ type=”tcp”></server>
</servers>
高级设置:
<clients>
<client host=”louxor” weight=”1″ maxusers=”800″>
<ip value=”10.9.195.12″></ip>
<ip value=”10.9.195.13″></ip>
</client>
<client host=”memphis” weight=”3″ maxusers=”600″ cpu=”2″/>
</clients>
<servers>
<server host=”10.9.195.1″ port=”8080″ type=”tcp”></server>
</servers>
监控标签¶
tsung监控多个远程服务器.可以在<monitor>标签中配置.可统计的数据有:
* cpu使用情况
* 平均的工作量情况
* 内存利用情况
你可以从作业调试器得到监控结点,如:
<monitor batch=”true” host=”torque” type=”erlang”></monitor>
注:这儿支持多种类型的远程代理(默认是erlang)
负载标签¶
随机生成用户:
<load>
<arrivalphase phase="1" duration=”10″ unit=”minute”>
<users interarrival=”2″ unit=”second”></users>
</arrivalphase>
<arrivalphase phase="2" duration=”10″ unit=”minute”>
<users interarrival=”1″ unit=”second”></users>
</arrivalphase>
<arrivalphase phase="3" duration=”10″ unit=”minute”>
<users interarrival=”0.1″ unit=”second”></users>
</arrivalphase>
</load>
interarrival:
% 第2阶段10分钟,每1秒新增1个用户
<arrivalphase phase="2" duration=”10″ unit=”minute”>
<users interarrival=”1″ unit=”second”></users>
</arrivalphase>
arrivalrate:
% 第1阶段10分钟, 每秒新增10个用户
<arrivalphase phase="1" duration="10" unit="minute">
<users arrivalrate="10" unit="second"></users>
</arrivalphase>
注:还可以用load标签中用loop属性来让整个过程执行多次,如:loop=’2′的意思是这序列被循环两次,所以整天负载被执行三次。(这个要在版本1.2.2之后可用)
静态生成用户:
你想在测试的过程中在指定的时间上启动给定的session,你的愿望在1.3.1版本之后可以实现:
<load>
<arrivalphase phase=”1″ duration=”10″ unit=”minute”>
<users interarrival=”2″ unit=”second”></users>
</arrivalphase>
<user session=”http-example” start_time=”185″ unit=”second”></user>
<user session=”http-example” start_time=”10″ unit=”minute”></user>
<user session=”foo” start_time=”11″ unit=”minute”></user>
</load>
<sessions>
<session name=”http-example” probability=”0″ type=”ts_http”>
<request> <http url=”/” method=”GET”></http> </request>
</session>
<session name=”foo” probability=”100″ type=”ts_http”>
<request> <http url=”/” method=”GET”></http> </request>
</session>
<sessions>
注: 在这个例子中,有两个session,一个的probability为“0”(因此在第一阶段不会被执行,就是随机生成用户部分), 而另一个是100。在测试开始之后,我们设置3个用户分别启动,第一个在3分5秒(执行http-example session)启动,第二个在10分钟后启动(http-example session),最后一个在11分钟后启动(foo session)。
负载测试的过程:
默认情况下,tsung在所有用户都完成他们的session之后结束,因此这会比用户生成的过程要长的多。
如果你想要停止tsung而不管阶段是否完成,也不管是否有session正处于激活状态。
那么你可以在load标签中增加duration属性(版本1.3.2后有效):
<load duration=”1″ unit=”hour”>
<arrivalphase phase=”1″ duration=”10″ unit=”minute”>
<users interarrival=”2″ unit=”second”></users>
</arrivalphase>
</load>
当前最大值是50天,unit可以是”second”, “minute”, “hour”
option标签¶
全局变量的默认值可以在这儿进行设定,比如:
* 场景中两次请求间的思考时间
* ssl加密算法
* tcp/udp缓存大小(默认是32K)
如果override设置为true,这些值会把session配置文件中的对应值覆盖:
<option name=”thinktime” value=”3″ random=”false” override=”true”/>
<option name=”ssl_ciphers” value=”EXP1024-RC4-SHA,EDH-RSA-DES-CBC3-SHA”/>
<option name=”tcp_snd_buffer” value=”16384″></option>
<option name=”tcp_rcv_buffer” value=”16384″></option>
<option name=”udp_snd_buffer” value=”16384″></option>
<option name=”udp_rcv_buffer” value=”16384″></option>
XMPP/Jabber 选项:
暂略…
http 选项:
对应http,你可以设定UserAgent的值[版本1.1.0后]
对每个user_agent都有一个probability属性(所有的probability值的和是100),如:
<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>