tsung是一个非常好用的压力测试软件,基于erlang语言,支持多种协议如xmpp,http,mysql,支持集群,高效率,可以用一台普通的机器压垮几台性能强大的服务器。
针对消息通知服务xmpp服务器,可以用tsung来测试消息通知服务能承受多大的压力。
但是目前tsung只能在centos等linux系统下才能使用,目前不支持windows系统
Tsung的安装
前提:
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
安装perl的Template 前提
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
Tsung是erlang写的,并且在出报表图时,需要使用perl相关库,所以先要安装三个玩意:
1.erlang
2.perl
3.gnuplot
后面两个好办,perl在centos上直接就带了,没装就装一下。
yum -y install perl
yum -y install gnuplot
tsung的安装
1、从http://tsung.erlang-projects.org/dist/ 下载tsung。最新版本为tsung-1.4.2
2、从http://www.erlang.org/download.html下载erlang。最近版本为R16B
3、从http://www.template-toolkit.org/download/index.html下载Template-Toolkit。最近版本为Template-Toolkit-2.24
4、先安装erlang。
下载otp_src_R16B,(这里erlang的依赖包,需要到官网上去看,依赖啥就装啥。我这就省略了。)
wget http://www.erlang.org/download/otp_src_R16B.tar.gz
tar -zxvf otp_src_R16B.tar.gz
cd otp_src_R16B
./configure --prefix=/usr/local/erlang
make && make install
5、安装tsung
wget http://tsung.erlang-projects.org/dist/tsung-1.4.2.tar.gz
tar zxvf tsung-1.4.2.tar.gz
cd tsung-1.4.2
./configure --prefix=/usr/local/tsung --with-erlang=/usr/local/erlang
make && make install
6、安装perl的Template
wget http://cpan.org/modules/by-module/Template/Template-Toolkit-2.24.tar.gz
tar -zxvf Template-Toolkit-2.24.tar.gz
cd Template-Toolkit-2.24
perl Makefile.PL
make
make test
make install
安装完成之后的 tsung 运行脚本在 /usr/bin/tsung ,在系统 path 之中,可以直接运行。
tsung的使用
创建目录
mkdir -p /root/.tsung
cd /root/.tsung
拿tsung http测试为例。从/usr/local/tsung/share/doc/tsung/examples中拷贝jabber.xml到 ~/.tsung/tsung.xml作为配置文件。
cp /usr/local/tsung/share/doc/tsung/examples/jabber.xml ~/.tsung/tsung.xml
1.录制脚本
tsung 采用了巧妙的 proxy 方式来“录制”测试脚本。具体来说,就是建立一个本机的 http proxy 默认使用 8090 端口,在配好 firefox 使用 localhost 8090 作为代理之后,所有“流经”这个 proxy 的 http 动作都会被记录下来,测试时可以“回放”这些步骤来产生请求。
用“tsung-recorder start”命令启动tsung录制,录制完成后,用“tsung-recorder stop”命令来关闭tsung录制。结束后,会在~/.tsung/目录下产生一个 tsung_recorderXXXXXXXXXX.xml文件,这个文件就是测试脚本。
2.编辑配置文件
tsung.xml是默认的tsung配置文件。把脚本加到配置文件中。编辑配置文件:vi tsung.xml
把配置文件修改成这样:
<!DOCTYPE tsung SYSTEM ”/usr/share/tsung/tsung-1.0.dtd” [
<!ENTITY mysession1 SYSTEM"/home/yourname/.tsung/tsung_recorderXXXXXXXXXX.xml">
]>
…
<sessions>
&mysession1;
</sessions>
3.设置load
load的设置也在tsung.xml中。
<load>
<arrivalphase phase=”1″ duration=”1″ unit=”minute”>
<users interarrival=”2″ unit=”second”></users>
</arrivalphase>
</load>
<!– 第1阶段1分钟,其中每2秒新建一个用户,每个用户都会完整执行 session 的测试脚本
4.运行
load设置完毕后,可以启动tsung来进行压测
tsung start
运行完,在 ~/.tsung/log 目录会生成一个以时间命名的目录,进入这个目录
cd ~/.tsung/log/xxxxx
进入这个目录后,输入:/usr/local/tsung/lib/tsung/bin/tsung_stats.pl 命令,生成 html 的压力测试报告。
5.查看结果
用firefox打开产生的html文件,就能查看本次测试的结果。