压力测试是确立系统稳定性的一种测试方法,一般在系统正常运做范围以外进行,以考察其功能极限和隐患。与功能测试不一样,压测是以软件响应速度为测试目标的,尤为是针对在较短期内大量并发用户的访问时,软件的抗压能力。html
至于为何产品或业务系统在经过功能测试后还须要进行压力测试,缘由很简单,由于它重要,为何重要?众所周知,响应速度是用户体验的核心指标之一。 SmartBear 数据代表,若是 Amazon 的加载时间延长1秒,那么一年就会减小16亿美圆的营收。用户与网站互动的过程当中,若是加载时间超过3秒,57% 的用户会流失。可见,经过压测来优化产品体验和性能是多么的重要。前端
传统的压测方法一般的作法须要准备大量的环境,如测试的压力机,安装测试工具,录制测试脚本,对服务器不断施加“压力”,经过这种方式来肯定系统的瓶颈或者不能接收的性能点,来得到系统能提供的最大服务级别的测试,这个阶段咱们称之为压测1.0。数据库
压测1.0时代的主流压测工具备 LoadRunner , SilkPerformer , Ratinal , QA Load , Jmeter 等等, LoadRunner 为传统压测1.0时代最主要的表明产品。 后端
图1.传统的压测现状性能优化
传统的测试方法下很难去作到对整个系统去作一次大型的压力测试,这种状况下只能把每一个系统独立开来,对他进行性能测试,而后对整个核心系统去作分析,肯定系统的短板,对短板进行压力测试。服务器
一般须要用预估的方式,业务部门估算今年的交易额,应用部门估算,网络部门估算,基础架构部门估算。最后的结果就是若是须要1000台服务器,那么就准备1500台。若是须要5 G 的 CDN 带宽,那么就准备7.5 G 。几乎全部资源都多准备50%。网络
压测1.0时代的压测缺点很明显。架构
测试过程缓慢,周期过长并发
并不是聚焦于全球客户的体验负载均衡
很是昂贵的受权费用及硬件投入
为实验室测试而设计,对生产或线上环境无能为力
不能针对当今复杂的应用及架构提供实时的反馈
基于云计算的全链路压力测试咱们称之为云压测,这个阶段咱们叫压测2.0。云压测经过遍及云端的压力模拟服务器,来制造“真实用户访问”,这个过程能够覆盖到真实交易系统的全链路,全业务测试系统,而且革命性的使用云资源这种轻属性资产,对几乎来自全世界互联网和移动互联网的压力进行测试。云压测模拟测试彻底还原真实用户网络访问情况。
图2.“云压测+ APM ”进入压测2.0时代
__当产生压测需求时,咱们布置在各主流云厂商(AWS、阿里云、Azure、青云、腾讯云、金山云、UCloud等等)的压测虚机自动下发压测脚本,进行云端托管式部署__云端压测机启动,对用户系统进行压测。同步压测,同步产出压测数据。
利用云计算优点,当须要进行模拟大规模用户访问时,只要多开云主机就能实现,须要模拟100万的用户访问,再开100台云主机。
云压测的准备时间基本上就是由云主机启动时间来决定,这在压测1.0时代是根本不可能实现的。云压测是在云主机发起的,所以反映了真实的用户访问环境,而压测1.0时代的传统压测方式则必须在内网的模拟环境下进行。
压测2.0时代有点一样明显。
迅速部署
实时统计
真实世界的规模和模拟
分布式的用户
高效且持续
除去了硬件投入
压测1.0时代的 LoadRunner VS 云压测
图5.云压测 + APM 典型应用场景
与压测1.0时代只关注于后端性能不一样,云压测关注前端和后端性能,从前端的不一样物理位置、不一样运营商链路、宽带、窄带、带宽、 CDN 、防火墙、负载均衡,到后端的应用软件、数据库、硬件资源、系统配比等,云压测在测试环境中还原真实业务环境。
云压测和 APM 结合,全链路全业务接口压力测试,全面覆盖先后端全部环节真正实现端到端性能优化解决方案,全方位提高用户体验。
OneAPM 为更多企业提供全栈式的性能管理以及 IT 运维管理服务。阅读更多文章,请访问 OneAPM 官方技术博客