随着移动互联网、云计算、物联网等技术的不断发展,企业数字化转型的渗透率也越来越高,应用架构变得更加离散和复杂,一个系统是否具备高稳定性,不但要看其架构是否合理,还要关注其性能是否强大。
对于小型的产品来说,每秒的在线人数超过百人就可能会导致产品无法响应,而对于一些几经考验的产品,每秒上万,上百万的并发才能满足他们的业务需求。当产品的承载能力遇到瓶颈的时候,发包不断超时,页面不断加载,然后页面无法响应,直到最后服务器崩溃......企业要想从容应对业务访问流量,准确发现系统性能瓶颈,就需要找到更加科学解决方案,而性能测试是找到系统性能瓶颈的最佳途径。
从压力测试说起
压力测试是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患。与功能测试不同,压测是以软件响应速度为测试目标的,尤其是针对在较短时间内大量并发用户的访问时,软件的抗压能力。
至于为什么产品或业务系统在通过功能测试后还需要进行压力测试,原因很简单,响应速度是用户体验的核心指标之一。 SmartBear 数据表明,如果 Amazon 的加载时间延长1秒,那么一年就会减少16亿美元的营收。用户与网站互动的过程中,如果加载时间超过3秒,57% 的用户会流失。可见,通过压力测试来优化产品体验和性能是产品上线前的重要一环。
传统压力测试
传统的压测方法通常的做法需要准备大量的环境,如测试的压力机,安装测试工具,录制测试脚本,对服务器不断施加“压力”,通过这种方式来确定系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。但是,传统的测试方法下很难做到对整个系统去做一次大型的压力测试,这种情况下只能把每个系统独立开来,对他进行性能测试,然后对整个核心系统去做分析,确定系统的短板,对短板进行压力测试。
通常需要用预估的方式,业务部门估算今年的交易额,应用部门估算,网络部门估算,基础架构部门估算。最后的结果就是如果需要1000台服务器,那么就准备1500台。如果需要5 G 的 CDN 带宽,那么就准备7.5 G 。几乎所有资源都多准备50%。
传统性能测试在当前应用环境下的短板
1. 时间成本高:
· 测试环境部署时间需要5天以上,且环境复用率低;
· 在测试环境中验证指标与生产环境差异极大,数据准确度差参考意义有限,系统上线后崩溃几率大;
2. 资源成本高:
· 传统软件搭建10000用户并发测试环境需要10台物理主机;
· 传统性能测试以主要定位单主机性能问题定位为主
· 传统测试工具脚本、数据、报告管理分散有较大的数据安全隐患
3. 人力成本高
· 开源性能测试软件搭建超过10000用户并发的系统需要做大量的应用代码改造,改造过程耗时耗力
· Loadrunner、Jmeter等工具操作复杂学习成本高测试人员不易掌握
4. 费用成本高
· 10000并发的测试工具license授权费用超过百万
· 敏捷测试需要强有力的工具支撑
【云压力测试 + APM】的端到端压测解决方案
基于云计算的全链路压力测试我们称之为云压力测试。云压测通过遍布云端的压力模拟服务器,来制造“真实用户访问”,这个过程可以覆盖到真实交易系统的全链路,全业务测试系统,并且革命性的使用云资源这种轻属性资产,对几乎来自全世界互联网和移动互联网的压力进行测试。云压测模拟测试完全还原真实用户网络访问状况。
当产生压测需求时,我们布置在各主流云厂商(AWS、阿里云、Azure、青云、腾讯云、金山云、UCloud等等)的压测虚机自动下发压测脚本,进行云端托管式部署云端压测机启动,对用户系统进行压测。同步压测,同步产出压测数据。利用云计算优势,当需要进行模拟大规模用户访问时,只要多开云主机就能实现,需要模拟100万的用户访问,再开100台云主机。
云压力测试的准备时间基本上就是由云主机启动时间来决定,这在传统的压力测试方案中是根本不可能实现的。云压力测试是在云主机发起的,因此反映了真实的用户访问环境,而传统压测方式则必须在内网的模拟环境下进行。
与传统的压力测试只关注于后端性能不同,云压测关注前端和后端性能,从前端的不同物理位置、不同运营商链路、宽带、窄带、带宽、 CDN 、防火墙、负载均衡,到后端的应用软件、数据库、硬件资源、系统配比等,云压力测试在测试环境中还原真实业务环境。
而当云压力测试与APM 相结合时,通过快速便捷的全链路全业务接口压力测试的方式,可缩短70%以上的压测时间,大大增加应用单次迭代效率。全面覆盖前后端所有环节,模拟不同地域真实用户访问状况,为用户网络、CDN、负载等环境的精准优化提供重要依据,直观的反映出不同压力下系统性能情况以及对应的软硬件资源消耗及容量信息,为后续应用扩容提供数据支撑。再结合后端APM监控,快速定位应用性能瓶颈和错误,降低平均故障修复时间。达到对系统当前性能状态了如指掌、未雨绸缪,从而保障系统长期稳定运行,真正实现端到端性能优化解决方案,全方位提升用户体验。
1. 快速的创建复杂场景压力测试
通过分布式压力负载机,模拟业务系统的用户行为特征或客户端行为特征,可按需生成高达百万级虚拟用户。
2. 直观的输出压测分析报告
测试过程中进行分析统计,并生成测试报告,直观输出被测系统在自定义压力环境下的性能表现,为系统验收过程提供可靠的数据支撑。
3. 全方位的进行业务综合监控
整个压力测试过程中实时监控被测系统的性能状态、服务状态,动态定位被测系统性能瓶颈,达到应用前端和后端所有环节的“无死角”监测。为IT资源部署调整及项目验收提供有力依据。
4. 自动的完成问题根因定位
可对待验收系统进行自动应用架构视图梳理、在全链路性能全方位监控的基础上,实现及时发现故障、并能定位故障根因,帮助用户急速解决性能问题,大大缩短系统调优时间,实现系统的快速迭代上线。
目前睿象云云压力测试平台已经服务了包括上汽机集团、太平洋保险、中国电信、李宁、全民直播、高校邦、优信集团、云书写等各行业用户。互联网产品的承载能力关系着产品能否给到用户正常的体验,关系着产品的收益与存亡。目前云压力测试平台钜惠进行中,欢迎大家点击睿象云,进行产品试用!