Story
Tsung是erlang开发的一个开源的多协议分布式负载测试工具,它能用来压力测试HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和 Jabber/XMPP的服务器。它可以分布在多个客户机,并能够模拟成千上万的虚拟用户数并发。
基于nodeJS,使用起来非常方便,作图工具非常棒!
JS + jQuery + NodeJS,前端标配。
在使用node JS时,有一个express的外部组件。相当于nodeJS界的MVC。
作为使用过httperf,jmeter的人来说,觉得这个做图简直是so easy。
有过其他性能工具使用经验的朋友注意:
1. Tsung的每一个虚拟用户就是一个erlang的轻量进程。
2. 虚拟用户完成session后就消失。
3. 大量的虚拟用户(erlang轻量进程)建立在erlangVM上。
Tsung的安装
CentOS下安装:
Tsung安装包、erlang安装包、Perl ( 生成报告所需模块)、图形库gnuplot等
1.erlang
2.perl
3.gnuplot
yum install gd libpng zlib
erlang安装:
http://www.erlang.org/download/otp_src_Rxxxxx.tar.gz
tar zxvf otp_src_Rxxxxx.tar.gz
cd otp_src_R15B02
./configure
make
make install
gnuplot安装:
wget http://nchc.dl.sourceforge.net/project/gnuplot/gnuplot/x.x.x/gnuplot-x.x.x.tar.gz
tar -zxvf gnuplot-x.x.x.tar.gz
cd gnuplot-x.x.x
./configure
make
make install
template-toolki安装:
wget http://www.cpan.org/modules/by-module/Template/Template-Toolkit-2.24.tar.gz
tar zxf Template-Toolkit-2.24.tar.gz
cd Template-Toolkit-2.24
perl Makefile.PL
make
make install
配置
配置Tsung:
~/.tsung/tsung.xml为tsung默认的配置文件,但我们安装后会发现这个目录和文件并不存在,那就由我们手动来创建这个目录。
mkdir /home/.tsung
在/usr/share/doc/tsung/examples/中有一些示例文件,可以参考jabber_register.xml文件来编写自己的tsung.xml。
cp /usr/share/doc/tsung/examples/jabber_register.xml ~/.tsung/tsung.xml
Work
启动Tsung
tsung start/stop/debug/status
tsung -f /home/.tsung/tsung.xml start
进入日志目录
cd /root/.tsung/log/20120913-1436
运行脚本生成报表文件
/usr/local/lib/tsung/bin/tsung_stats.pl
查看生成的报表:
通过nodeJS简单弄一个脚本,做出一个网页来展示结果:
#! /usr/bin/env node
console.log('my_tsung_log');
var express = require('express');