1、B站移动端测试平台实践周迎凤 哔哩哔哩 质保中心 资深开发工程师 周迎凤哔哩哔哩 质保中心 资深开发工程师目前主要负责B站移动端测试工具及平台开发工作,保障哔哩哔哩、必剪、直播姬、Bili国际版等产品的稳定性。毕业后曾就职于网易、第九城市、百度及创业公司,从事web开发、测试开发及质效开发相关工作。目录C O N T E N T S1.平台建设背景2.建设实践介绍3.效果和探索4.总结1.平台建设背景B 站-年轻人的潮流文化社区内容丰富:有动画、番剧、游戏、知识等多元内容创作丰富:大量高质量原创视频交互丰富:弹幕互动玩法独特B站客户端介绍日均活跃用户1亿+,月均活跃3亿+日均使用时长99分钟U
2、P主 300万+,月均投稿2000万+覆盖 手机+PC+车载+TV功能迭代需求数量多,周期紧凑,环节多,可能打回重提端侧测试需求分类技术优化需求周期长,还可能需要反复实验探索线上需求实时响应,快速反馈结果测试平台需求公司级移动端测试工具平台外部参考成熟工具和方案探索新技术新设备内部支撑多种业务测试整合已有技术建设统一管理设备+数据提供高效稳定测试服务外部已有平台人工服务比例高服务水平参差不齐架构设计能力层层聚焦能力实现提供4类10+项业务所需测试能力服务层务层聚焦任务维度配置、执行、展现任务数据设备层设备层聚焦设备稳定200+真机持续接入接口层层聚焦用户体验多种方式供对外接入2.建设实践介绍公
3、司内建机房,方便维护及使用考虑因素-恒温恒湿:专用制冷+宽敞机柜-稳定供电:UPS+企业级USB Hub-稳定WiFi:柜内AP+机柜电磁屏蔽机房硬件建设真机接入建设 安卓接入优化控制不稳定影响:认识到无法根除 控制故障影响面 降低真机外的影响因素脚本中:使用多层转发的ADB连接方式一:adb-H IP-P PORT devices方式二:export ADB_SERVER_SOCKET=tcp:IP:PORT方式三:adb connect IP:PORT真机接入建设 安卓接入优化手工操作:使用浏览器连接可操作的UI界面+shell环境调用方案:提供多种大家习惯的使用途径,并注意内外隔离真机使
4、用优化iOS:生态较完善且闭环,连接相对更稳定;重点在使用时优化版本兼容、优化执行效率开源工具+自有针对性优化-兼容iOS多个版本-封装灵活度提高,无需反复部署-部分操作额外优化,速度10 x up安卓:自动化处理弹窗,减少测试执行障碍-安装过程:自动点击和输入密码-系统弹窗:自动点击-应用内弹窗:提供功能但默认不处理,由用户决定真机使用优化方案优点缺点适用场景无障碍服务可以脱机执行,速度较快-和其它自动化测试框架冲突-不合理的页面结构处理困难-图片内文字无法识别空闲时的系统弹窗adb+OCR基于坐标点击,兼容性较好-依赖额外服务-部分隐私界面无法截图联机的非隐私界面硬件模拟弱网专用屏蔽设备控
5、制移动信号强弱适合远程调试使用网络建设探索弱网AP管理界面控制丢包/延迟/带宽等参数适合在工位附近公用软件模拟弱网弱网模拟工具开WiFi热点可能影响本机其它程序适合单人临时使用手机有线上网宿主容器开启透明代理adb reverse至手机降低WiFi AP压力测试能力概览兼容类稳定类功能类性能类UI自定义用例界面基线对比智能遍历基础性能过度绘制启动耗时测试能力关注机型/系统兼容关注长时间运行稳定关注功能是否如预期关注能耗/时长非SDK API检测页面跳转安装卸载分为四大类,多种通用测试能力+业务专项测试能力 兼容性测试能力 非SDK API检测背景从安卓9(API level 28)开始,平台限
6、制应用调取非 SDK 接口,以降低应用发生崩溃的风险方案APK文件黑名单方法配置表veridex没想到这这么简单简单,也能踩踩坑 工具旧版本只支持到安卓11 veridex更新版本 工具新版本只支持安卓12 自己拿源码修改,支持13+各业务用的安卓SDK有高低 读取APK信息,确定合理配置和工具 业务代码特有低版本兼容 业务确认白名单,消除误报背景应用需要在各个机型和操作系统版本上可以正常安装、卸载、覆盖安装等,流程相对固定,自动化执行将节省大量人力方案随机挑选多台top机型,覆盖多个常见场景:1.跨多个版本覆盖安装2.前一版本卸载再安装3.前一版本覆盖