📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
全链路压测介绍
全链路压力测试的宏观介绍
全链路压测是在模拟实际用户使用场景的基础上,通过对整个应用程序栈进行压力测试,评估系统在高负载下的表现。这包括了从用户界面、前端服务、中间件到后端数据库等所有组成部分,以全面了解整个软件系统的性能。
什么是全链路压测
全链路压测是一种系统性的性能测试方法,旨在模拟真实用户场景下的完整操作流程,全面评估软件系统在不同压力下的性能表现。这种测试方法对于保证应用程序的高可用性、稳定性和可扩展性至关重要。
基于实际的生产业务场景、系统环境,基于真实数据模拟海量的用户请求对整个业务链进行压力测试,并持续调优的过程;
全链路的核心为:业务场景、数据链路、压力模型和环境拓扑;
全链路压测不仅仅是一种测试手段,更确切来说其是一种测试过程,该过程涉及自动化测试/性能测试/高可用测试技术以外,还覆盖性能分析调优以及扩缩容解决方案等等。
生产环境全链路压测 价值和目标

压测目标
安全压测验证:
链路梳理:链路涉及应用、中间件自动发现并梳理关联关系。
数据安全隔离:
全链路压测需要将压测数据进行识别并隔离,路由至影子表、影子topic、缓存redis、消息kafka、日志log4j达到验证数据安全隔离的效果。
压测过程安全保证-SLA能力验证:压测过程中设定RT、TPS阀值,验证压测平台是否会自动终止或者告警。挡板能力:对外调服务进行mock,查看压测流量是否通过这个服务外调其他系统。
产品易用性验证:
业务代码零侵入:业务域业务代码无改造,业务流程无影响。
性能问题定位验证:
压测报告及性能问题定位:验证生产环境全链路压测平台压测报告及性能瓶颈发现、定位能力。
全链路压测隔离原理

压测数据隔离
线上压测中,最复杂的问题就是压测链路中涉及到写操作,如何避免污染线上数据,并且能保证压测请求保持和线上相同的请求路径。业界有很多解决方案,常见的有影子表,影子库,以及数据偏移
MySQL、MongoDB:对于MySQL、MongoDB等数据库,采用影子表的策略。SDK会判断流量是否为测试流量,如果是,则根据配置将操作映射到影子表中。配置策略包括读写影子表和读线上表写影子表两种。
Redis:Redis Key加上 Stress 前缀。如 Stress_Tag=Valuex,那么读写 Redis 的 Key=Valuex_Key。这样可以解决多个压测任务数据冲突的问题。压测结束后,只需要对 Prefix=Valuex 做清除或过期操作即可。
MQ:对于消息队列,平台有两种策略。一是直接丢弃,然后针对消息队列的性能,单独进行压测;二是在Header 中透传压测标记,Consumer 根据压测标记和业务需求,再做特殊处理。默认走丢弃策略,业务方可根据需求进行配置。
其他存储,如ES,ClickHouse 等,都有压测集群。压测时,会将压测请求打到指定的压测集群中。

全链路压测安全保障

全链路大屏巡检
实现7*24小时不间断端到端的业务自动巡检,通过大屏可直观实时的查看核心链路运行状态,问题出现在哪个点上,影响的范围有多大,帮助开发和运维人员第一时间发现问题,给处理问题争取了黄金时间

全链路平台展示

性能指标
在进行全链路压测和性能测试时,需要关注多个关键性能指标(KPIs)来评估系统的性能表现,以下是一些常见的性能测试指标。
吞吐量(Throughput)
系统在单位时间内能够处理的请求数量或事务数量,通常以每秒请求数(RPS/TPS)来衡量。
响应时间(Response Time)
从发送请求到接收到响应所需的时间,包括网络延迟和服务器处理时间。通常包括平均响应时间、最大响应时间、最小响应时间等。
并发用户数(Concurrent Users)
系统同时处理的用户数,考查系统在高并发情况下的表现。
资源利用率(Resource Utilization)
包括CPU使用率、内存使用、磁盘I/O、网络带宽使用等,反映系统资源是否成为瓶颈。
错误率(Error Rate)
在压测期间系统产生错误响应,如5xx服务器错误的比例,高错误率通常表示性能问题或稳定性问题。
可用性(Availability)
系统在压测期间能够持续对外提供服务的能力,通常要求达到99.9%以上。
峰值处理能力
系统在短时间内处理大量请求的能力,重要的是系统能够在峰值期间保持稳定。
这些指标可以根据测试目标和系统特性的不同而有所侧重,在实际的全链路压测中,需要根据具体的业务场景和性能目标选择合适的指标,并制定相应的测试计划。

流量录制工具方案对比和总结

录制工具对比总结:
我们对流量复制有了些基本的概念和应用了,也对tcpcopy 和 goreplay 两款开源工具有了一定的认知。两款开源工具各有优缺点,我们来一块总结下。
tcpcopy部署架构相对复杂,goreplay 相对简单只需启动一个进程。
tcpcopy支持的协议比较丰富,goreplay 根据架构特点仅支持 http。
tcpcopy和 goreplay 都支持离线和在线录制回放。
goreplay有个中间件模块,可自定义部分过滤逻辑。
简单http 复制 goreplay 完全可以胜任,稍复杂点或应用场景更复杂,那么推荐 tcpcopy。更复杂,要求更高的流量复制,那只能开发定制了。
总结
爱康正在推进数字化变革,系统的稳定性需要有强大的保障能力,目前做了一定的性能压测和优化,但是对于系统的稳定性需要全方位保障,做到0事故,引进全链路压测,提前找到云系统复杂链路的瓶颈以及找到性能最大承载能力,为数字化变革做好数据基础建设,从而保障爱康核心业务的稳定性。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】



6684

被折叠的 条评论
为什么被折叠?



