优酷如何构建覆盖全网的播放白盒测试体系 (优酷如何构建会员)

优酷如何构建覆盖全网的播放白盒测试体系 (优酷如何构建会员)

一、背景

随着移动端业务的持续发展,移动测试技术也从最初偏黑盒的手工测试转变为基于各类 UI 自动化测试框架,开发适合自身业务特点的自动化 case,一定程度解放了测试人力。

播放器作为优酷的核心基础模块,为点播、直播、短视频等业务提供基础播放能力,播放质量保障过程涉及到众多业务方和大量回归适配工作,因此迫切需要自动化能力。经过一系列调研,我们认为传统的 UI 自动化方案在播放场景下存在一系列弊端:

无法有效覆盖各类播放策略的正确性和有效性;依赖相对固化的 UI 元素层级,与优酷快速迭代的节奏不 match;case 开发维护成本高,投入产出低;播放场景强依赖网络环境,UI 自动化在可控网络方面不够灵活。

为解决以上问题,优酷测试团队自研出一套基于 AFrame 的白盒自动化测试方案,并在此基础上构建出基于实验室环境的播测验证体系和基于外网环境的动态拨测体系。

二、工欲善则利其器,移动端白盒自动化方案

基于 AFrame 的白盒自动化测试框架由 5 个核心模块组成:AFrameSDK、AFrameServer、CaseClient、PKAT 和 AFrameService;其中 AFrameSDK 作为移动端侧模块,已集成到优酷 app,其余 4 个模块均可脱离移动端,支持单独部署,各模块通过 WebSocket 或者 Http 进行交互,整体交互关系如下:

移动端自动化调度员:AFrameSDK

作为整个测试框架的入口模块,也是 5 个模块中唯一嵌入移动端的模块,AFrameSDK 承担着接口自动化调度员的角色。AFrameSDK 的主要工作流程如下:

AFrameSDK 接收到 AFrameServer 下发的指令后,通过对应的规则完成对指令的解析并驱动 app 执行。AFrameSDK 内置了若干通用的基础工具库供业务方使用,业务方也可以根据自身测试需求,定制化基于业务的测试驱动接口,目前已接入并具备定制化场景测试能力的业务方包括播放器、缓存、来疯等。

数据中转服务:AFrameServer

指令和数据是自动化测试的核心物料,AFrameServer 作为指令下发和数据传输的中心节点,承担着“搬运工”的角色,AFrameServer 将接其收到的连接请求分成如下几类:

AFrameServer 接收到上述连接请求后,根据分类和连接标识管理所有连接,当连接请求 A 需要和连接请求 B 进行通信时,需指定 B 的连接标识信息,AFrameServer 通过该连接标识为 A、B 提供数据转发服务。

基于 JUnit 的用例设计:CaseClient

用例设计是最重要的测试环节之一,用例设计的好坏和覆盖度直接决定了测试效果,为了提高用例设计和开发效率,对 JUnit 框架进行二次改造,封装改造后的用例设计 CaseClient 主要具备以下优势:

结果管理与任务下发:AFrameService

AFrameService 作为测试启动入口,承担着“大管家”的角色,该模块提供了一系列接口供用户使用或测试平台调用,核心工作流程如下:

三、既要“播测”也要“拨测”

基于实验室环境的播测能力

基于实验室环境的播测能力主要包括,播放核心 topic 自动化 &常态化测试能力和播放器基础质量评估能力(包含:线下稳定性评估、基础性能评估、VPM 基础校验)。下面以智能档为例,简要介绍播测系统在实际业务中的落地实践情况:

基于外网环境的拨测能力

实验室网络和外部网络的最大区别是网络环境的复杂性和透明度,在实验室环境下通过网络控制来模拟各类场景,在确定的环境下执行播放测试任务,由于清楚的知道实验室网络各项指标,测试的预期结果相对比较明确;但由于播放链路的复杂性和多样性,仅在实验室环境无法有效覆盖真实情况,因此基于外网环境的拨测能力是对实验室播测方案的有效补充,在外部网络中,我们无法准确获取网络状态,因此我们结合自研的网络探测能力,获取不同域名下的网络带宽、时延、丢包率、连接速度等信息,通过计算其平均值、标准差、变异系数进行动态的 case 评估校验。从技术上来讲,外网拨测也是基于 AFrame 框架来实现的,通过 AFrameServer 外网部署,支持外部设备数据的接收和中转,结合网络探测能力,实现基于网络场景的动态拨测验证,外网拨测针对网络调度、播放链路相关的潜在问题具备较好的发现能力,由于篇幅有限并且核心链路和播测方案类似,这里不再展开赘述。

四、总结 &展望

优酷测试团队始终关注质量基本盘的有效性和完备性,在持续深化核心 topic 线下测试评估能力、守住质量基本盘的同时,形成了涵盖线下测试、冒烟播测、外网拨测的三级漏斗用例模型,测试同学为此持续提供逻辑自洽、基于用户和业务的思考过程,将三级漏斗用例模型间的联动共生通过平台化能力表达出来。

作者介绍

默研,阿里文娱资深测试开发工程师。

相关阅读

优酷播放测试体系构建及平台化整合方案

声明:本文来自用户分享和网络收集,仅供学习与参考,测试请备份。