1、360搜索全链路性能测试跃迁之路韩金成360智能搜索事业部 测试开发资深专家韩金成奇虎360 测试开发资深专家在360智能搜索事业部,主导通用搜索与AI引擎的质量保障、数据挖掘与指标体系构建,并开发高效工具平台。擅长测试方案设计及平台架构,带领团队创建了Teipe全链路自动化测试与Davinci数据分析平台,大幅提升了测试效率与数据分析能力,促进了产品、研发与测试的协同与质量共建,为团队带来显著的效能提升与技术创新。目录C O N T E N T S1.背景与动因2.整体架构3.问题与破解之道4.收益与展望背景与动因01搜索业务形态与特点UCSPV过亿LVS机器过万容灾百亿网页降级服务众多重查
2、团队分散多活毫秒延时链路长流量巨大海量数据系统复杂性能敏感需求频繁延时要求高用户端P99不超过1s基础组件延时毫秒级别精度要求高一次用户搜索请求涉及上百个服务接口请求覆盖率高百亿级规模索引数据稳定性高在海量请求下,保证整体可用性为什么要做全链路性能测试2545506075809598?容量是多少?余量还有多少?为后续的产品接入提供数据支撑什么情况下需要扩容,需要扩容资源多少?进行资源合理配置整体的瓶颈在哪里?那些服务存在隐患?影响整体稳定性在什么条件下需要降级?降级预案是什么?整体架构02整体实施流程整体技术架构问题与破解之道031.如何构建测试数据集?新功能覆盖不够旧功能需求变化异常场景覆盖
3、不够时效性不强数据不可复制难维护提高覆盖程度时效性增强真实行为导流数据的问题数据需求动态数据集全面性准确性真实性1.多维度数据集合-提高性能测试覆盖度真实行为-流量导流通过导流方式,获取真实行为数据,让压测更贴近用户 行为,更真实覆盖全面query分类利用NLP技术对query进行分类,补全导流流量覆盖的缺失策略影响集合特定场景针对代码或者模型特殊训练或定制场景的逻辑进行覆盖。强时效性新闻热点抓取通过抓取各类头部新闻站点最新时效新闻,生成强时效性数据,覆盖时效性数据健壮性特殊异常集合日积月累形成各类特殊数据、特殊符号、特殊形态的数据,保障服务在所有条件下运行稳定数据集合构造1.多维度数据集合-
4、提高性能测试覆盖度新功能覆盖旧功能需求异常场景覆盖时效性可维护动态数据集2.如何构造仿真环境2.双模式Mock解决依赖服务问题旧模式问题:依赖延时抖动,带来被测服务测试的不准确数据不稳定依赖线上服务,高压下容易造成线上故障依赖返回不稳定,逻辑触发不一致引入Mock新模式效果:消除依赖下游不稳定导致的测试结果不准确 避免下游干扰助于高效精准定位问题 减少对线上环境的依赖,简化测试环境2.双模式Mock解决依赖服务问题自研插件化Mock:高性能、结果真实、延时真实2.双模式Mock解决依赖服务问题请求真实下游Mock模拟开启模拟延时时,与请求真实下游的延时非常接近请求真实下游Mock模拟3.分布式
5、压测平台提高实施效率执行效率传统的性能实施手段效率不够,比如压测脚本生成、压力的控制,数据的分发等等,频繁的操作通用性差,效率差指标收集、实时性压力和数据指标查看,如果不能统一的实时查看,不利于提前发现问题,并且仅仅是发压的指标也无法反映真实的问题跨机房、自定义压力机施压期间,需要动态调整压力与压力机的数量,需要能够更方便的控制压力机与自定义压力机1233.分布式压测平台提高实施效率抽象通用参数一键部署压力机全方位多维度指标性能指标秒级更新智能结果对比分析Top延时数据分类错误信息3.分布式压测平台提高实施效率Agent 主要4个进程Master进程Monitor进程Worker进程Pid-m
6、onitor进程12345响应指标服务指标进程指标服务器指标业务指标4.全方位多粒度指标精准性能评估4.全方位多粒度指标精准性能评估多种数据源多种采集方式形成从服务器到进程、再到业务,从表象到内在的自动采集统一汇总展示4.业务效果指标性能与效果平衡权威性权威性如果在高压力下丢弃了权威性比较高的站点,会导致效果不好寻址寻址用户是否能直接获取到指定站点,非常影响用户体验时间特性时间特性往往用户更愿意看到更新的结果,旧数据的结果很有可能已经失效,或无意义召回量召回量过多的异常节点,