Tsung入门资料Word文件下载.docx
《Tsung入门资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《Tsung入门资料Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
yum
install
gcc
-y
2.#
perl
2、安装erlang
Tsung是用erlang写的需要先安装erlang:
#wgethttp:
//www.erlang.org/download/otp_src_17.4.tar.gz
#tar-zxvfotp_src_17.4.tar.gz
#cdotp_src_17.4
#./configure--prefix=/usr/local/erlang
#make
#makeinstall
备注:
在configure时,会报configure:
error:
Nocurseslibraryfunctionsfound错误,这是由于系统缺少ncurses-devel包,安装ncurses-devel包后,重新configure一次:
yuminstall–yncurses-devel
在configure时会报javanotfound,可以在配置加一个—without-javac选项:
./configure--prefix=/home/erlang--without-javac
在configure时还会报一个odbc的disabled,如果你觉得有必要的话,可以安装:
(好像不安装也可以直接make,)
yuminstallunixODBCunixODBC-devel
在configure时还会有其他的错误提醒,可以忽略直接make;
3、安装Tsung
//tsung.erlang-projects.org/dist/tsung-1.5.1.tar.gz
#tar-zxvftsung-1.5.1.tar.gz
#cdtsung-1.5.1
#./configure--prefix=/usr/local/tsung--with-erlang=/usr/local/erlang
4、安装perl的Template
Tsung生成统计报告时需要用到该模板
//cpan.org/modules/by-module/Template/Template-Toolkit-2.24.tar.gz
#tar-zxvfTemplate-Toolkit-2.24.tar.gz
#cdTemplate-Toolkit-2.24
#perlMakefile.PL
#maketest
在perlMakefile.PL时可能会报以下错误:
Can'
tlocateExtUtils/MakeMaker.pmin@INC(@INCcontains:
/usr/local/lib64/perl5/usr/local/share/perl5/usr/lib64/perl5/vendor_perl/usr/share/perl5/vendor_perl/usr/lib64/perl5/usr/share/perl5.)atMakefile.PLline3.
BEGINfailed--compilationabortedatMakefile.PLline3.
编译FCGI的时候报错.google了下,找到答案,只有安装
yuminstallperl-ExtUtils-CBuilderperl-ExtUtils-MakeMaker
就可以了
5、安装gnuplot(图片生成工具)
#yuminstall-ygnuplotgdlibpngzlib
确定gnuplot支持png,输入shell命令:
gnuplot
gnuplot>
setterminal
然后按回车确认是否已经支持png,看到下面这行,说明已经支持了:
1.png
PNG
images
using
libgd
and
TrueType
fonts
退出gnuplot的命令为:
exit
三、
1、实例
先整体了解xml文件的结构,它是由下面这些标签构成
顶级标签<
tsung>
客户端标签<
clients>
服务端标签<
servers>
监控标签<
monitor>
负载标签<
load>
选项标签<
options>
过程标签<
sessions>
2、关于Tsung的monitor配置
Monitor有两种方式,默认采用erlang,另外一种是snmp:
Erlang需要无密码ssh的配置;
Snmp需要安装snmpd服务及相关工具,snmpd.conf配置一开始不容易配置,需要161udp端口;
建议使用snmpd服务,毕竟其他很多测试工具都默认使用snmpd服务监控服务器;
<
!
--tostartosmonitoring(cpu,network,memory).Useanerlang
agentontheremotemachineorSNMP.erlangisthedefault-->
monitoring>
monitorhost="
192.168.2.211"
type="
snmp"
>
<
/monitor>
/monitoring>
注意:
被监控服务器的防火墙尽量是关闭的,serviceiptablesstop
这里使用snmp类型,服务器地址:
192.168.4.146,5222端口,也可以指定端口详见usermanual
我们使用的服务器地址:
192.168.4.146,5222端口(测试地址)
1)编辑xml文件
2)先进入tsung目录下的bin:
cd/usr/local/tsung/bin注:
cd后要加空格linux命令有的地方不加空格无法执行
Tsung执行:
#tsung-fhttp_simple.xmlstart
(指定http_simple.xml执行这个文件,我一般会带上路径并指定生成目录是/log如:
tsung-f/usr/local/share/doc/tsung/examples/jabber_muc100.xml-l/logstart)
3)等待tsung运行完,先进入日志目录注意:
一定要在相应的log目录下,才能生成统计图表:
#cd/root.tsung//log/20130325-1053
4)图表生成:
#tsung_stats
四、测试数据表格、图表
*直接访问每一次测试的log目录下report.html
Table-要点统计
Connect:
连接建立用的时间
page:
每一系列请求的反应时间(apage是一组不包含think-time的一组请求)
Request:
每个请求的响应时间,
Session:
用户会话时间,
由于tsung默认在10sec捕捉一次数据,所以有了最高响应时间平均值(highest10secmean)和最低响应时间平均值(lowest10secmean)、响应时间总平均值(mean),相应请求总数(count),每秒最高发生数(highestrate);
Table-事务统计
Xml中配置了两个事务:
Authenticate:
jabber验证事务,
Close:
用户关闭事务,
其它字段属性(mean等)同table-要点统计
Table-网络吞吐量
Size_rcv:
响应接受数据量,
Size_sent:
请求发送数据量,
Highestrate:
每秒发送或接受数据量,
Total:
共发送或接受数据量;
Table-计数统计
Request_noack:
这个是在jabber协议中才会有的统计,no_ack表示只要请求发送,不需要确认返回即可表示请求成功,
Connected:
同时连接的用户数,
Finish_users_count:
完成测试的用户数,并不表示成功完成,
Users:
实际测试的用户数,
Users_count:
理论要求用户总数;
Table-错误统计
Error_abort_max_conn_retries:
重新尝试连接错误
Error_connect_timeout:
连接超时错误
Error_connect_nxdomain:
不存在的域错误
Error_unknown:
位置错误,异常终止会话,看到日志文件的更多信息
更多错误统计信息查看:
tsung配置资料
Table-服务器监控
Cpu:
cpu使用情况,
Freemem:
内存使用情况,
Load:
负载情况,也称cpuload,满载时load等于cpu个数
Jabber协议测试图表:
五、关于tsung参数设置
Loglevel:
日志级别,会对性能有极大的影响,为了高负载,推荐使用warning级别有:
1.emergency紧急2.critical危险3.error错误4.warning警告5.notice(default)默认6.info信息:
tsungloglevel="
notice"
version="
1.0"
Clients:
测试client为localhost,采用erlang的vm,一个vm最大支持100000(注意:
linux上必须放开ulimit设置:
ulimit–n100000),
Servers:
测试的服务器192.168.2.119端口5222,类型tcp,
改进方向:
Server是集群的入口,下面可以添加多个服务器入口,多个服务器要配置一个weight属性,可以是整数或者浮点数,每个会话根据这个weight随机选择一个服务器:
(在1.5.0以前版本不支持weight属性)
serverhost="
192.168.4.146"
port="
5222"
tcp"
weight="
5"
/server>
192.168.4.147"
2"
/servers>
①Phase表示第一个阶段,持续100second,每隔0.005second新增一个user,最大用户数为100000,(也可以使用arrivalrate表示每秒new多少user,参见manual)
②由于受到load和session的影响,所以创建的人数会少了这里的value的值
③interarrival推荐改成arrivalrate即秒产生几个用户
④Arrivalphase:
可以配置多个phase,主要是为了newusers的频率可以不一样;
arrivalphasephase="
1"
duration="
150"
unit="
second"
usersmaxnumber='
300'
arrivalrate="
/users>
/arrivalphase>
80"
400'
/load>
load标签中可以设置loop属性可多次执行这个语句如:
loop="
即将语句循环2次意味整个负载将执行3次,3次sessions中的代码。
Option:
创建用户的一些信息
global_number和userid_max:
决定了你要创建人数的数量,但是,由于受到load和
session的影响,所以创建的人数会少了这里的value的值
domin:
服务器域名
username:
用户名。
所有创建的用户,用户名都是value的值后面再跟上一个整数
(一般从1开始,如tsung1,tsung2,tsung3~~~~)
password:
密码。
与用户名创建的方式相同
Sessions:
sessionprobability="
70"
name="
jabber-example"
ts_jabber"
request>
jabbertype="
connect"
ack="
local"
/jabber>
/request>
thinktimevalue="
/thinktime>
transactionname="
authenticate"
auth_get"
auth_set_plain"
/transaction>
<
/session>
30"
/sessions>
多个群设置:
在sessions中设置多个session,即多个群
目前使用的脚本方法是进行代码叠加来实现多个群效果,目标实现是使用循环语句来实现多个群组。
Probability:
用于分配代理访问频率,总和为100
Sessions中可以会有多个session,
Session中主要是请求request,思考时间thinktime,事务transaction
Thinktime用于模拟用户停顿思考时间,
设置Thinktime属性来模拟更真实的场景,如:
用户进百人群,等群里成员满了或者指定多少人再进行模拟聊天。
Transaction用于标识一个处理事务,事务为一个单元可以处理多个请求等,
Request一个处理请求
附:
tsung在国内很少有资料可参考,且usermanual中的内容也相对简单,很多东西没有解释清楚,只能靠多执行多分析结果多分享数据分享方案,第一次使用tsung,以上可能存在各种个人的理解,欢迎指正探讨。
2015年08月19日