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