写点什么

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

  • 2020-02-17
  • 本文字数:2516 字

    阅读完需:约 8 分钟

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

一、背景


从去年开始,为了提升播放业务的测试效率、完备性和有效性,优酷技术质量团队对播放测试方案进行了一系列的优化改造,自研出一套白盒自动化测试框架,并在此基础上构建出基于实验室环境的播测验证体系和基于外网环境的动态拨测体系,在测试提效方面已初见成效,但新的挑战也随之出现,具体为:


  1. 随着播放测试能力的持续沉淀,各业务已形成了一套行之有效的 topic 维度的测试方案,播放测试能力急需流程化;

  2. 除移动端外,播放在多端场景下的测试覆盖度较低,播放测试能力急需多端化;

  3. 测试过程对于合作方不够透明,各方对测试标准和测试卡口理解存在不一致的问题,播放测试能力急需透明化。


综上,针对流程化、多端化和透明化三大诉求,优酷播放测试提效进入了大一统阶段,包括三个统一:大一统的内核自动化测试框架、大一统的内核自动化测试服务和大一统的平台体系。


二、大一统之内核自动化测试框架


要实现大一统的播放自动化测试体系,首先要实现统一的自动化测试框架,主要面临以下几个问题:


  1. 如何快速高效的支持各 topic 自动化 case 开发和执行;

  2. 如何将内核自动化测试能力赋能到多端多场景(直播、ott、iku);

  3. 如何使内核自动化框架具备更好的扩展性,以支持流程化和平台化。


为了实现播放各 topic 以及播放基础质量测试能力的全面拉通,以统一的方式支持播放业务测试用例的快速开发,最终实现统一地平台化收口,我们首先对各 topic 的通用测试场景、测试方案、个性化能力、通用工具集进行全面梳理,对相关 API 进行分层抽取,将新内核测试框架划分为 4 大模块:api、core、toolkit、testcase,整体结构设计如下所示:


共性 &个性化测试方案

智能档的测试方法不再赘述,下面主要介绍一下 PCDN 以及卡顿 topic 的基础测试方法:


  1. PCDN topic

  2. PCDN 核心目标是缩减成本,减少 CDN 的流量峰值,在保证分片下载功能正确的前提上,PCDN 重点关注覆盖率、分享率、浪费率、重复率等指标,因此测试需要重点关注 PCDN 在各种网络环境和用户播放行为下核心指标的正确性和合理性,PCDN 核心测试数据可以结合 VPM 埋点以及 PCDN 接口数据获取。

  3. 卡顿 topic

  4. 卡顿 topic 的主要关注点是各项卡顿优化的策略是否生效以及对播放体验的影响,如智能调度、慢切逻辑、网络探测等,卡顿核心测试数据可以通过 VPM 埋点、策略执行 log 以及 ODPS 历史埋点获取,除此之外,卡顿 topic 需要针对不同的网络场景和不同的用户播放行为进行组合验证。

  5. API 抽取 &工具集构建

  6. 我们将网络控制、数据收集、数据分析、case 校验作为核心,抽象出三大核心模块(case_checker、log_processor、network_controller),将模拟用户行为、hook VPM 埋点的 AFrame 客户端加入到工具集中,同样还将 PCDN 接口数据获取、ODPS 查询、热剧查询、OSS 上传等方法加入其中。


三、大一统之播放测试服务


为了让播放器自动化测试服务更好的赋能给 ott、iku、直播等多端多场景业务,也为了更好的支持流程化和平台化测试,我们把本地的内核自动化测试框架演变为平台服务(PKAT),并和播测 &拨测体系结合起来,形成了一套完备的内核自动化测试新框架,并作为一套服务添加到播放测试平台链路中。


整体链路包含以下四个部分:


一是播放测试调度服务:包含二方平台打通、设备管理、任务分发、结果管理等;


二是部署在外部网络的 AFrameServer:数据“中转站”,监听各类连接请求并建立通道;


三是与任务调度平台联动的 CaseClient:用例执行入口;


四是内核自动化测试服务:提供播放内核以及多端场景的验证服务。


整体的技术细节如下图所示:



四、大一统之平台收口


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


播放测试平台为播放业务提供一站式标准化测试能力,包括用例管理、测试计划、功能测试、冒烟播测、外网拨测、大剧保障、多端赋能等能力,支持用例的可视化开发,支持用例完整生命周期的实时监控,并提供详细和专业的结果分析和测试报告,通过播放测试平台实现了本地测试、冒烟播测、外网拨测用例的打通,用例流转示意如下:


系统设计

播放测试平台采用分层设计结构,以增强平台的水平扩展能力,基础服务层由设备资源管理、用例管理、用例模板管理、测试计划管理、运行管理、报告管理等模块组成:


  1. 设备资源管理:同步实验室以及外网测试设备资源信息,用例执行时指定相应测试设备;

  2. 用例管理:提供用例信息的维护及权限管理,除传统的代码开发模式外,支持可视化的组件开发模式;

  3. 用例模板管理:为每个 topic 通过用例模板,进一步减少用例开发的工作量;

  4. 测试计划管理:测试计划类似于测试套件,包含多个测试用例,测试计划有效覆盖各类测试场景;

  5. 运行管理:当某个测试用例在某台测试设备上执行时,平台均会创建唯一的运行实例,通过运行实例可以监控相应用例运行的整个生命周期;

  6. 报告管理:提供用例运行的详细信息,包括运行过程数据以及执行结果分析。

执行流程

  1. 用户可以在用例管理模块直接执行用例,执行用例后首先会调用 AFrameService,AFrameService 负责与任务调度平台通信,并发送用例执行信息,任务调度平台接受后转发至 AFrameServer,最后由 AFrameServer 驱动执行测试用例;

  2. AFrameServer 会将用例的实时执行状态回流至报告管理模块,用例执行结束后会把详细的执行结果回流至报告管理模块;

  3. 用户可以在用例管理模块创建测试计划,在测试计划管理模块执行测试计划,执行流程与在用例管理模块直接执行相同;

  4. 报告管理模块支持查询测试用例的运行过程数据以及测试结果分析。



五、总结 &展望


优酷播放测试平台实现了标准化的播放测试流程,有效降低了业务测试用例的开发复杂度,提高了用例的开发效率,规范了用例的管理和执行过程,实现了测试用例在不同环节的合理性流转,以及用例执行生命周期的实时监控和执行结果的可视化、透明化。


后续我们将在基于播放体验的策略质量洞察分析、动态的校验能力、智能化的用例推荐、用例膨胀等方面继续努力。


作者介绍


昙鸾,阿里文娱测试开发专家,庭婳,阿里文娱测试开发工程师。


2020-02-17 10:302482

评论 2 条评论

发布
用户头像
期待后续~
2020-02-17 18:10
回复
用户头像
沙发🛋
2020-02-17 11:22
回复
没有更多了
发现更多内容

[架构实战营]第七模块

Vincent

「架构实战营」

LiveVideoStackCon | 面向在线教育业务的流媒体分发演进

有道技术团队

音视频

eBPF 科普第一弹| 初识 eBPF,你应该知道的知识

Daocloud 道客

基础软件 ebpf Daocloud

冬奥金牌冲击!为冬奥助力加油!

InfoQ写作社区官方

话题讨论 冬奥会 热门活动

凡泰极客积极参与信通院“5G消息应用数据安全标准”落地工作

FinClip

5G消息 中国信通院

让工程师拥有一台“超级”计算机——字节跳动客户端编译加速方案

字节跳动终端技术

ios 字节跳动 DevOps 客户端 火山引擎MARS

2022年了循环是什么?

謓泽

循环语句 C'语言 2月月更

MySQL 常用备份工具流程解析

Qunar技术沙龙

CentOS 安装 Oracle(单机版)

wong

oracle centos

库珀科技招聘Java/前端/测试[20~60K][18~24薪][成都][可远程]

Mr. Xie

前端 测试 招聘 Java web

“翻墙”的罪与罚,国内互联网用户VPN“翻墙”的AB面

科技热闻

基于流计算 Oceanus(Flink) CDC 做好数据集成场景

腾讯云大数据

flink 执行 流计算 Oceanus

绿色数据中心:风冷GPU服务器和水冷GPU服务器综合分析

GPU算力

理论+算法+实战,教你如何实现亿级流量下的分布式限流

华为云开发者联盟

高并发 服务器 分布式限流 限流 计数器

Camtasia卡点相册视频教程

淋雨

Camtasia 录屏软件

安全创新厂商长亭科技加入,牵手龙蜥共建网络安全新生态

OpenAnolis小助手

Linux 开源 网络安全

web前端培训:开发过程中比较实用的 Linux 命令

@零度

前端开发

火山引擎科技原力峰会:超视频时代如何提供交互性、高清化音视频体验

字节跳动视频云技术团队

如何编写sdk?

百度Geek说

前端

如何通过云效进行函数计算(FC)发布

阿里云云效

阿里云 云原生 CI/CD 持续交付 研发提效

java培训:JVM性能调优理论基础知识分享

@零度

JVM JAVA开发

填问卷赢豪礼,吐槽 NGINX 顺便中个 AirPods 新款耳机~

InfoQ写作社区官方

nginx 热门活动

【等保测评】广西等保安全测评有限公司有哪些?

行云管家

网络安全 广西 等保 等级保护 等级测评

喜报 | 旺链科技入选上海市高新技术成果转化项目!

旺链科技

区块链 产业区块链 高新技术

第二期 OceanBase 技术征文大赛来袭!快来释放你的原力!

OceanBase 数据库

数据库 分布式 征文大赛 OceanBase 社区版

数蛙科技百亿级物流标签轨迹时序数据压测

dgiot

物联网 2月月更 2月日更 dgiot dgiot物联网

灵活地横向扩展:从文件系统到分布式文件系统

博文视点Broadview

大数据培训:Flink窗口的开始时间的计算

@零度

flink 大数据开发

实时数仓:基于 Flink CDC 实现 Oracle 数据实时更新到 Kudu

腾讯云大数据

flink 执行 流计算 Oceanus

用户体验超好的堡垒机哪里有?咨询电话多少?

行云管家

等保 堡垒机 网路安全 等级保护

springboot3+r2dbc——响应式编程实践

麒思妙想

Reactive Java web spring-boot

优酷播放测试体系构建及平台化整合方案_软件工程_阿里巴巴文娱技术_InfoQ精选文章