性能测试之tsung
缘由:之前一直使用jmeter进行性能测试,但是jmeter有个瓶颈(如果并发数加大,会将客户机的硬件资源耗死,当然这种现象可以使用分布式部署执行);后面听说tsung支撑百万并发(事实上后续发现这种百万也是使用的分布式执行),所以本篇就针对tsung进行描述下。
【1】tsung是什么
tsung 官方使用手册:http://tsung.erlang-projects.org/user_manual/
tsung是一个开源、多协议、分布式的压力测试工具。它可以用来测试HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和Jabber/XMPP的服务器,并且支持扩展协议。
【2】tsung的特性
tsung的主要特性
-
高性能:Tsung每台物理计算机可以模拟大量并发用户:它可以在单个CPU上模拟数千个用户
-
分布式:负载可以分布在客户端计算机的群集上
-
使用插件系统的多协议:当前支持HTTP(标准Web流量和SOAP),WebDAV,Jabber / XMPP和PostgreSQL。LDAP和MySQL插件首先包含在1.3.0版本中
-
SSL支持
-
使用基础OS IP别名,可以在一台计算机上使用多个IP地址
-
使用远程服务器或SNMP上的Erlang代理进行OS监视(CPU,内存和网络流量)
-
XML配置系统:用XML编写复杂的用户场景。可以使用Tsung记录器(仅HTTP和PostgreSQL)通过简单的浏览器编写场景。
-
动态方案:可以在负载下从服务器获取动态数据(无需编写任何代码),然后将其重新插入后续请求中。当字符串(或regexp)与服务器响应匹配时,还可以循环,重新启动或停止会话。
-
混合行为:在同一基准测试期间,可以使用多个会话来模拟不同类型的用户。您可以定义基准测试方案中各种行为的比例。
-
随机过程:为了产生现实的流量,可以使用概率分布(当前为指数)将用户的思考时间和到达率随机化
【3】tsung的安装
tsung目前只支持Linux系统;tsung是erlang写的,绘制图表时使用的gnuplot,需要使用perl相关库,所以也要安装perl, gnuplot。
-
安装依赖
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
yum installflexerlang systemd-devel autoconf automake lksctp-tools-devel m4 ncurses-develzlib-devel unixODBC-devel emacs emacs-el wxGTK3-devel
-
安装perl及gnuplot
yum -y install perl
yum -y install gnuplot
-
编译安装
./configure
make &&make install
【4】tsung的执行
-
执行案例
tsung -f /usr/share/doc/tsung/examples/http_simple.xml start
-
报告
进入生成的log目录执行命令:
/usr/lib/tsung/bin/tsung_stats.pl
-
结果
【5】后记
具体的使用请参考官网,tsung无界面模式,在Linux上使用xml配置场景或者接口进行执行测试并且开发语言是比较偏的erlang,相对于要入门的新手来说还是比较难的;一般的测试性能执行个人认为使用jmeter还是足够的,对于场景的编写jmeter也是可以胜任的,当然还有另外一种协程类的性能执行工具 locust也是支持百万并发的。工具只是辅助,重要的还是测试策略的规划,可以实现目标即可。
作者:Vsky
出处:https://www.cnblogs.com/VVsky/
交流群:636090586(备注博客园)
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果喜欢我的文章,请关注我的公众号