8月7日下午,爱奇艺技术产品团队举办了第17期“i技术会”,本次技术会的主题是“智能化、精准化测试前沿探索”,本次沙龙与TesterHome社区联合举办。
其中,来自爱奇艺的技术专家齐文方、魏真真为大家带来了APP DIFF自动化解决方案的分享。APP D IFF方案利用deeplink、mock提升了UI自动化稳定率和效率,并结合AUI图像匹配算法,达到接近人工的验证效果,在收藏、card等业务推进落地,以较低成本持续产生收益,在移动端UI自动化方向实现了突破与创新。
福利!!! 关注公众号,在后台回复关键词“测试”,就可以获得本次i技术会嘉宾分享PPT和录播视频。
以下为“APP DIFF自动化解决方案”干货分享,根据【i技术会】演讲整理而成。
本次分享将从背景介绍、方案设计、业务落地、未来规划四个方面展开,最后再对重点内容“AUI智能自动化方案”进行着重介绍。
01
背景介绍
当前爱奇艺移动端自动化的现状可从元素识别、Case转化、运行环境、应用场景四个维度予以概括。
(1)元素识别,包括ID、TEXT、OCR、AI识别。
(2)Case转化,包括录制回放平台、数据模板、代码编写、智能遍历等。
(3)运行环境,经历了从最早期的本地到后来的Jenkins、自研的云测自动化平台及公司流水线的转变。
(4)应用场景,则包括冒烟准入、灰度回归、插件验收、集成全量case等。
目前,爱奇艺的主要产品线如爱奇艺App、随刻、泡泡APP及极速版APP,都在不同场景下使用整个自动化框架。
但是在应用过程中也遇到了一些痛点和瓶颈。
痛点之一就是不稳定,主要原因是被测对象的变化,包括ID、后端数据还有交互的变化、运行环境设备、网络的不稳定因素,自动化case步长放大影响稳定性等。
主要瓶颈则是校验能力,这主要是由于爱奇艺目前主要使用单点ID、文本,验证点少,日志校验场景较为有限;并且,其对接的是通用AI模型训练,随着UI的改版,需要持续进行标注,成本较高。
以收藏Case为例,测试步骤是:(1)登录帐号(包含5个步骤);(2)搜索目标影片,在搜索结果页进行播放;(3)回到首页点击收藏按钮;(4)验证半播页是否包含a、b、c某些核心的特征元素。
这是传统的自动化case编写步骤,其中存在一些典型问题。
首先,这个用例的步长过长,最终校验效果差,在我们的用例集合中是稳定率较低的。
爱奇艺从中梳理出了三个优化思路:
(1)缩短case步长,减少case对其他页面、模块的依赖;
(2)控制数据,提高稳定性;
(3)图像校验,使之接近于人工校验的效果。
02
方案设计
从这三个思路出发,爱奇艺设计了一个APP DIFF方案。这个方案基于Uiautomator2框架,结合AUI、Mock、DeepLink的能力,实现基准包、测试包使用相同测试数据,直接拉起目标页,对结果截图进行图像Diff校验,以达到更稳定、更高效、更接近人工校验的自动化解决方案。
下图右侧是APP DIFF的时序图,包含上下两个部分,其一执行base任务,其二执行被测任务。
以base任务为例,它主要用于收集和生产我们提供给测试任务的数据,主要流程包括:首先,启动case任务,执行自动化case,期间会录制执行过程中的数据,执行结束后,将被验图片作为基准图片上传到公司的AUI服务。测试任务执行时,会使用base任务录制的数据,并把最终的结果图片和base任务的图片进行对比,完成自动化任务的校验。
这一整套方案有以下三个技术点。
(1)Deep Link,通过Deep Link可以直达被测页,提高任务的稳定性和效率。
(2)Mock,它能够在整个链路中减少数据变化带来的不稳定性。
<