关于前端:优酷质量保障系列二客户端自动化测试基础能力建设

33次阅读

共计 2169 个字符,预计需要花费 6 分钟才能阅读完成。

娱乐妹导读
自动化测试能力建设过程中,自动化框架选型、框架设计外围和思路、自动化能力平台接入,是自动化测试能力建设过程中重要环节。文章分享优酷 APP 自动化测试能力建设过程中的教训
本系列文章将陆续公布,感兴趣的敌人继续关注!

前言

随着挪动端版本迭代的放慢,疾速测试,疾速反馈曾经是一个常态化的流程,周期内版本公布频率的减少,各项测试的工夫正在急剧缩短,且回归性的工作一直充斥当中,各个阶段都须要回归测试的染指来确保集成之后各个模块的正确性。

在以后回归测试中次要集中以下几个痛点问题

  • 测试回归主次含糊,抓不住回归重点的内容,导致在较短时间内很难实现大量的回归 case
  • 回归用例根本大部分都是靠手工执行,重复性工作较多,回归效率低下
  • 各个业务团队或多或少都有一些自动化的钻研和接入,但开发的工具自身都是各自为战没有起到互相配合 & 相互补充的作用,无奈实现工具红利。

基于客户端的自动化能力进行测试框架的封装,实现脚本编写 & 执行与平台无缝对接,并且联合了业务场景进行平台自动化能力的落地,同时对立自动化框架的开发以及外围 case 用例的整合,使得整体回归测试老本升高。

客户端自动化根底能力

自动化测试驱动选型

如何选取一款自动化测试框架呢?

一款好的测试框架具备这样几个特色:
双端一致性 ,也就是说 ios 和 android 能够在同一框架下编写用例,进步脚本开发效率;
运行稳定性 ,对 UI 自动化自身存在不稳定性,框架须要运行稳固能力更好的反对测试;
简略易用 ,框架接入自身须要简略易懂升高入门的门槛,不便疾速应用;
低耦合性,各个层级放弃低耦合性来升高脚本的保护老本,高扩展性指的是不便与平台的对接能力和脚本调用能力。

自动化测试框架设计

外围场景自动化结构设计次要分为 3 层: 最上层为驱动能力,提供外围驱动力和操作的能力,保护整个 case 执行的生命周期。

中间层是框架封装层,间接依赖 Driver 层,提供通用 basecase 的入口和工具类的应用,以及业务通用能力形象。最上层为 TestCase 间接依赖框架封装层,封装业务逻辑以及 testcase 的编写,层级之间互相解耦,层层依赖。

框架层构造,次要分为 4 大块内容:

  • 第一部分为 Framework_Core,这部分次要是围绕着 BaseCase 进行的扩大,Basecase 作为 framework 的入口,是所有 case 的父类,遵循框架的生命周期持有 driver 对象
  • 第二局部是 Device_Config, 这里次要初始化一些设施和配置信息,例如 deviceid、pkgName 等
  • 第三局部 utility,这部分是工具类的封装,蕴含图像相干的解决,路由跳转性能。丰盛的 util 类目标是让测试 case 的验证更加全面精确。
  • 第四局部是 Report. 这块次要是测试报告的生成,生成对接平台标准化的报告后果

框架 Log 体系 &Check 体系 & 根底操作封装

框架中还封装了残缺的 Log 体系,次要用于测试过程 trace 的追踪和测试报告的生成。Log 体系次要蕴含:

  • 增加 case 步骤
  • 增加截图
  • 增加验证点
  • 增加操作动

除了 Log 体系外,business logic 还封装了 check 体系,check 体系次要蕴含元素查看以及页面布局查看,check 内容例如:check 元素是否为空、字符串是否相等、元素文本是否为空以及两张图片类似度等,欠缺的 check 体系能够减少 case 的验证内容,比断言的形式更加贴合 UI 自动化的应用。

框架中还封装了 BaseOperation 根底操作,例如:pageSwipe 会依照屏幕尺寸进行页面的滑动,确保 case 在不同设施上滑动幅度雷同,ModuleSwipe 可依据传入 element 范畴内进行滑动,入参包含滑动方向、滑动幅度以及滑动次数等,提供根底的操作内容不便下层脚本更加顺畅的调用。

图像识别能力

在随着框架根底能力的封装欠缺,只满足传统 UI 自动化应用曾经限度了自动化自身的覆盖度,局限性也比拟大。目前能够通过数据和图像两个方面的补充使传统 UI 自动化扩展性更好一些。

数据方面次要指是自动化测试的一些 input 数据内容例如 mock 数据的设置等,另一方面就是图像,自动化测试框架也封装了图像相干的 api 进行补充欠缺。

在图像方面框架还有截图解决的能力,例如:截图标记的性能,能够欠缺测试报告,加强排查伎俩,如下图所示,当传入 check 元素后进行截图,截图图片上会主动标记出校验的区域或者元素,框架还反对图片剪裁的能力,次要是不便反对区域 OCR 辨认以及图片类似度比照的验证。最初还反对图片的翻转能力,这块次要是为了解决 iPad 转屏后截图不正,影响图像识别准确性的问题。

自动化能力平台接入

自动化测试计划

自动化执行后果展现

1. 测试后果页反对测试时长、测试用例集、用例数、成功失败 case 数量以及通过率的展现,详情请见下图:


2. 测试报告其它反对性能:

  • Testcase 维度 crash 剖析后果以及 crash.log 下载
  • 失败 case 反对 bug 提交
  • 失败 case 同时反对失败截图 + 失败 trace 信息展现

如下图展现:

将来布局

平台在客户端自动化测试根底能力建设上已有了肯定功效,随着业务的一直接入并投入使用在日常测试中应用,整体回归效率以及人力老本节俭都有显著的晋升。

但整体在自动化能力建设上后续还会有更大的挑战内容,将来将着眼于图像能力建设联合自动化平台产出更多有价值的自动化测试计划。


正文完
 0