• 性能测试之tsung


    缘由:之前一直使用jmeter进行性能测试,但是jmeter有个瓶颈(如果并发数加大,会将客户机的硬件资源耗死,当然这种现象可以使用分布式部署执行);后面听说tsung支撑百万并发(事实上后续发现这种百万也是使用的分布式执行),所以本篇就针对tsung进行描述下。

    【1】tsung是什么

     tsung 官方使用手册:http://tsung.erlang-projects.org/user_manual/

     tsung是一个开源、多协议、分布式的压力测试工具。它可以用来测试HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和Jabber/XMPP的服务器,并且支持扩展协议。

    【2】tsung的特性

    tsung的主要特性

    1. 高性能:Tsung每台物理计算机可以模拟大量并发用户:它可以在单个CPU上模拟数千个用户

    2. 分布式:负载可以分布在客户端计算机的群集上

    3. 使用插件系统的多协议:当前支持HTTP(标准Web流量和SOAP),WebDAV,Jabber / XMPP和PostgreSQL。LDAP和MySQL插件首先包含在1.3.0版本中

    4. SSL支持

    5. 使用基础OS IP别名,可以在一台计算机上使用多个IP地址

    6. 使用远程服务器或SNMP上的Erlang代理进行OS监视(CPU,内存和网络流量)

    7. XML配置系统:用XML编写复杂的用户场景。可以使用Tsung记录器(仅HTTP和PostgreSQL)通过简单的浏览器编写场景。

    8. 动态方案:可以在负载下从服务器获取动态数据(无需编写任何代码),然后将其重新插入后续请求中。当字符串(或regexp)与服务器响应匹配时,还可以循环,重新启动或停止会话。

    9. 混合行为:在同一基准测试期间,可以使用多个会话来模拟不同类型的用户。您可以定义基准测试方案中各种行为的比例。

    10. 随机过程:为了产生现实的流量,可以使用概率分布(当前为指数)将用户的思考时间和到达率随机化

    【3】tsung的安装

     

    tsung目前只支持Linux系统;tsung是erlang写的,绘制图表时使用的gnuplot,需要使用perl相关库,所以也要安装perl, gnuplot。

    1. 安装依赖

      yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel

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

      yum installflexerlang systemd-devel autoconf automake lksctp-tools-devel m4 ncurses-develzlib-devel unixODBC-devel emacs emacs-el wxGTK3-devel

    2. 安装perl及gnuplot

      yum -y install perl

      yum -y install gnuplot

    3. 编译安装

      ./configure

      make &&make install

     【4】tsung的执行

    1. 执行案例

      tsung -f  /usr/share/doc/tsung/examples/http_simple.xml start

    2. 报告

      进入生成的log目录执行命令:

      /usr/lib/tsung/bin/tsung_stats.pl

    3. 结果

     

     

     【5】后记

    具体的使用请参考官网,tsung无界面模式,在Linux上使用xml配置场景或者接口进行执行测试并且开发语言是比较偏的erlang,相对于要入门的新手来说还是比较难的;一般的测试性能执行个人认为使用jmeter还是足够的,对于场景的编写jmeter也是可以胜任的,当然还有另外一种协程类的性能执行工具 locust也是支持百万并发的。工具只是辅助,重要的还是测试策略的规划,可以实现目标即可。

  • 相关阅读:
    使用 PowerShell 进行 SQL Server 数据库备份
    当 Windows 10 应用商店更新游戏/应用遇到 0x80070032 错误时的一种解决方案
    在 SQL Server 恢复一个已存在的数据库的备份(即通过备份功能复制一个新数据库)
    在 Windows Server 2008 R2 中安装 PowerShell 5.1 与中文脚本错误解决
    vite项目使用 vitepluginmock 插件 mock数据,fetch报错SyntaxError: Unexpected token < in JSON at position 0
    MAC和移动端实现charles和代理软件共存【100%生效】
    eslint遇到的报错
    swiper.js轮播在iOS下禁用上拉下拉回弹问题解决
    js图片监听onload事件,依然有获取不到宽高的场景
    15分钟快速配置eslint,prettier,lintstaged,husky,commitizen实现前端项目代码规范化
  • 原文地址:https://www.cnblogs.com/VVsky/p/13565050.html
Copyright © 2020-2023  润新知