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官网:http://tsung.erlang-projects.org/Tsung必须先安装erlang1. 安装 erlang1.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 http://tsung.erlang-projects.org/dist/tsung-1.5.1.tar.gz 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" name="global_number" value="5"></option> <option type="ts_jabber" name="userid_max" value="200000"></option> <option type="ts_jabber" name="domain" value="erlang-projects.org"></option> <option type="ts_jabber" name="username" value="tsung"></option> <option type="ts_jabber" name="passwd" value="tsung"></option></options><sessions> <session probability="100" name="jabber-example" type="ts_jabber"> <request> <jabber type="connect" ack="local"></jabber> </request> <request> <match do="abort" when="match">error</match> <jabber type="register" ack="local" id="new"></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" name="global_number" value="5"></option> <option type="ts_jabber" name="userid_max" value="200000"></option> <option type="ts_jabber" name="domain" value="erlang-projects.org"></option> <option type="ts_jabber" name="username" value="tsung"></option> <option type="ts_jabber" name="passwd" value="tsung"></option></options>运行tsung -fjabber_register.xml start运行后,tsung会将数据保存在~/.tsung/log/目录下ps: 配置文件如果有问题或者运行中间强行关闭的情况下,有时会出现进程未关闭的情况,下次运行会出错,使用下面的命令看是否有未杀死的进程。本文永久更新链接地址