实时流量回放在⼴告业务的
建设与应⽤
美团⼴告事业部
⾃我介绍
赵晶晶,2015年校招加⼊美团。
⽬前在⼴告质量效能组负责测试⼯具链建设。参与了⼴告持续集成
系统的建设与落地,搭建了⼴告的⾃动化平台、实时流量回放平
台,在服务端⾃动化⽅向进⾏了系统性建设和积累。
⽬录 01 背景与挑战
02 流量回放平台介绍
03 业务实践
04 规划与展望
01 背景与挑战
⼴告业务背景
⼴告商家端 ⼴告引擎端
⼴告测试挑战
回归测试/算法效果测试:传统⾃动化的弊端?
成本⾼
• ⼈⼯编写、维护⾃动化⽤例成本⾼
• 较低的测开⽐⽆法跟上迭代的速度
覆盖场景有限
• 线下构造测试场景难度⼤
• 场景覆盖度有限
标准化难度⾼
• 依赖QA个⼈经验和能⼒
• 开发独⽴排查⾃动化问题难度⾼,赋能开发效果差
回放平台⽐对
业界流量回放平台调研
平台 开源 录制原理 Mock回放 中间过程验证 线上回放 ⾃动去噪 ⾃定义去噪
阿⾥Doom
Twitty Di y 是 AOP 是 ⽀持 是否 是
美团Rassor 是
代理转发 否 不⽀持 是 是 是
否
AOP 是 ⽀持 否是 是
•⼴告索引存在内存中 线上流量回放平台
•不仅Java服务,还有C++服务
•录制、Mock难度⾼
f
f
02 流量回放平台介绍
实时回放原理
整体思路:
•线上获取流量
•在不同的代码环境进⾏回放
•⽐对接⼝的返回结果
流量采集 环境策略 执⾏调度 ⽐对结果
流量采集
1.0 人工采集 2.0 自动采集
•⼈⼯开启RPC组件/ngnix⽇志录制 •⾃动录制/采集流量
•⼈⼯到机器上获取⽇志 •灵活可配置的采集策略
•⼈⼯处理后以⽂件形式上传 •灵活可配置的筛选流量/处理流量策略
•⼈⼯定期替换流量 •⾃动替换流量
流量采集2.0
•采⽤线上AOP实时录制
•⽀持多种数据源业务⽇志的采集
•对流量标记不同的业务属性标签
•独⽴的流量管理,开放api
流量采集2.0
⼴告Id = $.ad_id
⼴告位:10007
流量采集2.0 数据集更新策略
流量是有时效的,过期的流量需要进⾏替换 全量更新
增量更新
执⾏采集策略
周期执⾏
服务发布执⾏
⼿动执⾏
流量采集 环境策略 执⾏调度 ⽐对结果
环境策略
环境策略
根据回放标识,业务可以定制回放流量的处理逻辑
• 影⼦表⽅案实施
• 写保护操作
• 不同的限流策略
• 不同的⽇志策略
流量采集 环境策略 执⾏调度 ⽐对结果
执⾏调度
任务维度
•环境配置
•⾃定义回放标识
•执⾏速率配置
•重试配置
接⼝维度
•接⼝基本信息
•关联参数
•接⼝⽐对配置
执⾏调度
•⾼并发的任务执⾏
•灵活的请求并发配置
•灵活的请求速率配置
流量采集 环境策略 执⾏调度 结果⽐对
结果⽐对
背景:
•⼀条⼴告从商家投放需要经过检索、召回、排序等模块,在这个过程中受到标签、算法模型等影响,使最终的返回结
果具有很强的随机性
•⼴告请求返回部分字段加密
•请求结果不保序
⼴告列表返回 同⼀个⼴告返回 ⼴告列表返回
不确定 内容不确定 顺序不确定
结果⽐对 结果预处理 结果预检查
结果预检查
结果预处理 ⿊⽩名单 • 规则校验
复杂数组排序
• 字段解密 复杂数组排序
• 结构格式化 相似度
• ⾃定义jar包 • 忽略数组顺序影响
⿊⽩名单
• 排除⽆需⽐对字段
• 只⽐较字段
相似度
• 单值相似程度
• 数组相似程度
结果⽐对 数组相似度
数值相似度
⽐对配置
• 不同实验的回归测试使⽤同⼀个回放任务,同⼀份流量、同⼀个 动态 调整配置 替换(保存)配置
接⼝携带不同实验标识;由于实验不同,降噪的配置不同
比对结果 调整
效率
• 由于⼴告请求复杂,降噪配置很难⼀次性达到最优,需要频繁的
调整
平台架构图
03 业务实践
实践⼀:接⼝⾃动化测试体系建设
接⼝总数 约5000
读接⼝占⽐ 80%(约4000)
写接⼝数占⽐ 20%(约1000)
QA⼈数 约10⼈
实践⼀:接⼝⾃动化测试体系建设
通过线上流量回放和传统⾃动化配合,建设⼴告商家端⾃动化测试体系。流量回放主要覆盖读接⼝,传统⾃
动化覆盖写接⼝。通过低成本的流量回放快速提⾼回归测试的覆盖度。
指标 基础数据 流量回放 ⾃动化
接⼝总数 约5000 覆盖约3500 覆盖约1000
读接⼝占⽐ 80%(约4000) 覆盖约70% 覆盖约6%
写接⼝数占⽐ 20%(约1000) 覆盖约18%
QA⼈数 约10⼈ —
— —
成本 — 低
⾼
实践⼆:效果⼴告算法效果测试
⽅向 传统软件测试 算法效果测试
场景有限 ⼤规模数据
测试场景 结果不确定且变化
结果明确且固定
测试输出 正确性、覆盖率 合理性
评估标准
算法测试特点:
•⼤数据测试
•结果不确定,变化⼤
•单条请求校验⽆意义
实践⼆:效果⼴告算法效果测试
【回归测试】与【算法测试】 流程对⽐
回归测试
• 重点关注单个Case⽐对的结果
算法测试
• 重点关注效果统计的结果
实践⼆:效果⼴告算法效果测试
算法策略的效果是好是坏? 算法策略效果的正确性?
通过对流量回放的数据进⾏描述性的统计,将统 通过配置与固定值⽐较、与基线环境DIFF以及其他⾃
计数据直观、友好的展示给⽤户。⽤户利⽤统计 定义的⽐较规则,进⾏算法策略的基本逻辑验证,从⽽
数值,并结合业务需求、经验,给出对算法策略 保证算法策略的正确性。
效果的合理性评判。
实践⼆:算法效果测试 统计功能展示
统计分布图
统计配置
统计规则校验报告
统计数值报告
实践三:流量回放在其他测试场景的实践
平台数据
实时流量回放平台从2019年开始建设⾄今,已经⽀持美团内部多个业务进⾏⽇常回归测试。覆盖⼴告内部全
部16个业务团队以及美团内其他52个业务团队
接⼝数 任务数 回放Case数
10000+个 2000+个 100w/天
04 规划与展望
规划与展望
与⾃动化平台融合
流量回放是⾃动化测试的⼀种,传统⾃动化测试有场景固定、测试点明确的
优势,如何将流量回放平台与⾃动化打通,充分发挥各⾃的优势,进⼀步降
低回归测试的成本。
流量采集3.0
智能流量采集,完善代码覆盖率体系,包括java服务、C++覆盖率;分析完
整的全链路追踪⽇志;提供智能化的流量采集、流量推荐能⼒。
探索性测试
⽀持业务多样化的测试场景。例如与业务监控结合,在流量回放的同时,对
监控⽇志进⾏分析,提供更深⼊的回放结果分析。
更多技术干货
欢迎关注“美团技术团队”