高并发压力测试工具Tsung使用教程

Tsung安装与启动 Tsung安装与使用 一、安装 依赖包 需要安装 erlang、gnuplot、perl5 安装erlang 因为Tsung是基于erlang开发的,所以得先安装这个环境 1、erlang 安装地址:https://www.erlang.org/downloads/otp_src_22.0.tar.gz 安装包存放路径: /root/soft/otp_src_22.0.tar.tar 2、进入到文... 阅读详情

高并发压力测试工具Tsung使用教程

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

其他系统需要从源码安装 Erlang,稍微复杂一些,可参考:https://github.com/erlang/otp/blob/maint/HOWTO/INSTALL.md 。

2 运行

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

  1. tsung
  2. 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 目录下就是报表图片,类似如下。

graphes-HTTP_CODE-rate_tn   graphes-Perfs-mean_tn

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

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

4 配置文件

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

4.1 clients

用户产生的方式:

<clients>
  <client host="localhost" use_controller_vm="true" maxusers="30000"/>
</clients>

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

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

4.2 servers

<servers>
  <server host="garden.blue.jude.poppen.lab" port="80" type="tcp"></server>
</servers>

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

<servers>
  <server host="server1" port="80" type="tcp" weight="4"></server>
  <server host="server2" port="80" type="tcp" weight="1"></server>
</servers>

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

4.3 monitoring

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

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

<monitoring>
  <monitor host="garden" type="erlang">
    <mysqladmin port="3306" username="root" />
  </monitor>
</monitoring>

4.4 load

<load>
  <arrivalphase phase="1" duration="3" unit="minute">
    <users maxnumber="100" interarrival="0.02" unit="second" ></users>
  </arrivalphase>
</load>

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

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

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

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

4.5 options

<options>
 <option type="ts_http" name="user_agent">
 <user_agent probability="80">Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Galeon/1.3.21</user_agent>
 <user_agent probability="20">Mozilla/5.0 (Windows; U; Windows NT 5.2; fr-FR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4</user_agent>
 </option>
 </options>

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

4.6 sessions

<sessions>
  <session name="http-example" probability="70" type="ts_http">
    <setdynvars sourcetype="random_number" start="1" end ="100">
      <var name="itemid" />
    </setdynvars>
    <transaction name='getlist'>
      <request subst="true">
        <http url="/comment/getList" method="POST" contents = "item_type=image&amp;item_id=%%_itemid%%"></http>
      </request>
    </transaction>
  </session>
  <session name="http-example" probability="30" type="ts_http">
    <setdynvars sourcetype="random_number" start="1" end="100">
      <var name="itemid" />
    </setdynvars>
    <setdynvars sourcetype="random_number" start="20" end="5000000">
      <var name="content" />
    </setdynvars>
    <transaction name='getlist'>
      <request subst="true">
         <http url="/comment/addComment" method="POST" contents = "item_type=image&amp;item_id=%%_itemid%%&amp;content=%%_content%%"></http>
      </request>
    </transaction>
  </session>
</sessions>

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

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

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

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

<for from="1" to="@loop" incr="1" var="counter">

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

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

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

<setdynvars sourcetype="random_number" start="20" end="5000000">
  <var name="xxx" />
</setdynvars>
<setdynvars sourcetype="random_string" length="10">
  <var name="xxx" />
</setdynvars>

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

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

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

http内部可定义header参数:

<http_header name="Authorization" value="111"/>
<http_header name="Cookie" value="authToken=%%_auth_token%%; Path=/"/>
<!-- content-Type:POST请求参数的格式,如果是json格式可以这样写 -->
<http_header name="Content-Type" value="application/json"/>

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

<thinktime value="1"/>

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

 

在Ubuntu下使用Tsung对ejabberd服务器进行XMPP压力测试。 今天研究了一下如何使用Tsung对ejabberd服务器进行压力测试,看了N篇文章以后,总结一下在Ubuntu下的安装详细步骤。 1、下载Tsung源代码: 从Tsung的官方网站下载源代码(http://tsung.erlang-projects.org/dist/),目前最新的是tsung-1.4.1.tar.gz,不要下载为Ubuntu封装好的deb,因为下面还要更改一处源代 阅读详情

相关推荐

Tsung MQTT压力测试

Tsung MQTT压力测试 参考资料: http://tsung.erlang-projects.org/user_manual/ https://www.cnblogs.com/lingyejun/p/7941271.html https://www.cnblogs.com/saryli/p/9807220.html http://www.51ste.com/share/det-222.html Tsung安装 安装环境 Linux版本:Ubuntu 16.04 LTS Tsung版本:1.7.0

Koala_Bryson的博客 679

Tsung介绍

概述 Tsung是一个开源的多协议分布式负载测试工具,它可以用于强调HTTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP、MQTT和Jabber/XMPP服务器。 Tsung是一个基于GPLv2许可协议发布的自由软件。 Tsung的目的是模拟用户,以测试基于IP的客户机/服务器应用程序的可伸缩性和性能。您可以使用它来对服务器进行负载和压力测试。许多协议已经被实现和测试,并且...

hyx_try的博客 3301

【tsung】tsung安装与启动

运行环境安装 安装 erlang、gnuplot、perl5 erlang :因为Tsung是基于erlang开发的,所以得先安装这个环境.安装软件 perl5:生成报表的脚本支持环境 gnuplot:报表统计图片生成工具 erlang安装 方式一: apt-get install erlang erlang-src 方式二: yum install erlang erlang-src 验...

sysu_lluozh 776

tsung入门

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34364071的博客 499

开源多协议分布式压力测试工具Tsung详解

本文详细介绍开源多协议分布式压力测试工具Tsung。

dvlinker的技术专栏 439

Workbuddy+DeepSeek V4傻瓜流配置全指南:API接入、模型切换与Agent实战

AI编程助手的核心价值不在于模型本身,而在于如何稳定、安全、低门槛地调用其能力。Agent作为智能体范式,依赖可靠的运行时环境与标准化API通信;DeepSeek V4系列凭借高吞吐、低延迟和强工具调用支持,成为当前生产级Agent的理想引擎。Workbuddy则通过本地配置管理、环境变量注入与UTF-8无BOM容错等工程设计,将复杂部署简化为可复现、可版本化、可团队协同的实践流程。本文聚焦API接入路径下的真实卡点——从Key获取验证、models.json字段语义到沙箱权限控制,覆盖开发者在Window

weixin_33702545的博客 2365

高并发测试工具Tsung使用教程

tsung是erlang开发的...

SummerGao 1309

ICCompiler II实战:从NDM生成到APR流程的完整避坑指南

本文是一份针对ICCompiler II(ICC II)后端物理实现流程的实战避坑指南。文章详细解析了从NDM库生成、设计初始化、布局规划到时钟树综合与布线的完整APR流程,重点分享了各环节的常见陷阱、精细化配置命令与调试经验,旨在帮助工程师高效达成PPA目标,确保设计一次成功。

p4q5r6s7t的博客 531

Tsung 使用指南

--- ## 项目介绍 Tsung 是一个开源的分布式负载测试工具,它能够模拟成千上万个用户并发地对 Web 服务器、数据库、LDAP 等进行压力测试。Tsung 支持多种协议包括 HTTP/HTTPS、Websocket、MQTT、XMPP 等,使得它成为了一个非常灵活且强大的性能测试解决方案。该项目由 ProcessOne 开发并维护,它的一大特色是其基于 XML 的配置文件,这使得设置复

gitblog_00119的博客 1180

机器人路径规划:基于冠豪猪优化算法(Crested Porcupine Optimizer,CPO)的机器人路径规划(提供MATLAB代码)

移动机器人(Mobile robot,MR)的路径规划是 移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或局部已知的局部路径规划。随着科技的快速发展以及机器人的大量应用,人们对机器人的要求也越来越高,尤其表现在对机器人的智能化方面的要求,而机器人自主路径规划是实现机器人智能化的重要步骤,路径规划是指规划机器人从起点位置出发,无碰撞、安全到达指定目标位置的最优路径。

IT猿手 1367

网络无线AP信号走场测试软件(Ekahau 使用说明)

每次开启 Ekahau 软件需要重复此过程,才可以正常使用。 双击“Ekahau Pro activation.reg”,如下图所示; 点击“Yes”按钮 ,进行注册表合并; 点击“OK”按钮,确认; 运行“Ekahau Pro” 点击“Close”关闭提示; 点击“OK”,关闭提示; ...

Reyn_观极 6416

tsung压力测试

使用tsung对http服务的压力测试及对mysql的测试

阿罗 1万+

基于分数阶的图像边缘细节检测——边缘计算

在图像处理中,我们可以使用分数阶导数运算器来计算图像的分数阶梯度,从而得到更精确的边缘信息。通过使用基于分数阶的图像边缘细节检测方法,我们可以更准确地捕捉图像中的边缘细节信息。在这篇文章中,我们将介绍一种基于分数阶的方法来进行图像边缘细节检测,并提供相应的源代码实现。需要注意的是,以上提供的代码示例仅用于演示基于分数阶的图像边缘细节检测方法的实现。然后,我们读取了待处理的图像,并进行了预处理,如高斯模糊,以减少噪声的影响。最后,我们通过设置一个阈值,将梯度图像转化为二值化的边缘图像,并将结果显示出来。

GudcSql的博客 403

Tsung简易教程-CentOS版

官网地址:http://tsung.erlang-projects.org/ Tsung压力测试工具的工作原理介绍 (1)  Tsung的每一个虚拟用户就是一个erlang的轻量进程。这点和loadrunner有大区别。 (2)  虚拟用户完成session后就消失。 (3)  大量的虚拟用户(erlang轻量进程)建立在erlangVM上。 下面

Love Life Love Tech 2214

Electron - Electron failed to install correctly, please delete node_modules/electron and try install

Electron安装失败:Electron failed to install correctly, please delete node_modules/electron and try installing again,electron安装报错:Electron failed to install correctly...解决方案,Electron 未能正确安装,请删除 node_modules/electron,然后再次尝试安装,如何解决这个问题,手把手教你解决,在yarn dev时报错,electr

🏆 前端领域优质创作者 4367

【以太网硬件六】1000base-T物理层编码究竟是怎么编的?

详述1000base-T物理层4D-PAM5的编码过程

highman110的博客 5324

分布式压力测试工具Tsung:从架构原理到百万并发实战指南

在软件性能工程领域,压力测试是评估系统在高负载下稳定性和扩展性的关键环节。其核心原理是通过模拟大量并发用户请求,探测系统的性能瓶颈与承载极限。随着微服务与分布式架构的普及,传统的单机压测工具在模拟海量并发时往往遇到资源瓶颈,分布式压力测试技术因此成为解决大规模性能验证需求的关键。分布式压测通过主控节点协调多个负载生成节点,能有效突破单机硬件限制,实现弹性的压力扩展,这对于保障电商大促、即时通讯等高并发场景的服务质量具有重要价值。本文聚焦于基于Erlang/OTP构建的开源分布式多协议压力测试工具Tsung,

weixin_28839629的博客 256

使用R语言获取泊松回归模型的事件密度比(Incidence Rate Ratio,IRR)的95%置信区间

在泊松回归模型中,我们通常关注的是自变量对事件发生率的影响,而事件密度比(Incidence Rate Ratio,IRR)可以帮助我们理解不同自变量对事件发生率的相对影响。在本文中,我们将使用R语言来获取泊松回归模型所有系数的事件密度比的95%置信区间。通过以上步骤,我们可以使用R语言获取泊松回归模型所有系数的事件密度比的95%置信区间。为了获取事件密度比的置信区间,我们将使用。使用R语言获取泊松回归模型的事件密度比(Incidence Rate Ratio,IRR)的95%置信区间。

BugCrusher的博客 1264

压力测试工具tsung初体验

压力测试工具tsung初体验 Posted on 2015-12-28 |  In linux |  |  Visitors: 68简介最近参与开发了公司的评论和点赞的系统,该系统是作为symfony的一个独立plugin,可能会被其它很多系统使用,比如说图片,视频,newsfeed等等,都有可能直接嵌入,所以该独立模块做的尽可能通用,对性能也有一定要求。最终采用以mysql作为储存方案,以red...

大JAVA解决方案 5051

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

如何3分钟跑起Qwen3.8-Flash-Next-GSQ-RCO-Coder-GGUF:从hf下载到llama-cli的完整新手教程

Qwen3.8-Flash-Next-GSQ-RCO-Coder-GGUF 是 ISTA DASLab 发布的 GGUF 量化编程大模型:基于 176.9B 参数的 Qwen3.8-Flash-Next MoE 模型,剪掉一半专家(expert)后仅 58.4 GB,用一条 `hf download` 命令 + 一条 `llama-cli` 命令即可在本地跑起来。本文带你走完下载、加载、推理全流程

gitblog_00114的博客 259

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

tsung压测mysql_高并发测试工具Tsung使用教程

tsung是erlang开发的一款开源的多协议分布式负载并发测试工具,可用作HTTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP 和 Jabber/XMPP的服务器压力测试。tsung可分布在多个客户机,并能够模拟成千上万的虚拟用户数并发。1 下载安装Tsung 已经在Linux、FreeBSD和Solaris上通过测试,其他系统,只要支持Erlang语言的平台上,也是可以...

weixin_39580715的博客 330

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

erlang、tsung压力测试

环境:ubuntu14.04   intelCorei5 64 apt-get install erlang erlang-nox erlang-dev erlang-parasetcols 安装erlang

634

Tsung安装使用说明

Tsung安装使用说明  1.     Tsung介绍: 一个开源的多协议分布式负载测试工具,使用erlang语言开发的。它能用来压力测试HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和 Jabber/XMPP的服务器。它可以分布在多个客户机,并能够模拟成千上万的虚拟用户数并发。 在麦克产品中,麦信模块聊天功能就是使用xmpp协议的,所以我们可以使

发现测试之美 1309

基于TSUNG对MQTT进行压力测试-测试结果

p.p1 { margin: 0; font: 16px "PingFang SC Semibold"; color: rgba(0, 0, 0, 1); -webkit-text-stroke: #000000 } p.p2 { margin: 0; font: 11px "Helvetica Neue"; color: rgba(0, 0, 0, 1); -webkit-text-strok...

翎野君的博客 107

XMPP、HTTP 模拟压力测试工具 Tsung 教程

一、部署安装 ============== 1)安装依赖 yum -y install perl yum -y install gnuplot   由于需要erlang支持,那么下载erlang-R14B04 wget http://www.erlang.org/download/otp_src_R14B04.tar.gz  tar zxvf opt_src_R14B04.tar.

blade2001的专栏 9420

压力测试工具tsung

压力测试工具tsung 安装erlang环境 #首先下载资源,想下载不同的版本只需要修改版本号即可,最新为19.3 wget http://erlang.org/download/otp_src_18.3.tar.gz #在下载目录中对.tar.gz进行解压 tar -xzvf otp_src_17.3.tar.gz #安装依赖包(安装必须用到的) yum install -y gcc gcc-c...

睨噷蹇蜣的博客 8104
上一篇: tsung--开源多协议分布式压力测试工具 .
下一篇: Tsung解析Tsung.xml配置文件
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值