Tsung 是一款遵循 GPLv2 的开源服务器分布式压力测试工具,支持多种协议。Tsung 可以用来进行 HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和 Jabber/XMPP 服务器的压力测试

Tsung 的原理是模拟大量用户,测试基于 IP C/S 应用的可扩展性和性能。Tsung 可以分布在多个客户端机器,模拟成千上万的虚拟用户。

Tsung 于 2015 年 7 月 20 日更新到 Tsung 1.6.0 版本,至今未有新版本发布,但 Github 上还有 bug fix 提交。

GitHub 地址:https://github.com/processone/tsung

Tsung 是 Erlang 开发的,主要特性如下:

  • 高性能,支持集群
  • 多协议:HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP , XMPP/Jabber, BOSH, MQTT, AMQP 和 SSL
  • 通过底层 OS IP 别名可以在单个机器上使用多个 IP 地址
  • 在远程服务器使用 SNMP、Munin 或者 Erlang 代理来监控操作系统
  • XML 配置系统;多个会话可以用来模拟不同类型的用户。动态会话可以轻松的使用 XML 描述
  • 可以使用便捷的分布式自由的生成实际流量、用户思考时间以及到达率
  • 在负载测试的时候可以生成 HTML 报告来查看响应时间、服务器 CPU 等

HTTP

  • 支持 HTTP/1.0 和 HTTP/1.1
  • GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH 方法
  • 自动处理 Cookies
  • 代理模式可以使用一个 Web 浏览器录制会话
  • 使用 HTTP 模式能基本支持 SOAP
  • WebDAV 扩展
  • Websocket

XMPP (Jabber)

  • 认证、存在和注册信息
  • 在线或者离线用户的通讯信息
  • Roster set 和 get 请求
  • PubSub, MUC, Virtual Hosts
  • 基于 Websocket 的 BOSH & XMPP

PostgreSQL

  • 认证 (密码或者 MD5)
  • 基础和扩展队列
  • 提供代理模式来录制会话

MySQL

此插件只支持 MySQL 4.1 及以上版本

  • 安全认证方法 (MySQL >= 4.1)
  • 基础队列

LDAP

  • 绑定
  • 新增、搜索、修改队列
  • starttls (only with R12B-0 Erlang and up)

AMQP

  • 基础发布和 consume
  • publisher confirm 和 consumer ack
  • qos

MQTT

支持 MQTT V3.1

  • 通过选项连接到 mqtt broker
  • 发布 mqtt 消息到 broker
  • 订阅/取消订阅 主题
  • 支持 QoS 0 和 QoS 1s MQTT V3.1

更多内容请看 Tsung 主页:http://tsung.erlang-projects.org/