当前位置: 首页 > 工具软件 > Tsung > 使用案例 >

Tsung介绍

谭灿
2023-12-01

概述

Tsung是一个开源的多协议分布式负载测试工具,它可以用于强调HTTP、WebDAV、SOAP、PostgreSQL、MySQL、LDAP、MQTT和Jabber/XMPP服务器。
Tsung是一个基于GPLv2许可协议发布的自由软件。
Tsung的目的是模拟用户,以测试基于IP的客户机/服务器应用程序的可伸缩性和性能。您可以使用它来对服务器进行负载和压力测试。许多协议已经被实现和测试,并且可以很容易地扩展。它可以分布在多个客户机上,并且能够同时模拟数十万虚拟用户(如果有足够的硬件,甚至可以模拟数百万)。
Tsung是用Erlang开发的,Erlang是爱立信开发的一种开源语言,用于构建健壮的容错分布式应用程序。

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

介绍

什么是Tsung

Tsung(前IDX-Tsunami)是一个分布式负载测试工具。它是独立于协议的,目前可以用于对shttp、WebDAV、SOAP、PostgreSQL、MySQL、AMQP、MQTT、LDAP和Jabber/XMPP服务器进行压力测试。
Tsung的主要优势是它能够从一台机器上模拟大量同时存在的用户;此外,您还可以在集群上为机器分配用户。当在集群上使用时,您可以使用一个简单的集群(易于设置和维护)在服务器上实现一个非常可观的负载。您还可以在ec2这样的云上使用Tsung。
它是在GNU通用公共许可证版本2下发布的。

特点

主要特点

  • 高性能
    Tsung可以模拟每台物理计算机上同时存在的大量用户:它可以在单个CPU上模拟数千个用户(注意:模拟的用户并不总是活动的:它可以在thinktimeperiod期间空闲)。传统的注射工具不能超过几百(提示:如果你想做的只是要求一个URLin a循环,使用ab;但是,如果您想用扩展的报告构建复杂的场景,Tsung非常适合您)。
  • 分布式
    负载可以分布在客户机集群上
  • 使用插件系统的多协议
    目前支持HTTP(标准web流量和SOAP)、WebDAV、Jabber/XMPP和PostgreSQL。LDAP和MySQL插件首次包含在1.3.0版本中。
  • SSL支持
  • 使用底层OS IP别名,可以在一台机器上使用多个IP地址
  • 在远程服务器或SNMP上使用Erlang代理监视操作系统(CPU、内存和网络流量)
  • XML配置系统
    复杂用户的场景是用XML编写的。可以使用一个简单的浏览器使用theTsung记录器(只使用HTTP和PostgreSQL)编写场景。
  • 动态场景
    您可以在负载下从服务器获取动态数据(无需编写任何代码),并在后续请求中重新注入它。当字符串(或regexp)匹配服务器响应时,还可以循环、重启或停止asession。
  • 混合行为
    在同一个基准测试期间,可以使用多个会话来模拟不同类型的用户。您可以定义基准场景中各种行为的比例。
  • 随机过程
    为了生成真实的流量,用户的思考时间和到达率可以使用概率分布(目前是指数级的)随机化。

HTTP相关功能

  • 支持HTTP/1.0和HTTP/1.1
  • GET、POST、PUT、DELETE、HEAD、OPTIONS和PATCH请求
  • Cookie:自动cookie管理(但也可以手动添加更多cookie)
  • ’ GET If-modified since '类型的请求
  • 基本认证和摘要。OAuth 1.0
  • 用户代理支持
  • 可以添加任何HTTP头
  • 使用Web浏览器记录会话的代理模式
    -SOAP支持使用HTTP模式(SOAPAction HTTP报头ishandled)。
  • HTTP服务器或代理服务器负载测试。

WEBDAV相关特性

WebDAV (RFC 4918)插件是HTTP插件的超集。它添加了以下功能(还支持WebDAV (RFC 3253)的一些版本化扩展):

  • 实现方法:删除、连接、PROPFIND、PROPPATCH、复制、移动、锁定、解锁、MKCOL、报告、选项、MKACTIVITY、签出、合并
  • 记录深度、IF、超时覆盖、目标、URL和锁令牌头。

Jabber/XMPP相关功能

  • 身份验证(纯文本、摘要和sip-digest)。STARTTLS
  • 存在和注册消息
  • 存在和注册消息
  • 加入房间,在房间内发送信息,更改昵称
  • 花名册设置和获取请求
  • 可以在特定的操作上设置全局用户同步
  • BOSH & XMPP在Websocket上
  • 原始的XML消息
    -PubSub
  • 支持多个vhost实例
  • 隐私列表:获取所有隐私列表名称,将列表设置为活动列表

PostgreSQL相关特性

  • 身份验证(密码或MD5)
  • 简单的协议
  • 基本查询和扩展查询
  • 记录会话的代理模式

MySQL相关特性

这个插件只适用于MySQL 4.1或更高版本。

  • 只使用安全认证方法(MySQL >= 4.1)
  • 基本查询

Websocket相关特性

这个插件是实验性的。目前只支持RFC 6455。作为一种服务器类型,它像其他传输协议liketcp和udp一样工作,任何特定于应用程序的协议数据都可以在它上面发送。
您可以在examples/websocket.xml中找到用作会话类型的示例。

  • 同时作为服务器类型和会话类型

AMQP相关特性

这个插件是实验性的。目前只支持AMQP-0.9.1。您可以在examples/ amqm .xml中找到示例。

  • 基本发布和使用
  • 发布者确认和使用者ack
  • QoS

MQTT相关特性

这个插件是实验性的。它支持MQTT V3.1。您可以在examples/mqtt.xml中找到示例。

  • 使用选项连接到mqtt代理
  • 向代理发布mqtt消息
  • 订阅/退订的话题
  • 支持QoS 0和QoS 1

LDAP 相关特性

这个插件是实验性的。它支持MQTT V3.1。您可以在examples/mqtt.xml中找到示例。

  • 绑定
  • 添加、修改和搜索查询
  • Starttls

原始插件相关特性

  • 兼容TCP / UDP / SSL
  • 原始消息
  • no_ack,用于消息的本地或全局ack

完整的报告集

Tsung制作的测量和统计数据非常有特色。它们都用图形表示。Tsung producesstatistics有关:

  • 性能: 响应时间、连接时间、基于请求分组指令(称为事务)的用户场景分解、每秒请求
  • 错误: 统计页面返回代码来跟踪错误
  • 目标服务器行为:Erlang代理可以从目标服务器收集信息。Tsung为CPU和内存消耗以及网络流量生成图表。SNMP和munin也支持tomonitor远程服务器。
    par注意,Tsung自己负责同步过程。收集的统计数据是«synchronized»。
    可以在基准测试期间生成图形,因为统计数据是实时收集的。

优势

Tsung与其他注入工具相比有以下几个优点:

  • 高性能分布式基准测试: 您可以使用Tsung来模拟成千上万的虚拟用户。
  • 易用性: 对于所有支持的协议,艰苦的工作已经完成。不需要编写复杂的脚本。动态场景只需要少量的代码。
  • 多协议支持:例如,Tsung是测试SOAP应用程序的唯一工具之一
  • 监视目标服务器,分析其行为并发现瓶颈。例如,它被用来分析集群对称性(负载是否得到了适当的平衡?),并确定三个集群层(Web引擎、EJBengine和数据库)上机器的最佳组合。
 类似资料: