1、1暗区突围腾讯 沈亚飞2云原生全链路压测体系3沈亚飞高级测试工程师暗区突围压测负责人IEG/魔方工作室01|自研高拓展性压测工具02|打造高效的可持续测试03|云原生全链路压测方案实战4目录01|自研高拓展性压测工具51.1、理解性能测试的需求6游戏玩法多种多样服务器架构大相径庭1.1、理解性能测试的需求7手机客户端UDPHTTPTGCPTBUSPP局内侧重战斗关卡副本局外侧重系统活动广播不同测试场景1.1、理解性能测试的需求8高性能工具本身高可用,具备单核可支撑大量请求的能力,尽可能利用测试机器资源。协议可拓展对于不同接入层协议的项目,可以无需变更 压 测 工 具 基 本 架构,快速接入应用
2、。快速扩容针对大型压测需求,若单机能力不足,应提供一种可快速构造海量压力的方案。1.2、灵活的松耦合架构9负责和外部通信连接层游戏后台实现具体业务逻辑模块间消息处理统计性能指标控制层逻辑层管理层统计层1.3、支持可扩展的协议10UDPHTTPTGCPTBUSPP连接层Connect()SendAndRecv()WaitForRsp()根据业务特点,实现通用的消息处理接口1.4、实现高性能的逻辑层11SuspendRunning等待某个事件时间事件网络事件逻辑层为单线程采用协程作为并发逻辑层性能,高于业务Tconnd组件1.5、接入云原生12敏捷部署资源共享弹性扩容单套工具、单发压机性能不足多机
3、部署麻烦,协同、维护不便多人使用同一台发压机可能相互影响云原生之前存在哪些问题云原生的优点1.5、接入云原生13PodCVM工具实例负载均衡压测集群自底向上预估容量自上而下负载均衡02|打造高效的可持续测试14手工作业式压测管线2.1、性能作业的演变15压测执行结果分析环境部署场景构造需求设计2.2、识别测试痛点16门槛问题制 定 压 测 场 景、编 写 脚本,有较高的专业性和复杂性要求,对部分测试人员来说门槛较高,存在一定的学习成本。人力消耗问题从压测环境的部署、脚本构建、测试执行到数据采集,以及后期的测试报告整理分析,全流程消耗了大量的人力。质量成本压测依赖的软硬件资源的开销,服务器利用率
4、和项目周期强关联,空闲期可能会造成一部分测试资源的浪费。2.3、构建可持续测试体系17用例管理任务管理日志检索测试报告分析告警K8S负载均衡Pods逻辑层数据统计连接层管理平台构建部署负载层数据采集Prometheus云日志采集火焰图收集镜像构建K8S部署自动化发布2.4、快速构造测试场景18游戏客户端操作平台录制协议自动生成代码2.5、自动部署与测试19基于蓝盾的一站式部署流水线定时触发服务器环境发布测试参数替换自动化任务调度与压测插件式触发容器化部署多项目并行测试2.6、性能数据集成与分析20压测实例业务进程PrometheusClientPrometheus Server被测服务器Pro
5、cessExporter压测服务器持久化存储双端指标数据收集2.6、性能数据集成与分析21双端多维度指标展示2.6、性能数据集成与分析22不同指标的数据趋势观察2.7、自动采集火焰图23压测执行发现异常数据复测+火焰图采集监测进程负载触发采集流水线收集火焰图数据自动归档改造前改造后2.7、自动采集火焰图24时间上可能存在漏点容器内服务使用不便不适应上云的趋势Perf的一些问题Pyroscope:支持K8S部署/开源友好/可持续采集2.8、与研发平台融合协同25测试分析发现bug产生需求产品研发平台和压测平台之间如何打通数据?异常任务支持一键提单压测场景直接关联bug更加直观地跟进问题修复进展0
6、3|云原生全链路压测方案实战263.1、线上演练与本地测试的差异27本地测试线上演练测试量级流量链路场景设计规模小,万人级别百万量级客户端-后台客户端-LB-后台单协议场景为核心+综合场景、分流/过载机制存储/容量验证、外部组件评估如何制造海量压力、完善场景设计以及做到全面监控?3.2、手游的测试场景设计28登录/创角单场景组队匹配市场好友活动综合场景聊天限购主要功能广播/并发限流负载均衡机制测试满在线Top90协议仿正式环境+特色玩法保障游戏内各功能系统稳定性模拟线上复杂场