生产环境全链路性能测试体系建设之路主要包括生产测试流程规范建设、生产测试工具平台建设、生产测试实施团队建设、落地实施细则。
为使企业特色的性能质量保障体系落地,我们计划通过3个阶段进行建设并逐步优化。
首先,针对各供应商的性能测试人员进行基础知识培训并考核,提供性能测试方案设计和实施的思路。
其次,进行性能平台使用的相关培训,确保供应商的性能测试人员掌握平台使用方法,为后续基于平台实施测试项目做好铺垫。
首先,为保障生产测试安全高效,通过调研、评估、改造功能验证测试、试点、生产压测6大步骤,逐步完成生产全链路性能测试体系落地。
其次,建立生产环境下主业务流程的性能回归基线,关注每次版本发布的性能变化和业务指标,为业务增长提供参考依据。
最后,提供生产性能测试流程指南,实现生产测试项目自助实施,各项目组按业务需求评估是否需要申请平台服务。
首先,通过推广平台和流程规范,提供适合供应商的平台使用规范、性能实施流程,将性能测试纳入供应商日常开发回归体系,设立准入原则,实现内部性能平台服务化。
其次,通过平台的可视化数据仪表盘,度量供应商性能测试的过程质量。
首先,对各供应商性能测试人员进行测试的基本概念和基础知识体系的培训,例如性能测试环境构建、测试体系、调优体系等。在项目实施过程中重点强调测试方案和测试报告结论。对核心业务链路系统涉及的供应商团队,除了基础知识之外,还应对项目实施的团队分工原则进行培训,为生产测试项目实施做准备,最后对以上培训内容进行结果验收考核。
其次,进行平台的使用、原理等方面的知识培训。使用上,基于全链路压测平台,对探针部署、项目创建、目标制定、脚本编写、链路管理、场景执行、调优定位与分析、输出报告的整个项目实施流程进行培训。原理上,介绍全链路压测平台的核心原理、数据流转情况、数据计算方式,帮助测试人员日常使用平台。最后,对平台培训进行结果验收考核。
最后,进行生产测试SOP培训。提炼生产测试的阶段性工作的细节形成指南和规范,形成SOP(标准作业程序),并对相关工作人员进行培训。生产测试各阶段准备事项可以参考如下表
基于现有流程,规范测试流程中各个阶段的准入准出文档,减少无效沟通,例如规范供应商的测试申请及提交自测报告。该过程可配合当前发布周期下的质量验证,降低测试环验证缺失带来的生产风险。具体来说,做好供应商团队人员赋能,包括内部平台和测试项目申请流程两方面。规范测试工具平台,量化每次性能测试产出。做好流程方案把控,确保测试过程的高效。
流程方案把控工作简要说明如下:
在准备阶段,供应商需提供接口文档、架构图、测试模型、测试数据等必要材料,通过启动会议产出适合项目情况的具体实施方案和计划;
在执行阶段,明确测试计划,明确多方职责,不断丰富测试过程中的监控方案;
在完成阶段,开展复盘会,分析具体数据和计划下阶段的测试工作。
在线下性能测试体系的基础上,做更多的准备、做更多的风险防控。测试前,需要性能测试人员充分了解业务情况,做好只读接口和三方调用的识别,沉淀业务逻辑;积累生产环境的资源监控手段、应急修复手段;沉淀功能回归测试用例。在测试执行过程中,要更加注重风险防控,对接口在测试环境做好充分验证测试完成,更加注意检查测试影响,执行功能回归测试用例,做好历史测试数据积累。
生产测试体系规范重点在于实际项目的执行,根据实际测试业务场景是否造成数据污染以及探针能力是否可以做到数据隔离,可将测试分为只读场景测试和读写场景测试。在总体规划上,用6个步骤实现测试数据指标获取,如下图所示。
调研核心链路系统的业务场景是否有生产环境测试需求,若没有生产测试需求,可在线下环境做性能测试验证;若有需求,对系统的技术架构进行调研,判断是否需要做到数据隔离,若不需要,可通过只读场景测试来实现,若需要,则进行技术栈调研,判断是否在探针支持范围内,若不支持,选择清理数据库或通过其他方式进行生产测试。
基于技术架构和中间件,完成改适点评估,改造方案评估,改造风险项评估,例如数据离的调用改造、三方服务的调用Mock改造、测试数据偏移改造等细节项。
接入平台探针,对涉及服务进行非侵入式接入。构建影子库和影子中间件,为保障测试数据真实性,做好影子中间件数据的初始化,保障业务逻辑和数量级,若有需要则考虑数据脱敏。
在测试环境对改造项目进行充分验证,验证项目涉及脚本的业务功能完整性,验证接入探针的中间件改造是否兼容。
生产环境正式做探针发布,通过低并发流量预热验证,确保测试流量数据落到影子中间件,谨防数据污染,确保生产环境的风险监控平台正常运作。
在测试过程中,规范和落实每个步骤中的正确性,对输入和产出都做好完整记录,并定期进行复盘通过定期回归,及时发现不同选代版本可能出现的性施问题,完成测试结果的基线追踪。
阅读后若有收获,不吝关注,分享,留言评论等操作!!!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。