压力测试工具tsung
安装erlang环境
#首先下载资源,想下载不同的版本只需要修改版本号即可,最新为19.3
wget http://erlang.org/download/otp_src_18.3.tar.gz
#在下载目录中对.tar.gz进行解压
tar -xzvf otp_src_17.3.tar.gz
#安装依赖包(安装必须用到的)
yum install -y gcc gcc-c++ unixODBC-devel openssl-devel ncurses-devel
#进入到解压好的目录中,比如在erlang中解压要进到erlang/otp_src_17.3中设定安装位置
./configure --prefix=/opt/apps/erlang/otp_src_17.3 --without-javac
#安装
make && make install
vi /etc/base_profile
#加到原有变量之后使用:隔开,{erlang/bin} 是你的安装路径,如:/opt/apps/erlang/otp_src_17.3/bin
PATH=
P
A
T
H
:
e
r
l
a
n
g
/
b
i
n
e
x
p
o
r
t
P
A
T
H
=
/
o
p
t
/
e
r
l
a
n
g
/
o
t
p
s
r
c
1
7.3
/
b
i
n
:
PATH:{erlang/bin} export PATH=/opt/erlang/otp_src_17.3/bin:
PATH:erlang/binexportPATH=/opt/erlang/otpsrc17.3/bin:PATH
:wq
#使之生效
source /etc/base_profile
#或者使用软连接方式
ln -s /home/erlang/otp_src_17.3/bin/erl /usr/bin/erl
测试erlang
[root@eling ~]# erl
1> A=12.
12
2> A.
12
3>
完成erlang安装
安装Tsung:
说明安装成功。
注意:tsung是一个erlang开发的测试软件,如果遇到任何问题,请检查你的erlang是否正常运作。关于erlang的安装,请参照上面文档
安装perl Template,用于生成报告模版:
1.sudo yum install perl-modules
2.wget http://cpan.org/modules/by-module/Template/Template-Toolkit-2.26.tar.gz
3.cd Template-Toolkit-2.26/
4.perl Makefile.PL
5.make
6.make test
7.sudo make install
安装gnuplot :
yum install gnuplot
进行实际的测试工作:
1.mkdir .tsung
2.chmod 777 .tsung
3.ls /usr/share/doc/tsung/examples/ 结果是:
从这里面选择我们需要的模板,我这里选择http_simple.xml
4.cp /usr/share/doc/tsung/examples/http_simple.xml ./.tsung/tsung.xml
5.cd .tsung/
6.tsung start
7.进入Log目录下可以看到生成的报表信息
tsung.xml解释
只是简单地指定了运行 Tsung 的主机。你可以指定 Tsung 使用的 IP 和 CPU 的最大数。你可以使用 maxusers 设置节点能够模拟的用户数量上限。每一个用户都会执行我们之后定义的操作。
指定了你要测试的 HTTP 服务器。我们可以使用这个选项去测试一个 IP 集群,或者一个单一的服务器。
定义了我们的模拟用户将会在什么时候“到达”我们的网站。以及它们达到的有多快。
在持续了 10 分钟的第一个阶段里,以每秒 8 个用户的速率到达了 15,000 个用户。
这里还有两个 arrivalphases,它们的用户都以同样的方式达到。
这些 arrivalphases 一起组成了一个 ,它控制了我们可以每秒产生多少个请求。
这部分定义了一旦这些用户达到了你的网站,它们将会执行什么动作。
probability 允许你定义用户可能会做的随机事件。有时他们可能点击这里,有时他们可能点击那里。所有的Probability 加起来一定要等于 100% 。
在上面的配置里,用户只做一件事,所以它的 probability 等于 100% 。
这就是用户在 100% 的时间里做的事情。它们循环遍历 10,000,000 次并且 一个网页:/test.txt 。
这个循环结构允许我们使用少量的用户连接去获取比较大的每秒请求数量。
开始测试
tsung -f http_simple.xml start # 指定xml文件并开始。如果不指定,则默认使用 ~/.tsung/tsung.xml
这个命令会打印出测试的日志目录,直到测试结束。
结果
tsung 测试结束后,测试结果 Log 保存在目录 ~/.tsung/log/ 下。
当启动一个新的测试时,会在这个目录下面创建一个新的子目录,用以保存测试的数据。
Log 格式为当前日期和时间的组合,例如:~/.tsung/log/20160217-0940。
默认情况下,控制节点会启动一个嵌入的网站服务器,侦听8091端口(可以用 -n 选项禁用)。
测试过程也可以用tail命令查看实时记录:
tail -f ~/.tsung/log/20140430-1126/tsung.log
测试结束之后,再用tsung_stats.pl生成报表。
yum install gnuplot # tsung_stats.pl 需要用到的 gnuplot
mkdir http_simple # 创建用以保存报表的目录
cd http_simple # 进入目录
/usr/local/lib/tsung/bin/tsung_stats.pl --stats ~/.tsung/log/20160305-0933/tsung.log # 生成报表
问题解决
[root@openfire-x86v-app01 20141118-0931]# tsung_stats
creating subdirectory data
creating subdirectory gnuplot_scripts
creating subdirectory images
warn, last interval (8) not equal to the first, use the first one (10)
No data for Bosh
No data for Match
No data for Event
Can’t locate Template.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/bin/tsung_stats line 570.
安装下列软件包
[root@openfire-x86v-app0120141118-0931]# yum –y install perl-Template-Toolkit