Main features

  • High Performance: the load can be distributed on a cluster of client machines
  • Multi-protocols using a plugin system: HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP , XMPP/Jabber, BOSH, MQTT and AMQP are currently supported. SSL is also supported.
  • Several IP addresses can be used on a single machine using the underlying OS IP Aliasing
  • OS monitoring (CPU, memory and network traffic) using SNMP, Munin or Erlang agents on remote servers.
  • XML configuration system; several sessions can be used to simulate different type of users. Dynamic sessions can be easily described in XML (this can be used to retrieve at runtime an ID from the server output and use it later in the session).
  • In order to generate a realistic traffic, user think-times and the arrival rate can be randomize using a probability distribution
  • HTML reports can be generated during the load to view response times measurement, server CPU, etc.

Tsung is developed in Erlang,运行Tsung,需要相关erlang依赖包支持。

简介

Tsung 是一个压力测试工具,可以测试包括HTTP, WebDAV, PostgreSQL, MySQL, LDAP, and XMPP/Jabber等服务器。针对 HTTP 测试,Tsung 支持 
HTTP 1.0/1.1 ,包含一个代理模式的会话记录、支持 GET、POST 和 PUT 以及 DELETE 方法,支持 Cookie 和基本的WWW 认证,同时还支持 SSL。

tsung的工作原理
(1) Tsung的每一个虚拟用户就是一个erlang的轻量进程。这点和loadrunner有很大的区别。
(2) 虚拟用户完成session后就消失。
(3) 大量的虚拟用户(erlang轻量进程)建立在erlangVM上。
(4) 一台测试机可以启多个erlangVM,目前按照1个cpu启动1个erlangVM。

一、安装前检查环境

1、查看环境:

[root@localhost bin]#  lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.4 (Final)
Release: 6.4
Codename: Final

2、确保安装了以下工具:

yum install gcc -y
yum install perl -y
yum install unixODBC
yum install unixODBC-devel

二、安装

1、下载并安装erlang

[root@localhost ~]#cd /usr/local
[root@localhost local]#mdir -p erlang [root@localhost local]# wget http://www.erlang.org/download/otp_src_R14B04.tar.gz
[root@localhost local]# tar -zxvf otp_src_R14B04.tar.gz
[root@localhost local]# cd otp_src_R14B04
[root@localhost otp_src_R14B04]# ./configure --prefix=/usr/local/erlang
[root@localhost otp_src_R14B04]# make
[root@localhost otp_src_R14B04]# make install

注意:如果出现 "configure: error: No curses library functions found "错误,尝试安装:

[root@localhost otp_src_R14B04]#yum install -y ncurses-devel 

2、下载并安装Tsung

[root@localhost ~]#cd /usr/local
[root@localhost local]#mkdir -p tsung
[root@localhost local]# wget http://tsung.erlang-projects.org/dist/tsung-1.4.2.tar.gz
[root@localhost local]# tar -zxvf tsung-1.4.2.tar.gz
[root@localhost local]# cd tsung-1.4.2
[root@localhost tsung-1.4.2]# ./configure --prefix=/usr/local/tsung --with-erlang=/usr/local/erlang
[root@localhost tsung-1.4.2]# make
[root@localhost tsung-1.4.2]# make install

3、下载并安装perl Template,用于生成报告模版

[root@localhost ~]#cd /usr/local

[root@localhost local]# wget http://cpan.org/modules/by-module/Template/Template-Toolkit-2.24.tar.gz
[root@localhost local]# tar -zxvf Template-Toolkit-2.24.tar.gz
[root@localhost local]# cd Template-Toolkit-2.24
[root@localhost Template-Toolkit-2.24]# perl Makefile.PL
[root@localhost Template-Toolkit-2.24]# make
[root@localhost Template-Toolkit-2.24]# make test
[root@localhost Template-Toolkit-2.24]# make install

注意:如果出现 以下提示:

[root@localhost Template-Toolkit-2.24]# perl Makefile.PL
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: ./lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 11.
BEGIN failed--compilation aborted at Makefile.PL line 11.

解决办法:

yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

4、下载并安装gnuplot,用于聊天生成

[root@localhost local]#yum install -y gnuplot gd libpng zlib 

三、检查是否安装成功

[root@localhost local]# perl -v      命令查看显示perl 当前版本信息。
[root@localhostlocal]# gnuplot 命令查看gnuplot 的安装版本
[root@localhost local]# erl 命令查看erlang的安装版本
Erlang R14B04 (erts-5.8.5) [source] [64-bit] [rq:1] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.8.5 (abort with ^G)
[root@localhost local]# tsung -v 命令查看tsung 的安装版本
Tsung version 1.4.2

四、安装后设置环境变量

安装成后添加erlang、tsung环境变量

[root@localhost local]# vim /etc/profile
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/erlang/bin:/usr/local/tsung/bin:/usr/local/nginx/sbin:$PATH(修改自己实际变量)
:wq保存,退出
[root@localhost local]# source /etc/profile
不报错则成功
[root@localhost local]# tsung -v
Tsung version 1.4.2
[root@localhost local]# erl -v
Erlang R14B04 (erts-5.8.5) [source] [64-bit] [rq:1] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.8.5 (abort with ^G)
1>

五、使用并生成报表

1、在root文件夹下新建.tsung目录,用于存放log和xml配置,测试配置文件可参考/usr/local/tsung/share/doc/tsung/examples/目录下配置

[root@localhost local]#mkdir ~/.tsung
[root@localhost local]#cp /usr/local/tsung/share/doc/tsung/examples/http_simple.xml ~/.tsung/tsung.xml

2、运行,默认执行脚本~/.tsung/tsung.xml配置

[root@localhost local]# tsung start
Starting Tsung
"Log directory is: /root/.tsung/log/20150311-0536"

3、进入Log目录下可以看到生成的报表信息

[root@localhost 20150311-0536]# cd /root/.tsung/log/20150311-0536
[root@localhost 20150311-0536]# ls -a
. .. match.log tsung_controller@localhost.log tsung.log tsung.xml

4、进入需要生成图形报表的Log目录,如/root/.tsung/log/20150311-0536

[root@localhost 20150311-0536]# /usr/local/tsung/lib/tsung/bin/tsung_stats.pl
creating subdirectory data
creating subdirectory gnuplot_scripts
creating subdirectory images
No data for Session
No data for Perfs
No data for Transactions
No data for Match
No data for Event
No data for Async
No data for Size
size_rcv is equal to 0 !
size_sent is equal to 0 !
[root@localhost 20150311-0536]# ls
data gnuplot.log gnuplot_scripts graph.html images match.log report.html tsung_controller@localhost.log tsung.log tsung.xml

5、将report.html拖到windows系统中,直接打开即可查看。

目前Tsung工具的最新版本为1.6.0,需要注意的是Tsung1.5.1版本及以上才支持MQTT,并且只有Tsung1.6.0开始,才支持MQTT的username和password的认证。

Tsung测试工具的基本测试命令为 Tsung -f  ~/.tsung/mqtt.xml -l <日志保存路径> start

mqtt.xml具体如下(在/usr/share/doc/tsung/examples路径下可查找到):

<?xml version="1.0"?>

<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">

<tsung loglevel="debug" version="1.0">

<!--下面为客户端配置,可以有配有多个客户端,其中ubuntu要保证通过ssh ubuntu能远程登陆上ubuntu这台机器,这里建议通过密钥对来进行远程客户端的登陆。下面类似于loadrunner的load generator,用以模拟用户。具体的详细配置请参见官网文档http://tsung.erlang-projects.org/user_manual/conf-client-server.html-->

转: Tsung:开源多协议分布式负载&压力测试工具的更多相关文章

  1. Tsung:开源多协议分布式负载&压力测试工具

    Main features High Performance: the load can be distributed on a cluster of client machines Multi-pr ...

  2. .net分布式压力测试工具(Beetle.DT)

    肯定有人会问为什么会写这样一个开源工具?和现有的有什么差别?不过对于一个程序员来说写东西还真不需要理由的:),主要原因是工作有点闲(开玩笑),不过说实话一个程员怎可能会停止写代码呢(作为一个奔4的程序 ...

  3. Pylot网站Web服务器性能和负载压力测试-适用Windows可绘制图表

    为了能够准确地评估网站服务器对网络流量的承受能力,我们一般会采取模拟网站用户访问,通过不断地增加并发数,延长访问时长,从而最终得出网站Web服务器的性能和负载能力.当然也可以通过Web压力测试,来完善 ...

  4. Windows开源Web服务器性能和压力测试工具

    linux有很多开源工具用来测试服务器负载,而windows上非常少,几乎没有除了几个复杂的JMeter WET等 将两个好用的工具是Linux版本通过Cygwin移植过来,方便广大windows人员 ...

  5. Linux压力测试工具Tsung安装、使用和图形报表生成

    简介 Tsung 是一个压力测试工具,可以测试包括HTTP, WebDAV, PostgreSQL, MySQL, LDAP, and XMPP/Jabber等服务器.针对 HTTP 测试,Tsung ...

  6. 压力测试工具tsung

    tsung是用erlang开发的一款简单易用的压力测试工具,可以生成成千上万的用户模拟对服务器进行访问.目前对tsung的理解也仅限于会简单的应用,其内部结构没有深入研究过. 1.安装 tsung是用 ...

  7. loadrunner笔记(一):下载、安装loadrunner和负载压力测试概念说明

    (一)   下载和安装 下载:(没账号的话得先注册一个账号) https://software.microfocus.com/en-us/products/loadrunner-load-testin ...

  8. Apache ab并发负载压力测试(python+django+mysql+apache)

    如标题,大家都知道秒杀中存在高并发使库存骤然为0,但在我们个人PC或小区域内是模拟不出这样的情景 现在利用 Apache ab并发负载压力测试 1,数据库建入库存字段并映射模型 2,view编写脚本 ...

  9. CentOS压力测试工具Tsung安装和图形报表生成Tsung安装配置

    Tsung 是一个压力测试工具,可以测试包括HTTP, WebDAV, PostgreSQL, MySQL, LDAP, and XMPP/Jabber等服务器.针对 HTTP 测试,Tsung 支持 ...

随机推荐

  1. [转]Java常用概念解答

    1. 事务是什么? 事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性. 一致性.隔离性和持久性)属性,只有这样才能成为一个事务: 原子性 事务必须是原子工 ...

  2. [转]Java中fina以及static的意义

    一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效 ...

  3. C#中的as(转)

    as:用于检查在兼容的引用类型之间执行某些类型的转换.    Employee myEmployee = myObject as Employee;    if (myEmployee != null ...

  4. 通过修改VHD文件的位置来提升性能

    昨天用VHD装了一个Win 10的预览版体验了一下,感觉磁盘操作非常慢,便用HD Tune测试了一下,发现速度只有物理硬盘的一半都不到.          这个倒大出我意料之外,由于VHD的便利性,我 ...

  5. JavaScript基础入门教程(六)

    说明 在看这篇博文之前还是希望读者阅读本系列前几篇文章,还有就是该系列需要读者拥有其它语言的编程基础,一些基本的知识点,比如什么是形参和实参将不再赘述.这篇博文主要讲函数. 函数的定义 在js种支持函 ...

  6. 方差分析anova

    方差分析 参考:http://wiki.mbalib.com/wiki/%E6%96%B9%E5%B7%AE%E5%88%86%E6%9E%90  方差分析(Analysis of Variance, ...

  7. Java Excel 插入图片

    在POI中有HSSFPatriarch对象,该对象为画图的顶级管理器,它的createPicture(anchor, pictureIndex)方法就能够在Excel插入一张图片.所以要在Excel中 ...

  8. java ArrayList源码分析(转载)

    1.ArrayList是一个相对来说比较简单的数据结构,最重要的一点就是它的自动扩容,可以认为就是我们常说的“动态数组”. 来看一段简单的代码: 12345 ArrayList<String&g ...

  9. 面经 | 我是如何通过校招拿到京东的Offer的

    本文来自粉丝投稿,原作者:红鼻子熊. 版权归Hollis所有. OFFER:京东2018校招物流研发岗 个人:211小硕 面试时间:2017年秋天 整体:三轮面试,前两轮为技术面试,最后为hr面试 一 ...

  10. [转]Sql Server参数化查询之where in和like实现详解

    本文转自;http://www.cnblogs.com/lzrabbit/archive/2012/04/22/2465313.html 文章导读 拼SQL实现where in查询 使用CHARIND ...