tsung是erlang的一个开源的一个压力测试工具,可以测试包括HTTP, WebDAV, Mysql, PostgreSQL, LDAP, and XMPP/Jabber等服务器。针对 HTTP 测试,Tsung 支持 HTTP 1.0/1.1 ,包含一个代理模式的会话记录、支持 GET、POST 和 PUT 以及 DELETE 方法,支持 Cookie 和基本的WWW 认证,同时还支持 SSL。
下载参考tsung官网:
Tsung必须先安装erlang
1. 安装 erlang
1.sudo apt-get install erlang erlang-src gnuplot perl5
2. 验证erlang是否安装成功
erl
Erlang R17B01
(erts-5.7.4)[source][64-bit][smp:2:2][rq:2][async-threads:0][hipe][kernel-pool:false]
Eshell V5.7.4(abort with ^G)
4. 进入目标文件下载路径
cd /opt/apps
5. 下载Tsung安装包
wget
6. 解压缩安装包
chmod 777 tsung-1.5.1.tar.gz
tar zxvf tsung-1.5.1.tar.gz
7. 编译安装
cd tsung-1.5.1/
./configure tsung
make
在命令行中输入tsung - v 显示版本号为 Tsung version 1.5.1,说明安装成功了
安装过程中报错:“ build main app boot script ... make: *** [priv/tsung.boot] Error 1 ”
这是由于erlang版本过低导致的,更新下erlang版本即可。
为服务器建立配置文件
默认的配置文件存在于 ~/.tsung/tsung.xml 中,对命令行不熟悉的同学可以用ctrl+h把这个隐藏文件夹显示出来.
从示例配置中复制需要进行测试的配置 /tsung/examples/jabber_register.xml
示例配置代码如下:
<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">
<tsung loglevel="notice" dumptraffic="false" version="1.0">
<clients>
<client host="localhost" use_controller_vm="true">
</client>
</clients>
<servers>
<server host='127.0.0.1' port='5222' type='tcp'/>
</servers>
<!-- register 200000 users in less than 15 minutes -->
<load>
<arrivalphase phase="1" duration="15" unit="minute">
<users maxnumber="200000" interarrival="0.0025" unit="second"></users>
</arrivalphase>
</load>
<options>
<option type="ts_jabber" value="5"></option>
<option type="ts_jabber" value="200000"></option>
<option type="ts_jabber" value="erlang-projects.org"></option>
<option type="ts_jabber" value="tsung"></option>
<option type="ts_jabber" value="tsung"></option>
</options>
<sessions>
<session probability="100" type="ts_jabber">
<request>
<jabber type="connect" ack="local"></jabber>
</request>
<request>
<match do="abort" when="match">error</match>
<jabber type="register" ack="local"></jabber>
</request>
<request>
<jabber type="close" ack="local"></jabber>
</request>
</session>
</sessions>
</tsung>
修改为需要测试的服务器的地址
<servers>
<server host='127.0.0.1' port='5222' type='tcp'/>
</servers>
添加 maxusers 配置,如果不配这个参数创建用户到1000左右就不在创建了
<clients>
<client host="localhost" use_controller_vm="true" maxusers ="30000">
</client>
</clients>
这个配置的含义是,为服务器创建20000 个用户, 其中用户名为tsungXXX , 密码为 tsungXXX, 其中XXX 为1到userid_max每次步进值为1.
<options>
<option type="ts_jabber" value="5"></option>
<option type="ts_jabber" value="200000"></option>
<option type="ts_jabber" value="erlang-projects.org"></option>
<option type="ts_jabber" value="tsung"></option>
<option type="ts_jabber" value="tsung"></option>
</options>
运行
tsung -fjabber_register.xml start
运行后,tsung会将数据保存在~/.tsung/log/目录下
ps: 配置文件如果有问题或者运行中间强行关闭的情况下,有时会出现进程未关闭的情况,下次运行会出错,使用下面的命令看是否有未杀死的进程。