`

tsung 初识

 
阅读更多
tsung的工作原理

(1) Tsung的每一个虚拟用户就是一个erlang的轻量进程。这点和loadrunner有很大的区别。

(2) 虚拟用户完成session后就消失。

(3) 大量的虚拟用户(erlang轻量进程)建立在erlangVM上。

(4) 一台测试机可以启多个erlangVM,目前按照1个cpu启动1个erlangVM。

分布式部署Tsung在运行时,会产生ssl_esock、beam、beam.smp3种进程,ssl-esock是erlangVM用的port程序, 协助完成ssh功能;beam是单处理器版本的erlangVM;beam.smp就是control程序,负责协调系统的运作。


#####################################################################3

最近用上了 Tsung ,传说中“压垮了N台服务器”的 Erlang 压力测试工具啊。在这里记一下流水帐。

安装

获取tsung 的源码

wget http://www.process-one.net/downloads/tsung/1.2.2/tsung-1.2.2.tar.gz; tar -zxvf tsung-1.2.2.tar.gz

svn co http://svn.process-one.net/tsung/trunk

确保依赖关系
tsung 依赖了这些东西 erlang(废话,从源码编译 erlang 写的程序,能不装么) gnuplot perl5(如果想看 report 中的图形,就要装这个),将其一一装上。

apt-get install erlang erlang-src gnuplot perl5

编译安装

./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

生成 html 的压力测试报告

firefox report.html

慢慢欣赏吧。

除了 http 以外 tsung 还可以压很多东西,比如:jabber, postgreSQL 【传说:MYSQL比较粗放】还可以写插件来给任何你想要测试的东西加压,配置文件也很“丰富多彩”,更多的内容情看文档。


进入测试日志的路径,如/home/iamlaobie/.tsung/log/20110528-21:07,运行上面的脚本,运行完成之后,在该路径下生成report.html,如果在linux上不方便查看,可将该路径打包下载本地用浏览器打开report.html查看。

报告中的几个相似概念:

request:类似用php函数file_get_contents请求一个url地址的相应时间

page:一组没有间隔的request请求的时间总和,相当于打开一个页面,除了加载页面的html外,还要加载img、css、js等

session:一个用户从第一个请求开始到最后一个请求结束的时间总和

5、其他

5.1、tsung-recorder,通过它可以录制用户的访问过程,然后用tsung回放,让压力测试更逼真。实际上recorder是一个http代理,启动recorder后,将浏览器的代理指向它,默认端口是8090,用户只需要用浏览器浏览被测试的服务器,tsung-recorder会将这个过程写入到配置文件中。

5.2、添加请求的变量,在压力测试的过程中,可能需要手机号,用户ID、股票代码之类的变量,tsung支持文件随机读取,可以将这些参数按照一定的规则写入文件,在配置文件中定义读取的规则,就能在请求时拿到文件的内容。定义一个文件服务:

<options>
<option name="file_server" id="file1" value="/tmp/x.txt"/>
</options>
读取,在session段中加入

<setdynvars sourcetype="file" fileid="file1" delimiter=";" order="random">
<var name="username" />

</setdynvars>

<request>
<http url="/b.php?username=%%_username%%" method="GET" version="1.1"></http>
</request>

除了从文件读取,也可以随机产生

<setdynvars sourcetype="random_string" length="13">
<var name="rndstring1" />
</setdynvars>

<setdynvars sourcetype="random_number" start="3" end="32">
<var name="rndint" />
</setdynvars>

QPS

QPS每秒查询率(Query Per Second)  每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。  对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力



参考网址:

http://blog.csdn.net/bxc168/article/details/6020683

http://wwwzhouhui.iteye.com/blog/451298



分享到:
评论

相关推荐

    tsung用户手册 linux

    压力测试 压力测试 tsung linux

    tsung脚本及说明

    tsung的测试脚本,包含发送单人消息,群组消息,获取花名册等

    tsung里面测试websocket的插件

    tsung里面测试websocket的插件含 websocket.xml 等

    Openfire 3.9.3 Load Test Tsung配置xml

    Openfire 3.9.3 Load Test Tsung配置xml,10万用户下集群测试的Tsung压力测试工具的jabber_cluster.xml,session 5分钟

    Tsung安装使用详细解说

    Tsung安装使用的详细解说,主要针对xmpp的服务端(比如openfire的测试),编写测试场景的脚本配置详细说明。本人使用的是ubuntu操作系统、Tsung1.4.1

    MQTT压力测试之Tsung的使用

    MQTT压力测试之Tsung的使用 MQTT压力测试之Tsung的使用

    tsung+erlang包

    tsung+erlang测试工具,初学者应用必备,内部放置tsung源程序文件和erlang文件

    Tsung_测试XMPP_安装使用说明

    tsung是用erlang开发的一款简单易用的压力测试工具,目前仅支持linux各版本系统安装,有tar.gz和deb两种安装文件, 目前我们测试用的是CentOS或RedHat两种操作系统,因此选择tar.gz安装文件,总的来说tsung工具有...

    Tsung负载测试tigase

    tsung是一个非常好用的压力测试软件,基于erlang语言,支持多种...在Ubuntu上装好tsung之后,首先要用ulimit修改系统支持的最大fd数量(ulimit-n 20480),否则tsung最多只能创建不到1024个连接,测试脚本是一个xml文件

    tsung高并发测试工具搭建(自己亲测,详细的一逼)

    tsung高并发测试工具搭建(自己亲测,详细的一逼),改文档是自己一步一步摸索出来的,主要是安装tsung整个过程很详细,搭过的人,知道tsung的搭建依赖很恶心,不是一时半会能搞出来的

    tsung测试总结

    tsung 测试 java erlang

    tsung安装使用

    关于tsung工具的安装步骤以及使用过程中会遇到的常见问题解答

    tsung1.6.0

    tsung为一个开源的多协议分布式负载测试工具,使用erlang语言开发的。具体安装使用可以参考URL:http://www.51ste.com/share/det-222.html

    tsung最新用户手册

    tsung最新用户手册,包含HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP, and Jabber/XMPP servers压力测试模版,错误说明等。

    tsung安装使用说明

    tsung安装使用,参数说明,模拟openfire注册用户,模拟用户openfire登录、状态更改、发送消息,对openfire长时间压力测试

    tsung安装相关文件

    —tsung-1.5.0.tar.gz —libtemplate-perl_2.20.orig.tar.gz —gnuplot-4.4.0.tar.gz —otp_src_R15B.tar.gz —perl-HTML-Tagset-3.10-2.1.1.noarch.rpm —perl-HTML-Parser-3.55-1.fc6.x86_64.rpm —...

    tigase及tsung安装笔记

    包括tigase的安装运行,tsung的安装运行,压测结果的信息解析等;

    tsung-react-stats:从 json 报告中显示 tsung 统计信息

    tsung-react-stats 从 json 报告中显示 tsung 统计信息

    tsung-1.3.3

    tsung安装包,linux下进行压力测试的工具

    Tsung用于压测MySQL服务器的脚本

    这个MySQL服务器压测的需求是:Tsung用于压测MySQL服务器的脚本环境:LinuxRHEL5U4X86-64,24G内存,16核.MySQL服务器在10.232.36.100上。  这个MySQL服务器压测的需求是:  环境:LinuxRHEL5U4X86-64,24G内存,16核....

Global site tag (gtag.js) - Google Analytics