在移动应用和Web服务正式发布之前,除了进行必要的功能测试和安全测试,为了保证互联网产品的服务交付质量,往往还需要做压力/负载/性能测试。然而很多传统企业在试水互联网+的过程中,往往由于资源或产品迭代速度等原因忽视了这一块工作,导致新产品上线之后频繁出现卡顿等严重影响用户体验的问题。那么互联网产品为什么要进行压力/负载/性能测试,又有哪些工具帮我们实现呢,本文将为您细说端详。

压力/负载/性能测试之异同

在产品研发过程中,常常会混淆压力/负载/性能测试这三者之间的区别,这三种测试到底有什么不同呢?

压力测试(Stress Testing),也称为强度测试,通过模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。压力测试需要确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别。通俗地讲,压力测试是为了发现在什么条件下您的应用程序的性能会变得不可接受。

负载测试(Load Testing)通常被定义为给被测系统加上它所能操作的最大任务数的过程,负载测试有时也会被称为“容量测试”或者“耐久性测试/持久性测试”,其目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。对于WEB应用来讲,负载则是并发用户或者HTTP连接的数量。负载测试通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。

性能测试(Performance Testing)的目的不是去找系统Bugs,而是排除系统的性能瓶颈,并为回归测试建立一个基准。而性能测试的操作,实际上就是一个非常小心受控的测量分析过程:“运行负载试验->测度性能->调试系统”。在理想的情况下,被测应用在这个时候已经是足够稳定,所以这个过程得以顺利进行。性能测试还有另一个目标就是建立一组被测系统的基准数据。应用在网络上的性能测试重点是利用成熟先进的自动化技术进行网络应用性能监控、网络应用性能分析和网络预测。

虽然三种测试的目的截然不同,但其测试操作的环节都是基本一致的,因此一次测试过程中完全可以包含性能测试、负载测试、压力测试三个方面的内容,所使用的测试工具往往大同小异。

10大主流压力/负载/性能测试工具推荐

市面上流行的压力/负载/性能测试工具多是来自国外,同时由于开发的目的和侧重点不同,其功能也有很大差异,下面就为您简单介绍10款目前最常见的测试产品。

1. LoadRunner

LoadRunner是一种预测系统行为和性能的负载测试工具,通过模拟实际用户的操作行为进行实时性能监测,来帮助测试人员更快的查找和发现问题。LoadRunner适用于各种体系架构,能支持广泛的协议和技术,为测试提供特殊的解决方案。企业通过LoadRunner能最大限度地缩短测试时间,优化性能并加速应用系统的发布周期。


LoadRunner提供了3大主要功能模块:Virtual User Generator(用于录制性能测试脚本),LoadRunner Controller(用于创建、运行和监控场景),LoadRunner Analysis(用于分析性能测试结果)既可以作为独立的工具完成各自的功能,又可以作为LoadRunner的一部分彼此衔接,与其他模块共同完成软件性能的整体测试。

详见:《性能测试入门——LoadRunner使用初探 (性能测试入门–LoadRunner使用初探 - A5创业网 )》

LoadRunner官网:saas.hpe.com/zh-cn/soft

2. Apache JMeter

JMeter作为一款广为流传的开源压测产品,最初被设计用于Web应用测试,如今JMeter可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等等,还能对服务器、网络或对象模拟巨大的负载,通过不同压力类别测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
JMeter的特点包括对HTTP、FTP服务器、数据库进行压力/性能测试;完全的可移植性;完全 Swing和轻量组件支持包;完全多线程;缓存和离线分析/回放测试结果;可链接的取样器;具有提供动态输入到测试的功能;支持脚本编程的取样器等。在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录浏览器的HTTP请求,也可以记录Apache等WebServer的log文件来重现HTTP流量,并在测试运行时以此为依据设置重复次数和并发度(线程数)来进行压测。

参考文章:《云智慧压测实战分享之JMeter工具使用初探(云智慧压测实战分享之JMeter工具使用初探 - CloudwiseAPM - SegmentFault )》

官网链接:Apache JMeter - Apache JMeter™

3. NeoLoad

NeoLoad是Neotys出品的一种负载和性能测试工具,可真实地模拟用户活动并监视基础架构运行状态,从而消除所有Web和移动应用程序中的瓶颈。NeoLoad通过使用无脚本GUI和一系列自动化功能,可让测试设计速度提高5-10倍,并将维护的脚本维持在原始设计时间的10%,同时帮助用户使用持续集成系统自动进行测试。

NeoLoad支持WebSocket、HTTP1 / 2、GWT、HTML5、AngularJS、Oracle Forms等技术协议,能够监控包括操作系统,应用服务器,Web服务器,数据库和网络设备在内的各种IT基础设施,同时可以通过Neotys云平台发起外部压力。

官网链接:neotys.com/product/over

4. WebLOAD

WebLOAD是来自Radview公司的负载测试工具,它可被用以测试系统性能和弹性,也可被用于正确性验证(验证返回结果的正确性)。其测试脚本是用Javascript(和集成的COM/Java对象)编写的,并支持多种协议,如Web(包括AJAX在内的REST/HTTP)、SOAP/XML及其他可从脚本调用的协议如FTP、SMTP等,因而可从所有层面对应用程序进行测试。
WebLOAD存在免费和专业两个版本,免费版本支持50个虚拟用户,专业版还提供更多的报告和协议供用户选择。WebLOAD通常用作QA团队的独立运行工具,在开发周期的验证阶段,被测系统(System Under Test,SUT)投入实用之前,在模拟环境中对被测系统进行测试。

官网链接:Load Testing & Website Performance Testing Tools

5. Loadster

Loadster是一款商用负载测试软件,用于测试高负载下网站、Web应用、Web服务的性能表现,支持Linux,Mac和Windows等运行环境。
Loadster能够对Web应用/服务的Cookies、线程、头文件、动态表格等元素发起测试,获得Web在压力下的性能、弹性、稳定性和可扩展性等方面的表现。

官网链接:Load & Stress Testing Software for High-Performance Web Apps

6. Load impact

Load impact是一款服务于DevOps的性能测试工具,支持各种平台的网站、Web应用、移动应用和API测试。Load impact可以帮助用户了解应用的最高在线用户访问量,通过模拟测试不同在线人数下网站的响应时间,估算出服务器的最大负载。
Load impact的使用非常简单,只需要输入网址进行测试,便可统计出加载网站的一些详细数据。包括整体加载和站内图片,javascript, CSS等代码载入。可以在右侧列表选择不同文件来同时对比最多三个对象的加载数据,并生成图表显示,方便网站设计者来分析。测试完成之后,网站还可以存储测试过的统计数据。

官网链接:Performance testing for DevOps

7. CloudTest

CloudTest 是一个集性能和功能测试于一体的综合压力测试云平台,专为现代网络和移动应用测试而设计开发,CloudTest可以图形化实现判断、循环,整体减轻了测试开发的工作量,缩短了开发时间。CloudTest基于内存的分析引擎,可以实时收集和展示数据,所有数据在3秒内汇聚显示。
CloudTest采用虚拟化技术,完美的配合公有/私有云计算技术,无需过多的硬件,带宽资源的投入,人力维护成本几乎为零,测试按需获得,远程接入,适合多团队协作。各种规模的模拟成本均远远优于传统工具,同时大大缩短了测试周期。

官网链接:Cloud Load Testing Tools & Software

8. Loadstorm

Loadstorm是一款针对Web应用的云端负载测试工具,通过模拟海量点击来测试Web应用在大负载下的性能表现。由于采用了云资源,所以Loadstorm的测试成本非常低,用户可以在云端选择创建自己的测试计划,测试标准和测试场景。


Loadstorm最多可以生成多达50000个并发用户,通过数以千计的云服务器发起访问。使用Loadstorm不需要任何脚本知识,同时提供多样化的测试图表和报告模版,用于准确测量Web应用的各项性能指标,如错误率,平均响应时间和用户数量等。Loadstorm可以申请免费试用,但更多压力和功能需要开通高级帐户。

官网链接:Load test your app with LoadStorm to measure scalability!

9. 阿里云PTS

阿里云性能测试(Performance Testing)是一个SaaS性能测试平台,具有强大的分布式压测能力,可模拟海量用户真实的业务场景,让应用性能问题无所遁形。PTS平台特色包括提供压测机,无需安装软件;脚本场景监控简单化,省时、省力;分布式并发压测,施压能力无上限;快速大规模集群扩容、支持几十万用户及百万级TPS性能压测;80%以上用户基本不需要花费额外的成本。


PTS分为两个版本,Lite版免费,企业版提供资源包月和按量付费两种计费方式,按量付费采用阶梯价计算,满足企业客户多种压测需求。

官网链接:性能测试_性能测试工具_压力测试_负载测试_阿里云

10. 压测宝

压测宝是云智慧推出的面向真实用户行为与地域分布的全链路云端压力测试平台,通过云端服务器产生真实分布式用户访问压力,模拟来自各地域用户接入后台所带来的真实流量,无限接近生产环境所面临的各种复杂因素,测量真实的用户体验。通过集成云智慧应用性能管理和监控产品,帮助实现基于真实用户行为的压测方案定制、压测过程中实时定位各环节应用资源及代码瓶颈,现场纠错,分析应用性能肇因。
产品功能特色方面,压测宝通过独有的开放架构,支持各种主流网络协议;同时支持手机APP的脚本录制方式,可以大大降低压测脚本制作的时间和难度。依托压测宝以及完善的产品线,云智慧为用户提供了一站式压测服务,面向云计算时代的复杂应用提供专业性能压测服务,帮助企业客观评估应用性能容量,发现全链路性能瓶颈,对应用架构的调优及架构容量规划提供专业咨询服务,满足企业灵活多变的业务需求。目前压测宝已提供高达10万UV并发级别的压测服务。

官网链接:压力测试必备工具_网站/APP性能压力测试软件【压测宝】
以上是市面上比较常见的十款压力/负载/性能测试工具,其中以Jmeter和Loadrunner 为代表的大部分产品属于传统防火墙内的压测,适用于测试内网系统硬件资源以及服务、数据库在并发条件下的性能表现。阿里云PTS和CloudTest为代表的第二代压测产品把压测机迁移到云端,通过云资源在防火墙外部生成规模并发,有效降低了压测的成本与准备周期,提高了效率。只是由于压测点限制,国外或阿里的云压测产品,很难对国内应用,特别是非阿里环境部署的应用发起有效测试。

为满足复杂的云端分布式应用交付场景的压力测试需求,第三代以云智慧压测宝为代表的压测产品应运而生,从终端用户行为与体验的视角来审视应用性能问题,通过与APM整合深度追踪系统,准确发现影响性能的问题瓶颈。

最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!

这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

自学推荐B站视频:

零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!

自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享

10大主流压力/负载/性能测试工具推荐相关推荐

  1. 10大主流压力测试工具推荐(转载)

    在移动应用和Web服务正式发布之前,除了进行必要的功能测试和安全测试,为了保证互联网产品的服务交付质量,往往还需要做压力/负载/性能测试.然而很多传统企业在试水互联网+的过程中,往往由于资源或产品迭代 ...

  2. 10大主流压力测试工具推荐

    在移动应用和Web服务正式发布之前,除了进行必要的功能测试和安全测试,为了保证互联网产品的服务交付质量,往往还需要做压力/负载/性能测试.然而很多传统企业在试水互联网+的过程中,往往由于资源或产品迭代 ...

  3. 10大主流压力测试工具

    市面上流行的压力/负载/性能测试工具多是来自国外,近年来国内的性能测试工具也如雨后春笋崛起.同时由于开发的目的和侧重点不同,其功能也有很大差异,下面就为您简单介绍10款目前最常见的测试产品. 1.ky ...

  4. 10大主流性能测试工具推荐

    市面上流行的压力/负载/性能测试工具多是来自国外,近年来国内的性能测试工具也如雨后春笋崛起.同时由于开发的目的和侧重点不同,其功能也有很大差异,下面就为您简单介绍10款目前最常见的测试产品. 1.ky ...

  5. 简单、好用的性能测试工具推荐

    读者提问: 有哪些好用.简单的性能测试工具推荐 ? 阿常回答: 1.Jmeter(开源) https://jmeter.apache.org 2.LoadRunner(商用) https://www. ...

  6. 10大最适合编程的字体推荐下载,让代码看起来更美更舒服!

    这篇文章是转载的,也不知道人家让不让转载,但是我一骨碌脑儿地都给复制粘贴下来了(老农民思想) 我这里不提供下载,可以到网上去搜一下相关的资源,但是一定注意下载安全. 这里给出参考的原文章地址: 10大 ...

  7. web版本 开源压测工具_14款好用开源的Web应用压力负载,性能测试工具推荐

    JMeter JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现. Grinder Grinder是一个负载测试框架,通过Jython来编写测试脚本,基 ...

  8. 10款常见常用的自动化测试工具推荐

    当我们功能测试干的时间比较久了或者想要学习更多的技术,提升自己的时候,基本上第一时间就会想到的是自动化测试.而在自动化测试领域,自动化工具的核心地位毋庸置疑,自动化测试工具有哪些?下面为大家推荐10款 ...

  9. 高性能WEB开发(6) - web性能测试工具推荐

    Posted on 2010-04-28 12:57 BearRui(AK-47) 阅读(9341) 评论(14)  编辑  收藏 所属分类: 高性能WEB开发 本来这篇文章应该在写在前面的,因本人写 ...

最新文章

  1. 【学习笔记】超简单的多项式求逆(含全套证明)
  2. 软件测试Web数据分析工具HttpWatch安装
  3. Android中TimePicker时间选择器的使用和获取选择的时和分
  4. 进入环境_如何进入Windows恢复环境(WinRE)
  5. javaScript第二天(1)
  6. Xcode4.5编译ffmpeg成功,过程说明
  7. ural 1353. Milliard Vasya's Function
  8. mysql并发插入死锁_MySQL: 并发replace into的死锁问题分析-阿里云开发者社区
  9. error和warning指令
  10. 每日算法系列【LeetCode 面试题 17.05】字母与数字
  11. 计算混响时间的意义_混响时间的测量方法和步骤
  12. linux 提示libaio.so.1,解决Mysql报错缺少libaio.so.1
  13. hua图软件 mac_10款Mac上设计师必备的设计绘图工具推荐和下载 | 玩转苹果
  14. 贱人工具箱使用技巧3——方向复制
  15. 什么是同源策略,为什么浏览器要使用同源策略
  16. 好评不断的文化纪录片《中国》,背后的“剪刀手”竟是它?
  17. 华为防火墙USG6309E开局基础配置之安全策略
  18. 一个优秀IT专家的成长历程---献给所有的颓废或..
  19. 基于python3.7 numpy scipy matplotlib sklearn的机器学习笔记5—监督学习之KNN、DT、NB算法简析
  20. CGI 学习笔记 HelloCGI

热门文章

  1. 利用python的matplotlib绘制分布图
  2. 解决了.Net 2003“试图调试项目时发生错误”的问题
  3. safari html5插件安装,Safari巧用小插件 体验不输第三方浏览器
  4. 联发科p60和骁龙710哪个好_骁龙710、麒麟710和联发科P60哪个好 性能对比测试 (全文)...
  5. java 判断cmyk_JAI ImageIO的纯Java替代品,用于检测CMYK图像
  6. 职称计算机考试光盘就一套模拟题,职称计算机考试光盘复习题档.doc
  7. EMC 设计经验总结
  8. 在ISE中设置字体大
  9. Simulink基础:基本模块操作2(Gain模块与积分模块)
  10. networking /etc/network/interfaces 笔记221102