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

简介:

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

sudo apt-get update
sudo apt-get -y install tsung

或自行下载Tsung源码包安装:http://tsung.erlang-projects.org/

二.启用SNMP agent(snmpd)监视系统运行

  1. 在目标系统上安装snmpd: apt-get install snmpd

  2. 修改配置文档/etc/snmp/snmpd.conf:

    1)开启所有监视端访问:注释行agentAddress  udp:127.0.0.1:161,然后启用行agentAddress udp:161,udp6:[::1]:161
    2)设置snmp agent可监视(OID分支)范围:注释行view   systemonly  included   .1.3.6.1.2.1.1和view systemonly included .1.3.6.1.2.1.25.1,然后添加行view systemonly included .1
    3)rocommunity public  default    -V systemonly行和rocommunity public  default    -V systemonly行public为默认community,可更改自定义
    4)如果在docker中运行snmpd,修改配置文档/etc/snmp/snmpd.conf后,执行service snmpd [command],这对已启动的snmpd是无效的。因此本人通过重启snmpd所运行的容器(expose 161),然后再执行service snmpd start是可行的方案
  3. 启动snmpd:service snmpd start
  4. 监视端安装snmp来检测监视目标系统snmp agent

    sudo apt-get install snmp
    snmpwalk -v 2c -c public [agent主机名或ip]

三.试运行Tsung并生成统计报告

cd ~
mkdir .tsung
cp /usr/share/doc/tsung/examples/http_simple.xml .tsung/tsung.xml
tsung start

注意事项:

1)/usr/share/doc/tsung/examples:Tsung安装后,该目录下有多种配置文档样例可参考
2)~/.tsung/tsung.xml:默认配置文件。如果该文件不存在,则需添加-f选项,tsung -f myconfigfile.xml start
3)~/.tsung/log:运行命令tsung start后将生成该日志目录
4)本例中monitor type为snmp
5)关于tsung.xml的配置可参考:http://tsung.erlang-projects.org/user_manual/

 

cenze@kylin:~/.tsung$ ls log20170115-2235cenze@kylin:~/.tsung$ cd log/20170115-2235cenze@kylin:~/.tsung/log/20170115-2235$ /usr/lib/tsung/bin/tsung_stats.pl
warn, last interval (7) not equal to the first, use the first one (10)
No data for Bosh
No data for Match
No data for Event
No data for Async
No data for Errors
cenze@kylin:~/.tsung/log/20170115-2235$ ls -l
总用量 92drwxrwxr-x 2 cenze cenze  4096 1月  15 22:51 data-rw-rw-r-- 1 cenze cenze  3344 1月  15 22:51 gnuplot.log
drwxrwxr-x 2 cenze cenze  4096 1月  15 22:51 gnuplot_scripts-rw-rw-r-- 1 cenze cenze  7333 1月  15 22:51 graph.html
drwxrwxr-x 2 cenze cenze  4096 1月  15 22:51 images-rw-rw-r-- 1 cenze cenze    62 1月  15 22:35 match.log-rw-rw-r-- 1 cenze cenze  8151 1月  15 22:51 report.html-rw-rw-r-- 1 cenze cenze 10157 1月  15 22:45 tsung_controller@kylin.log-rw-rw-r-- 1 cenze cenze 36480 1月  15 22:45 tsung.log-rw-rw-r-- 1 cenze cenze   961 1月  15 22:35 tsung.xml

注意事项:

1)/usr/lib/tsung/bin/tsung_stats.pl:如果当前目录下不存在tsung.log,则需通过选项--stats 指定统计日志文件,执行该脚本后将在当前目录下生成相关统计报告目录及文档
2)以上为本机上执行的实际情况,点击report.html在浏览器中打开将看到如下界面:

本文转自  zddnd   51CTO博客,原文链接:http://blog.51cto.com/13013666/1943099



相关文章
|
8月前
|
缓存 中间件 测试技术
SOME/IP协议实践指南:精选开发与测试工具解析
SOME/IP协议实践指南:精选开发与测试工具解析
372 0
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析
MarS 是微软亚洲研究院推出的金融市场模拟预测引擎,基于生成型基础模型 LMM,支持无风险环境下的交易策略测试、风险管理和市场分析。
28 8
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析
|
25天前
|
人工智能 自然语言处理 前端开发
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
CodeArena 是一个在线平台,用于测试和比较不同大型语言模型(LLM)的编程能力。通过实时显示多个 LLM 的代码生成过程和结果,帮助开发者选择适合的 LLM,并推动 LLM 技术的发展。
53 7
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
|
2月前
|
数据可视化 数据挖掘 项目管理
远程团队的高效选择!必备协作工具助力分布式办公
随着远程办公的普及,团队协作面临沟通不畅、任务跟踪困难、协同效率低和反馈滞后等挑战。本文推荐几款高效协作工具,如板栗看板、Trello、Asana和Slack,帮助团队应对分布式协作中的痛点,提升项目管理透明度和沟通效率。
52 1
|
2月前
|
编解码 人工智能 自然语言处理
迈向多语言医疗大模型:大规模预训练语料、开源模型与全面基准测试
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据,无需标准化。其核心创新包括任意分辨率编码和动态压缩器模块,适用于从微小图标到长时间视频的多种应用场景。Oryx 在长上下文检索和空间感知数据方面表现出色,并且已开源,为多模态研究提供了强大工具。然而,选择合适的分辨率和压缩率仍需谨慎,以平衡处理效率和识别精度。论文地址:https://www.nature.com/articles/s41467-024-52417-z
54 2
|
2月前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
2月前
|
NoSQL 测试技术 Go
自动化测试在 Go 开源库中的应用与实践
本文介绍了 Go 语言的自动化测试及其在 `go mongox` 库中的实践。Go 语言通过 `testing` 库和 `go test` 命令提供了简洁高效的测试框架,支持单元测试、集成测试和基准测试。`go mongox` 库通过单元测试和集成测试确保与 MongoDB 交互的正确性和稳定性,使用 Docker Compose 快速搭建测试环境。文章还探讨了表驱动测试、覆盖率检查和 Mock 工具的使用,强调了自动化测试在开源库中的重要性。
|
4月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
285 7
Jmeter实现WebSocket协议的接口测试方法
|
3月前
|
缓存 网络协议 Linux
Python渗透测试之ARP毒化和协议应用
Python渗透测试之ARP毒化和协议应用
47 0
|
5月前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
152 1

热门文章

最新文章