写点什么

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

  • 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:302674

评论 2 条评论

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

leetcode 205. Isomorphic Strings 同构字符串(简单)

okokabcd

LeetCode 算法与数据结构

中国掀起数字化浪潮|沃丰科技AI外呼机器人助家电企业潜客筛选自动化

科技怪咖

对话HR专家崔晓燕 沃丰科技AI+HRSSC如何提升企业人效

科技怪咖

新定位人工智能+营销服务 沃丰科技入选国家级专精特新“小巨人”

科技怪咖

如何进行企业数字化转型?数字化转型的3大核心规律

优秀

企业数字化转型

页面切换转场动画,英雄救场更有趣!

岛上码农

flutter ios 前端 移动端开发 8月月更

阿里云实时计算 Flink 版 x Hologres: 构建企业级一站式实时数仓

Apache Flink

大数据 flink 流计算 实时计算 实时数仓

[JS入门到进阶] 哎,被vite小坑了一波,大家记得配置build.cssTarget为'chrome61'

HullQin

CSS JavaScript html 前端 8月月更

当满世界喧嚣“All in Web3”,但你可以慢慢来

One Block Community

区块链 程序员 开发者 就业 黑客马拉松

兆骑科创创投平台,赛事活动承办,高层次人才引进

兆骑科创凤阁

明势资本黄明明:创新与世界,下一代基础软件的中国突围之路

TDengine

数据库 tdengine 时序数据库

再谈回声消除测评丨Dev for Dev 专栏

声网

音频 Dev for Dev 实时互动

区块链合约安全系列(四):如何认识及预防公链合约中的算术溢出攻击

BSN研习社

区块链 智能合约

实时数仓Workshop · 广州站 9.15 邀您参加!

Apache Flink

大数据 flink 流计算 实时计算 实时数仓

夯实中国智能制造软实力沃丰科技ServiceGo让物流机器人龙头企业售后无忧

科技怪咖

客户案例|雅森帮携手观测云,保障海量在线用户服务体验

观测云

SMTP协议详解

工程师日月

8月月更

StarRocks 与奥威软件完成产品兼容认证,共同打造数据驱动的智慧企业

StarRocks

数据库

iOS端如何实现MobLink的场景还原功能

MobTech袤博科技

ios sdk moblink

Spring永远的神,这绝对是目前最全面的spring全家桶学习笔记

Geek_Yin

spring 编程 程序员 Java、 跳槽季

多路混流实操流程

ZEGO即构

央企数智化转型实践沃丰科技AI助招采平台打造全新客服体系

科技怪咖

TDengine 的存储引擎升级之路

TDengine

数据库 tdengine 时序数据库

系统故障工程师居然可以不背锅?看看几家大厂是怎么做到的!(内附复盘模板)

TakinTalks稳定性社区

SRE 故障 定责

我是咖啡师,在软件公司上班|ONES 人物

万事ONES

开源一夏 |为什么线程池不允许使用Executors去创建?

六月的雨在InfoQ

开源 OOM Executors ThreadPoolExecutor 8月月更

01_Linux基础-部署-VMware-Xshell-Xftp-内核-安迪比尔定理

mycpen

Linux

Python 教程之数据分析(1)—— 使用 Bokeh 进行数据可视化

海拥(haiyong.site)

Python Bokeh 8月月更

制造业专家黄培博士:沃丰科技ServiceGo 智能售后服务成就高绩效企业

科技怪咖

EMQX + PolarDB-X 一站式 IoT 数据解决方案

阿里云数据库开源

数据库 阿里云 开源 :MySQL 数据库 PolarDB-X

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