• 这 5 款实用性能测试工具,你会如何选择?


    当我们做性能测试的时候,测试协议需要用到性能测试工具。市场上有很多可以做性能测试的工具。有些是收费的,有些是开源免费的。选择的时候它是否友好支持所有的协议呢?现在带大家来看看一些行业中常用的流行的性能测试工具。

    ** AB(ApacheBench)**

    ApacheBench 是一个轻量级工具。主要用于 HTTP 协议的性能测试。非常简单快捷。不支持场景化测试。

    ab是个小巧而简便容易上手的工具,但是没有图形化的界面,提供的也是基本的性能参数,不能监控,一般用于临时测试某个接口的效率。

    ab -n 1 -c 1 https://testerhome.com/

    • -n:总请求次数

    • -c:并发次数(并发请求不能大于总请求次数)

    ** Apache JMeter**

    JMeter 是 Apache
    开源基金会提供的完全开源的性能测试工具,旨在加载测试功能行为和衡量性能。它最初是为测试Web应用程序而设计的,但此后已扩展到其他测试功能。

    Apache
    JMeter也可用于测试静态和动态资源,Web动态应用程序的性能。用于模拟服务器,服务器组,网络或对象上的繁重负载,以测试其强度或分析不同负载类型下的总体性能。支持分布式运行,JMeter
    使用 Java 语言开发的,使用前需要安装 Java 运行环境。某些私有协议可以二次开发插件来支持相应的协议。

    ** LoadRunner**

    LoadRunner是一个性能测试工具,它最初是Mercury公司的产品,2006年Mercury公司被HP收购。

    LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner
    能够对整个企业架构进行测试。通过使用LoadRunner
    企业能最大限度地缩短测试时间优化性能和加速应用系统的发布。因为是闭源收费的软件,且授权费用高昂。使用也较为复杂,而且该工具体积比较大。

    LR
    强调的是对整个企业应用架构进行测试,它通过模拟实际用户的操作行为和实行实时性能监控来帮助客户更快的确认和查找问题。LR能支持广泛的协议,可以为客户的特殊环境,提供特殊的解决方案。

    ---缺图----

    ** Locust**

    Locust
    是易于使用的分布式用户负载测试工具。它旨在对网站进行负载测试,并确定系统可以处理多少个并发用户。非常易用。很方便地基于Python进行脚本扩展和业务请求实现。完全基于事件驱动,所以不受进程和线程的限制,可以支持发起更高的并发数请求。可以分布式发起并发请求。

    ** nGrinder**

    nGrinder 是一个用于在多台机器上运行用 jython(在 JVM 上运行的 python)编写的测试脚本的应用程序。它的内部引擎是基于
    Grinder。nGrinder 分别用 controler 和 agent 将 Grinder 的 controler 和 agent
    包装起来,并扩展了支持多个并发测试的特性。

    nGrinder是一个压力测试的平台,使您可以同时执行脚本创建,测试执行,监视和结果报告生成器。提供了进行压力测试的简便方法。

    ** 性能测试工具选择**

    看到这么多的工具,我在做一个性能测试任务的时候该怎么选择呢?

    1.根据压测场景来选择

    根据压测场景是什么来选择。如果说是一次性单接口的场景就可以使用 AB。如果说是复杂事物多接口需要业务场景的话,就会选择 JMeter
    这类工具可以构造丰富的场景能满足需求。

    2.我需要提供多大压力

    我要提供多大的压力?是1000 QPS还是万级以上的。压力很大的话就要考虑压力测试工具是否支持分布式,能否快速扩展 agent。对于 JMeter
    来讲就很好的支持了。

    3.周期性需求

    业务可能频繁上线,服务随时变动。可能会有一个周期性需求,按月巡检。需要一个场景文件,我可以去做数据驱动,实时跟进数据改变。最后希望结果落库。

    4.二次开发的需求

    JMeter 开源插件化思想,支持 Thrift,Dubbo 等多种协议。可以快速平台化。

    最后是社区问题支持:JMeter 开放社区,广泛使用。有问题的时候能够快速获得答案。

    基于我们这些需求点,就选择使用 JMeter 作为压测工具。

    然后另外一个观点是:我们不用在乎工具是什么语言写的,市场情况如何。我们用工具就是要实现对系统的压力。如果工具能实现压力,它就实现了我们的性能测试工具想要的东西。并且在性能测试工具当中我们只要关注两条曲线:一个是
    TPS、一个是响应时间。

    能看懂性能曲线才是我们性能测试工程师的能力。
    而不是我们用什么测试工具,有多熟练工具。
    因为熟练只是一个开始。不管你是用什么样的性能测试工具,我们都会看到一些数据。这些数据我们要知道带给我们什么样的含义?后续做什么样的分析。所以这是性能测试工具可以给我们提供的东西。也是性能测试工具的意义。

    性能测试高级人才技术栈

    目前市面上深受 BAT、TMD 等企业青睐的性能测试高级人才,通常具备综合的测试开发和性能测试与性能分析优化技能:

    对于想系统提升性能测试与分析技能的同学,这里推荐 《高级性能测试实战训练营》 课程 —— 霍格沃兹测试学院出品, 100%
    好评,口碑炸裂,
    由业界资深测试架构师 思寒老师 、知名性能测试顾问 高楼老师、 腾讯资深性能测试专家 WT 老师, 以及多位
    BAT 一线资深测试专家联袂打造

    讲师水平和课程深度全网第一,全程项目实战驱动。大咖带你 快速掌握 性能测试实战三大核心技能: 性能压测体系、性能监控体系、性能分析体系

    入群领三重福利

    福利一 :收听价值 299 元 的性能测试实战公开课+录播视频+PPT资料!

    福利二 :抽奖赠送性能测试经典好书《性能之巅:洞悉系统、企业与云计算》。

    福利三 :以团购优惠价报名《 高级性能测试实战训练营 》课程。

    来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力
    QQ交流群:484590337
    公众号 TestingStudio
    点击获取更多信息

  • 相关阅读:
    win7文件搜索技巧
    【SpringCloud】Zuul网关入门(十五)
    【SpringCloud】Hystrix仪表板(Dashboard)(十四)
    【SpringCloud】Hystrix工作原理(十三)
    【SpringCloud】Hystrix服务隔离(十二)
    【SpringCloud】Hystrix服务熔断(十一)
    【SpringCloud】Hystrix服务降级(十)
    【SpringCloud】OpenFeign服务超时与日志输出(九)
    【SpringCloud】OpenFeign服务调用(八)
    【SpringCloud】自定义Ribbon均衡策略(七)
  • 原文地址:https://www.cnblogs.com/hogwarts/p/15818981.html
Copyright © 2020-2023  润新知