posts - 72, comments - 66, trackbacks - 0, articles - 0

Tsung 安装与使用

Posted on 2008-12-01 10:43 Fingki.li 阅读(1971) 评论(2)  编辑  收藏 所属分类: About test
Tsung,压力测试的好工具。
安装过程:
1.获取tsung 的源码。http://tsung.erlang-projects.org/
2.安装依赖 erlang(从源码编译 erlang 写的程序) gnuplot perl5(如果想看 report 中的图形,就要装这个)
apt-get install erlang erlang-src gnuplot perl5 我用的是Ubuntu 8 OS.
3.编译安装
./configure
make
sudo make install

安装完成之后的 tsung 运行脚本在 /usr/bin/tsung ,在系统 path 之中,可以直接运行。

设置

从 /usr/share/doc/tsung/examples 中挑一两个例子拷贝到 ~/.tsung/tsung.xml 作为配置文件。我只需要 http 测试,所以:

cp /usr/share/doc/tsung/examples/http_simple.xml ~/.tsung/tsung.xml

tsung 采用了巧妙的 proxy 方式来“录制”测试脚本。具体来说,就是建立一个本机的 http proxy 默认使用 8090 端口,在配好 firefox 使用 localhost 8090 作为代理之后(推荐 foxyproxy 插件),所有“流经”这个 proxy 的 http 动作都会被记录下来,测试时可以“回放”这些步骤来产生请求。

tsung rocorder
tsung stop_recorder

“录制”完了,会得到一个 ~/.tsung/tsung_recorderXXXXXXXXXX.xml 文件,这就是测试时回回放的脚本。

将这个脚本加到 tsung.xml 之中

gedit ~/.tsung/tsung.xml

就像这样

<!DOCTYPEtsungSYSTEM"/usr/share/tsung/tsung-1.0.dtd" [
 <!
ENTITYmysession1SYSTEM"/home/yourname/.tsung/tsung_recorderXXXXXXXXXX.xml">
]>
...
<sessions>
 
&mysession1;
</sessions>

对配置稍作调整

<monitoring>
    
<monitorhost="localhost"type="erlang"></monitor>
 
</monitoring>
 
<!-- 需要配置到 localhost 无须密码的 ssh 登录(ssh via rsa_key),开启了这个配置可以,获得目标机器的 cpu 和 ram 消耗情况 -->
 
<load>
  
<arrivalphasephase="1"duration="1"unit="minute">
    
<usersinterarrival="2"unit="second"></users>
  
</arrivalphase>
 
</load>
 
<!-- 第1阶段1分钟(你可以自己多搞几个阶段),其中每2秒新建一个用户,每个用户都会完整执行 session 的测试脚本,最高并发约为 30 个,个人认为这个“逐渐加压”的方法比 ab xxxx 的“突然加压”要慢一些,但更科学一点 -->

运行

准备好了,加压运行。

tsung start

运行完,在 ~/.tsung/log 目录会生成一个以时间命名的目录,进入这个目录

cd ~/.tsung/log/xxxxx
/usr/lib/tsung/bin/tsung_stats.pl (有时可能是 /usr/local/lib/tsung/bin/tsung_stats.pl)

生成 html 的压力测试报告

firefox report.html
除了 http 以外 tsung 还可以压很多东西,比如:jabber, postgreSQL 还可以写插件来给任何你想要测试的东西加压.

Feedback

# re: Tsung 安装与使用[未登录]  回复  更多评论   

2008-12-16 12:04 by newman
你好!
我最近也在用Tsung来测试jabber server
但不明白这个recorder 过程怎样录制?
>tsung recorder
Error in process <0.37.0> on node
>tsung stop_reocrder ##显示如下错误
Error in process <0.37.0> on node 'killer@hostname' with exit value: {badarg,[{erlang,list_to_existing_atom,["ejabberd@localhost"]},{dist_util,recv_challenge,1},{dist_util,handshake_we_started,1}]}

能帮忙分析下马?
谢谢!

# re: Tsung 安装与使用  回复  更多评论   

2009-11-09 11:17 by kali
Hi Newman, sorry my chinese: I had the same problem and I solved by properly setting up the machine’s hostname. Check the output of the command ‘hostname -s’. Good luck!
—————-

您好,对不起,我的中文纽曼:我有同样的问题,我通过正确的设置了机器的主机解决。检查命令的输出’hostname -s’的。祝您好运!

只有注册用户登录后才能发表评论。


网站导航: