tsung是erlang开发的一款开源的多协议分布式负载并发测试工具,

可用作HTTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP 和 Jabber/XMPP的服务器压力测试。

tsung可分布在多个客户机,并能够模拟成千上万的虚拟用户数并发。

1 下载安装

Tsung 已经在Linux、FreeBSD和Solaris上通过测试,

其他系统,只要支持Erlang语言的平台上,也是可以工作的(Linux、Solaris、*BSD、Win32 和 Mac OS X)。

Mac OS X通过 Homebrew 即可安装 tsung,命令:

brew install tsung

Ubuntu安装也很简单,命令:

apt-get install tsung

其他系统需要先下载源码包再安装,源码包下载地址:

以tsung 1.6.0为例,下载安装命令:

wget http://tsung.erlang-projects.org/dist/tsung-1.6.0.tar.gz # 以1.6.0版本为例

tar -zxf tsung-1.6.0.tar.gz # 解压

cd tsung-1.6.0 # 进入目录

./configure # 配置,生成 Makefile 文件

make # 编译

make install # 安装

configure 的时候,如果没有安装 tsung 依赖的 Erlang 语言库,会提示下面的错误:

...

checking for Erlang/OTP root directory... configure: error: in `/root/tsung-1.6.0':

configure: error: test Erlang program execution failed

...

可以用下面的命令先安装erlang,再 configure。

brew install erlang   # OS X Homebrew

port install erlang   # OS X MacPorts

apt-get install erlang # Ubuntu 和 Debian

yum install erlang # Fedora

pkg install erlang # FreeBSD

2 运行

tsung安装完成后,会生成两个命令文件:

tsung

tsung-recorder

默认生成在 /usr/local/bin 目录下,使用-h参数可以查到它们所有的参数:

tsung -h

在启动 tsung 之前,我们需要一个 XML 格式的配置文件,tsung会根据该配置文件进行测试。

/usr/share/doc/tsung/examples 目录下有一些 XML 配置文件范例,

将其中HTTP测试配置文件 http_simple.xml 拷贝到当前目录,

再执行,命令如下:

cp /usr/local/share/doc/tsung/examples/http_simple.xml ./ # 拷贝范例配置文件

tsung -f http_simple.xml start # 指定xml文件并开始。如果不指定,则默认使用 ~/.tsung/tsung.xml

这个命令会打印出测试的日志目录,直到测试结束。

3 结果

tsung 测试结束后,测试结果 Log 保存在目录 ~/.tsung/log/ 下。

当启动一个新的测试时,会在这个目录下面创建一个新的子目录,用以保存测试的数据。

Log 格式为当前日期和时间的组合,例如:~/.tsung/log/20160217-0940。

默认情况下,控制节点会启动一个嵌入的网站服务器,侦听8091端口(可以用 -n 选项禁用)。

测试过程也可以用tail命令查看实时记录:

tail -f ~/.tsung/log/20140430-1126/tsung.log

测试结束之后,再用tsung_stats.pl生成报表。

yum install gnuplot # tsung_stats.pl 需要用到的 gnuplot

mkdir http_simple # 创建用以保存报表的目录

cd http_simple # 进入目录

/usr/local/lib/tsung/bin/tsung_stats.pl --stats ~/.tsung/log/20160305-0933/tsung.log # 生成报表

之后,会在 http_simple 目录下生成3个目录和1个 log 文件,其中 images 目录下就是报表图片,类似如下。

以上仅是测试,没有实际用处,因为没有配置要测试的网站,所以所得到的结果没有实际意义。

需要修改 XML 配置文件后再测试,才会得到有意义的结果。

4 配置文件

打开 http_simple.xml ,下面来讲几个关键的配置。

4.1 clients

用户产生的方式:

tsung运行时可以由很多的虚拟机(VM)组成,client配置指明这个client机器上最多生成的用户数,

如果use_controller_vm为true的话,那么当用户数达到maxusers,tsung会自动生成新的虚拟机。

4.2 servers

server段可以配置被测服务器的相关信息,也可以配置成集群,如下

tsung会根据weight值来选择发起请求的server。

4.3 monitoring

系统监控服务,配置完后可获取被测server的CPU、内存、负载、数据库等相关信息。

可以配置成erlang的监控服务和snmp的监控服务。

4.4 load

load段可配置访问的负载,访问可以配成多个阶段,由phase值指定。

duration是测试持续时间,unit是单位。

users段的maxnumber限制了生成的最大用户数,

interarrival="0.02"表示0.02秒产生一个新用户,用户按照session的配置顺序执行session中的request。

4.5 options

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Galeon/1.3.21

Mozilla/5.0 (Windows; U; Windows NT 5.2; fr-FR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4

options段可配置一些请求的信息,如agent信息。

4.6 sessions

可配置多个子session,进而可测试多个api,

可以设置请求概率,在probability里定义,

要求每个session的probability之和是100,类型是http。

sessions里可用for来设定请求次数,如下

在里面可以设置请求的具体信息。

在请求参数里可以带上随机数。

随机数和随机字符串的定义如下:

以%%_xxx%%的形式来调用。

这里必须注意的是,要使用随机数,request必须加上subst="true"参数,不然随机数无法被引用成功。

随机数也可从文件读取,如csv。

http内部可定义header参数:

thinktime可用于定义两个请求的间隔时间

另外可定义不同的transaction ,这样子结果里就会显示不同transaction的具体信息。

参考文档:

tsung压测mysql_高并发测试工具Tsung使用教程相关推荐

  1. python百万并发压测_100W高并发(转载) - 橙子柠檬's Blog

    此文章忘记在哪里看到了,作为收藏备用记在这,作者看到可以联系下我著名出处,,本编文章是根据某一个公开课进行整理的,如何在服务端和客户端去实现单机百万的并发. 从客户端角度看,单机如果能发出百万并发,那 ...

  2. 高并发测试工具webbench

    1.简介 webbench最多可以模拟3万个并发连接去测试服务器的负载能力,编译和配置简单,仅基于TCP协议上对服务器进行测试.Webbench也是开放源码,从代码上看,每个客户端都fork出一个进程 ...

  3. apache并发测试工具ab为什么测不准

    apache并发测试工具ab为什么测不准 发表于2年前(2013-03-21 12:13)   阅读(1146) | 评论(1) 1人收藏此文章, 我要收藏 赞0 3月21日 深圳 OSC 源创会正在 ...

  4. 压力测试工具tsung

    压力测试工具tsung 安装erlang环境 #首先下载资源,想下载不同的版本只需要修改版本号即可,最新为19.3 wget http://erlang.org/download/otp_src_18 ...

  5. 全链路压测构建高可用应用最佳实践

    简介:电商大促.明星直播.在线教育等大量场景,用户访问量会在一定时间段剧增,或者在业务上云过程中需要高可用体系评估客户系统在云环境下面的性能表现,判断是否符合客户的预期. 通过阿里云的PTS+AHAS ...

  6. 运维测试工作笔记0003---使用Jmeter测试_http接口_高并发测试

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 实际上jmeter可以测试很多不光是http的高并发测试 1.先去Jmeter官网下载Jmeter ...

  7. http-little-toy(一个go编写Http并发测试工具)

    http-little-toy 一个简单的 http 并发测试工具. 仓库地址 如果喜欢就star⭐️一下吧,让它沉睡在你的收藏库里. https://github.com/leihenshang/h ...

  8. Windows并发测试工具

    Apache安装目录cmd 用ab并发测试工具,请求10次,并发为5 ab -n 10 -c 5 http://www.ysbm.com/api.php/task/testBingfa

  9. 使用JMeter进行接口高并发测试

    一般的网络接口测试,功能性测试postman较为好用,需要测试高并发的情况下,可以用Jmeter来进行测试,postman是串行,而Jmeter可以多线程并行测试. 官网 Apache JMeter ...

最新文章

  1. 我是如何每周坚持 5 天自学机器学习,并拿到offer的
  2. 可靠性测试-故障模型库
  3. android使用HttpURLConnection/HttpClient实现带参数文件上传
  4. [转]【分布式系统】唯一ID生成策略总结
  5. python可选参数定义_c#教程之定义可选参数
  6. 正则化、归一化含义解析(一)
  7. 屏蔽tomcat服务器报错信息,tomcat 屏蔽网络爬虫
  8. 【数据库系统原理】实体-联系模型
  9. 3mx转osgb_OSGB格式的三维倾斜摄影文件转化成ARCGIS栅格文件
  10. Laravel之队列
  11. 2022中科院分区表弃用影响因子,多方官宣
  12. 隐藏和显示电脑下方任务栏
  13. spring boot+iview 前后端分离架构之文件上传的实现(三十一)
  14. Proteus8.9 VSM Studio PIC编译器仿真PIC16F630_系列001_LED
  15. ios开发 把视频文件和图片保存到相册
  16. 高德地图根据地址获取经纬度(JS)
  17. TeeChart 商业版 [2022.4.8] TeeChart.NET 专业版
  18. html怎么让页面没有滑动条,html不显示滚动条并可以滚动
  19. 2021_AAAI_Who You Would Like to Share With? A Study of Share Recommendation in Social E-commerce
  20. 实用的仓库管理软件有哪些,盘点2023年5大仓库管理软件!

热门文章

  1. vue的computed单向绑定(如淘宝的购物车中使用)
  2. 修改手机屏幕刷新率_240Hz 超高刷新率,这手机屏幕比电竞专业屏还牛
  3. oracle 主键自增函数_Oracle数据库中创建自增主键的实例教程
  4. c获取当前程序的路径_漏洞挖掘|使用AFL Fuzzing网络程序
  5. 安装erlang没有bin文件夹_RabbitMQ的安装和使用
  6. ~~欧几里得算法(附模板题)
  7. CUDA——Windows上CUDA的安装教程
  8. 使用mysql遇到的异常
  9. 【Qt串口调试助手】1.1 - Qt5编写串口调试助手,Qt串口编程
  10. 一些关于jvm的问题 阿里等大厂面试