乐趣区

关于jmeter:压测工具笔记一之主流工具

@TOC

压测工具笔记 (一) 之支流工具:https://blog.csdn.net/weixin_…)

压测工具笔记 (二) 之 JMeter:https://blog.csdn.net/weixin_…

简介

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

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

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

压力测试(StressTesting),也称为强度测试,通过模仿理论利用的软硬件环境及用户应用过程的零碎负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。压力测试须要确定一个零碎的瓶颈或者不能接管的性能点,来取得零碎能提供的最大的服务级别。艰深地讲,压力测试是为了发现在什么条件下您的应用程序的性能会变得不可承受。

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

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

尽管三种测试的目标截然不同,但其测试操作的环节都是基本一致的,因而一次测试过程中齐全能够蕴含性能测试、负载测试、压力测试三个方面的内容,所应用的测试工具往往大同小异。

市面上风行的压力 / 负载 / 性能测试工具多是来自国外,同时因为开发的目标和侧重点不同,其性能也有很大差别,上面就为您简略介绍几款款目前最常见的测试产品。

LoadRunner

LoadRunner 是一种预测零碎行为和性能的负载测试工具,通过模仿理论用户的操作行为进行实时性能监测,来帮忙测试人员更快的查找和发现问题。LoadRunner 实用于各种体系架构,能反对宽泛的协定和技术,为测试提供非凡的解决方案。企业通过 LoadRunner 能最大限度地缩短测试工夫,优化性能并减速利用零碎的公布周期。

LoadRunner 提供了 3 大次要功能模块:VirtualUser Generator(用于录制性能测试脚本),LoadRunner Controller(用于创立、运行和监控场景),LoadRunner Analysis(用于剖析性能测试后果)既能够作为独立的工具实现各自的性能,又能够作为 LoadRunner 的一部分彼此连接,与其余模块共同完成软件性能的整体测试。

详见:《性能测试入门——LoadRunner 应用初探》(http://www.admin5.com/article…)

LoadRunner 官网:https://saas.hpe.com/zh-cn/so…

Apache JMeter

JMeter 作为一款广为流传的开源压测产品,最后被设计用于 Web 利用测试,现在 JMeter 能够用于测试动态和动静资源,例如动态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等等,还能对服务器、网络或对象模仿微小的负载,通过不同压力类别测试它们的强度和剖析整体性能。另外,JMeter 可能对应用程序做功能测试和回归测试,通过创立带有断言的脚本来验证你的程序返回了你冀望的后果。为了最大限度的灵活性,JMeter 容许应用正则表达式创立断言。

JMeter 的特点包含对 HTTP、FTP 服务器、数据库进行压力测试和性能测试;齐全的可移植性;齐全 Swing 和轻量组件反对包;齐全多线程;缓存和离线剖析 / 回放测试后果;可链接的取样器;具备提供动静输出到测试的性能;反对脚本编程的取样器等。在设计阶段,JMeter 可能充当 HTTP PROXY(代理)来记录浏览器的 HTTP 申请,也能够记录 Apache 等 WebServer 的 log 文件来重现 HTTP 流量,并在测试运行时以此为根据设置反复次数和并发度(线程数)来进行压测。

参考文章:《云智慧压测实战分享之 JMeter 工具应用初探》(https://segmentfault.com/a/11…)

官网链接:http://jmeter.apache.org/

Loadster

Loadster 是一款商用负载测试软件,用于测试高负载下网站、Web 利用、Web 服务的性能体现,反对 Linux,Mac 和 Windows 等运行环境。

Loadster 可能对 Web 利用 / 服务的 Cookies、线程、头文件、动静表格等元素发动测试,取得 Web 在压力下的性能、弹性、稳定性和可扩展性等方面的体现。

官网链接:http://www.loadsterperformanc…

CloudTest

CloudTest 是一个集性能和功能测试于一体的综合压力测试云平台,专为古代网络和挪动利用测试而设计开发,CloudTest 能够图形化实现判断、循环,整体加重了测试开发的工作量,缩短了开发工夫。CloudTest 基于内存的剖析引擎,能够实时收集和展现数据,所有数据在 3 秒内汇聚显示。

CloudTest 采纳虚拟化技术,完满的配合私有 / 公有云计算技术,无需过多的硬件,带宽资源的投入,人力保护老本简直为零,测试按需取得,近程接入,适宜多团队合作。各种规模的模仿老本均远远优于传统工具,同时大大缩短了测试周期。

官网链接:https://soasta.com/cloudtest

阿里云 PTS

阿里云性能测试(Performance Testing)是一个 SaaS 性能测试平台,具备弱小的分布式压测能力,可模仿海量用户实在的业务场景,让利用性能问题无所遁形。PTS 平台特色包含提供压测机,无需装置软件;脚本场景监控简单化,省时、省力;分布式并发压测,施压能力无下限;疾速大规模集群扩容、反对几十万用户及百万级 TPS 性能压测;80% 以上用户根本不须要破费额定的老本。

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

官网链接:https://www.aliyun.com/produc…

压测宝

压测宝是云智慧推出的面向实在用户行为与地区散布的全链路云端压力测试平台,通过云端服务器产生实在分布式用户拜访压力,模仿来自各地区用户接入后盾所带来的实在流量,有限靠近生产环境所面临的各种简单因素,测量实在的用户体验。通过集成云智慧利用性能治理和监控产品,帮忙实现基于实在用户行为的压测计划定制、压测过程中实时定位各环节利用资源及代码瓶颈,现场纠错,剖析利用性能肇因。

产品性能特色方面,压测宝通过独有的凋谢架构,反对各种支流网络协议;同时反对手机 APP 的脚本录制形式,能够大大降低压测脚本制作的工夫和难度。依靠压测宝以及欠缺的产品线,云智慧为用户提供了一站式压测服务,面向云计算时代的简单利用提供业余性能压测服务,帮忙企业主观评估利用性能容量,发现全链路性能瓶颈,对利用架构的调优及架构容量布局提供业余咨询服务,满足企业灵便多变的业务需要。目前压测宝已提供高达 10 万 UV 并发级别的压测服务。

官网链接:http://www.yacebao.com/

kylinTOP 测试与监控平台

kylinTOP 测试与监控平台是一款 B / S 架构的跨平台的集性能测试、自动化测试、业务监控于一体的测试平台,它是深圳是奇林软件有限公司旗下的一款产品,该工具凋谢 10 个收费虚构用户可供学习和应用。在易用性上较好,录制脚本反对最新版本的浏览器,对谷歌和火狐都反对十分好。对一些 https. 的网站证书问题,都为用户主动解决好了,能够轻松录制。录制过程高效便捷这是其它性能工具无法比拟的。仿真能力上是目前业界做的最好的性能工具,能够做到齐全仿真浏览器行为,也就是单用户的 HTTP 申请瀑布图能够和浏览器器齐全一样。总之它是目前国内一款十分难得好用的性能测试工具,能够齐全代替国外的同类产品。目前在军工畛域、测评检测机构、国有企业、银行体系、大型企业有着宽泛的利用。反对的协定较多,尤其在视频畛域反对的协定十分多,具备独特的劣势。官网地址:http://www.70testing.com

NeoLoad

NeoLoad 是 Neotys 出品的一种负载和性能测试工具,可实在地模仿用户流动并监督基础架构运行状态,从而打消所有 Web 和挪动应用程序中的瓶颈。NeoLoad 通过应用无脚本 GUI 和一系列自动化性能,可让测试设计速度进步 5 -10 倍,并将保护的脚本维持在原始设计工夫的 10%,同时帮忙用户应用继续集成系统主动进行测试。

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

官网链接:http://www.neotys.com/product…

WebLOAD

WebLOAD 是来自 Radview 公司的负载测试工具,它可被用以测试零碎性能和弹性,也可被用于正确性验证(验证返回后果的正确性)。其测试脚本是用 Javascript(和集成的 COM/Java 对象)编写的,并反对多种协定,如 Web(包含 AJAX 在内的 REST/HTTP)、SOAP/XML 及其他可从脚本调用的协定如 FTP、SMTP 等,因此可从所有层面对应用程序进行测试。

WebLOAD 存在收费和业余两个版本,收费版本反对 50 个虚构用户,专业版还提供更多的报告和协定供用户抉择。WebLOAD 通常用作 QA 团队的独立运行工具,在开发周期的验证阶段,被测系统(System Under Test,SUT)投入实用之前,在模仿环境中对被测系统进行测试。

官网链接:http://www.radview.com/

Loadstorm

Loadstorm 是一款针对 Web 利用的云端负载测试工具,通过模仿海量点击来测试 Web 利用在大负载下的性能体现。因为采纳了云资源,所以 Loadstorm 的测试老本非常低,用户能够在云端抉择创立本人的测试计划,测试规范和测试场景。

Loadstorm 最多能够生成多达 50000 个并发用户,通过数以千计的云服务器发动拜访。应用 Loadstorm 不须要任何脚本常识,同时提供多样化的测试图表和报告模版,用于精确测量 Web 利用的各项性能指标,如错误率,均匀响应工夫和用户数量等。Loadstorm 能够申请收费试用,但更多压力和性能须要开明高级帐户。

官网链接:http://loadstorm.com/

Load impact(开源)

是一个在线能够收费测试网站负载能力,它就能够满足你的根本要求,当然成为他的付费用户测试的我的项目将会更多。

Load impact 是一款服务于 DevOps 的性能测试工具,反对各种平台的网站、Web 利用、挪动利用和 API 测试。Loadimpact 能够帮忙用户理解利用的最高在线用户访问量,通过模仿测试不同在线人数下网站的响应工夫,估算出服务器的最大负载。

Load impact 的应用非常简单,只须要输出网址进行测试,便可统计出加载网站的一些具体数据。包含整体加载和站内图片,javascript, CSS 等代码载入。能够在右侧列表抉择不同文件来同时对比最多三个对象的加载数据,并生成图表显示,不便网站设计者来剖析。测试实现之后,网站还能够存储测试过的统计数据。

官网链接:http://loadimpact.com/

特地揭示:

1. 因为此测试数据产生在国外,个别反映出的是国外用户拜访您要测试的网站的速度参数,具备肯定的参考性;

2. 对于国内主机,并且次要客户来自于国内的用户来说请谨慎将此数据作为根据。

locust(开源)

Locust 齐全根本 Python 编程语言,采纳 Pure Python 形容测试脚本,并且 HTTP 申请齐全基于 Requests 库。除了 HTTP/HTTPS 协定,Locust 也能够测试其它协定的零碎,只须要采纳 Python 调用对应的库进行申请形容即可。然而须要手工编写脚本,有肯定的难度

OpenSTA(开源)

OpenSTA 是一个收费的、凋谢源代码的 web 性能测试工具,能录制性能十分弱小的脚本过程,执行性能测试。例如虚构多个不同的用户同时登陆被测试网站。其还能对录制的测试脚本进行, 按指定的语法进行编辑。在录制完测试脚本后,能够对测试脚本进行编辑,以便进行特定的性能指标剖析。其较为丰盛的图形化测试后果大大提高了测试报告的可浏览性。OpenSTA 基于 CORBA 的构造体系,它通过虚构一个 proxy,应用其专用的脚本管制语言,记录通过 proxy 的所有 HTTP/S traffic。通过剖析 OpenSTA 的性能指标收集器收集的各项性能指标,以及 HTTP 数据,对系统的性能进行剖析。

总结

以上是市面上比拟常见的十款压力 / 负载 / 性能测试工具,其中以 Jmeter 和 Loadrunner 为代表的大部分产品属于传统防火墙内的压测,实用于测试内网零碎硬件资源以及服务、数据库在并发条件下的性能体现。阿里云 PTS 和 CloudTest 为代表的第二代压测产品把压测机迁徙到云端,通过云资源在防火墙内部生成规模并发,无效升高了压测的老本与筹备周期,进步了效率。只是因为压测点限度,国外或阿里的云压测产品,很难对国内利用,特地是非阿里环境部署的利用发动无效测试。

商用性能工具在易用性(脚本生成)、并发模型、统计指标上要比开源免费软件要好很多,能够大大提高工作效率,升高应用难度,在统计指标上要丰盛的多。

收费开源软件的长处就是收费,不必花钱。但应用难度大,统计指标少,在仿真能力上比拟弱。

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

继续更新中。。。

参考:

退出移动版