Macaca:南方航空人工测试的拯救者

简介: 在2016杭州云栖大会的“开源无线和前端”专场上,南方航空移动架构师孔兆祥带了题为《南航Macaca技术实践》的精彩分享。分享中,他首先介绍了Macaca的基本概念;接下来重点讲解了Macaca落地南航的过程;分享结尾,他对Macca未来的使用方向做了展望。

2016杭州云栖大会的“开源无线和前端”专场上,南方航空移动架构师孔兆祥带了题为《南航Macaca技术实践》的精彩分享。分享中,他首先介绍了Macaca的基本概念;接下来重点讲解了Macaca落地南航的过程;分享结尾,他对Macca未来的使用方向做了展望。

以下内容根据演讲PPT及现场分享整理。


南航与Macaca

在没有接触Macaca之前,南航在移动端自动化测试是完全空白的:QA基本靠人工操作完成测试。随着南航业务不断地发展,开发迭代速度的加快,纯人工操作已经无法满足快速迭代的需求;另外,南航需要推广自身的DevOps,但由于其自身特点,DevOps需要很大范围内接入自动化测试工作。

为了解决上述问题,南航亟需寻找一个满足下列要求的自动化测试方案:

  •  第一较低的学习成本;
  •  第二便于上手;
  •  第三该解决方案必须是轻量化的解决方案。

通过不断地寻找,不断地对比,最终南航将目标聚焦在阿里巴巴开源解决方案Macaca上。

9dd1cd82d0bbbb7bad6b99fdc62cbe8e77ee0404

Macaca是一套完整的自动化测试解决方案,它的三个特性对南航极具吸引力:

1、 它是跨端的解决方案(测试领域的创新之作),支持移动端和PC端,极大地释放人工成本,提高了工作效率(只需学习一套脚本工具);

2、 它支持多种语言,Macaca由Node.js开发的,支持JS、Python、Java编写自动化脚本;

3、 它是一个轻量化的开源项目。

南航落地Macaca

09874224617d705ab132214b8afcd3bb8458c4c9

在落地Macaca之前,需要先部署如图所示的技术栈:Node.js用于部署Macaca;Gitlab&Gitlab Runner用于存储代码和测试用例;Slack用于团队的沟通协调;Reliable是配合Macaca使用的CI平台。

97e407d869184f4bbe441cbd8ab0e4a1756c4cfc

Macaca具体使用流程如下所示:开发人员首先将代码提交到Git仓库(Gitlab);然后Gitlab触发Webhook(使用*.yml脚本编写流程);Webhook触发业务任务,业务任务推到Gitlab Runner进行项目构建以及Build RPA包。

fc4df1ddf16000d1a12e034744f0a96ed78c7df0

(接上图)RPA包会触发Reliable 平台的API,然后创建测试用例的任务,也就是说开发人员每提交一次代码或创建一次构建,都会生成一个测试用例的任务。

0565f5a6bdeee46b107ea2a1629915548ddcf717

Reliable是一个分布式CI平台,Master会把测试任务分发到其他Slave执行(Slave客户端即Macaca客户端);客户端运行Macaca测试用例。

8c39fc4c2500749ec1c1106f8786f25087f679e6

测试用例运行之后,会有两种情况发生:如果成功,则可以直接查看生成报告;否则会通过Slack通知开发人员测试失败,重新修改代码。

bb8398e3b9ec0605cdcfc1a46add4afff6108a9b

上图是测试过程总览,从图中可以看出:已经形成开发到测试的闭环。

fed8f402ab177ac41f1eba0f91597f584a834c0d

上文提到Slack是一个IM平台,当然这里也支持钉钉。它的作用是:当测试用例失败时,可以通过IM平台提示测试用例哪里出现问题。

9a9824372e0b512b6af9a621669a11149d02fe59

上图是简单的登录测试用例:输入用户名和密码,然后点击登录按钮。中间的图是Macaca测试用例的目录结构图,App目录中存放着项目构建成功RPA包;macaca-test目录存放着Macaca测试用例;具体测试用例的代码如右图所示,以行为驱动的方式开发。

e85a0e99e3873178af34c15150e52ceb867fe397

Macaca中还提供了Inspector工具供用户直观、方便查找到想要选中的元素。图中右侧一栏提供的是XPS、ID、Name数据,用户通过Inspector工具寻找目标界面的元素。

db0654ab267a9cbe716f0b892935dd469c699556

南航选择Visual Studio Code作为常用的IDE。之所以选择Visual Studio Code,是因为它能够轻量地、方便地支持使用者Debug,用户可以根据自己喜好选择相应地调试工具。

ee42bf474a06a78e1db065bf15a76811c56218c9

上图是Reliable的界面。通过Reliable,用户可以查看测试用例和测试结果;并且Reliable天生与Macaca无缝衔接,这正式也是南航选择Macaca的原因之一。

d59062c96506b56d3aab4754d71c0717f0810a20

最终的测试结果需要与南航的测试平台对接(Macaca产生的测试报告、测试结果数据在导入南航测试管理平台前需要进行数据转换),形成完整的测试流程。


62bdc3cd58c3a036975729654caaa37ffcd2dd00

总结来看,Macaca给南航带来的价值主要是两点:

  •  成本投入、回收角度分析,仅考虑自动化测试脚本制作成本,第五轮测试执行后即可回收成本;
  •  风险控制角度分析,首先测试报告自动生成,可以提高测试过程管理有效性;其次生产上提高质量,降低风险,减少缺陷流出的成本;此外,有利于测试资产传承,降低对测试人员业务熟练度的依赖性。

除此之外,Macaca还给南航带间接性收益:QA从原来的从人工操作转变成具备可编程的能力;开发人员从原来直接提交代码,到现在提交代码前需要通过Macaca UI单元测试等;Macaca的应用推动了南航工作流程和工作方式的演变。

Future

7b0a27e4ec265d8c30e2e23326a843192da3f1ab

未来,为了推广Macaca,让Macaca被更多用户所接受,南航需要以下几个方向继续努力:

  •  为了让Macaca运行更加稳定,需要建立私有的CNPM库;
  •  基于Reliable的基础上,建立CI&CD平台;
  •  大力推广DevOps,扩大自动化测试范围;
  •  完善文档,回馈开源社区;
  •  H5端部署到Macaca中。

 

相关文章
|
JavaScript IDE 测试技术
Macaca 面向多端的自动化测试解决方案
Macaca 面向多端的自动化测试解决方案
593 0
Macaca 面向多端的自动化测试解决方案
|
测试技术 macaca Android开发
|
测试技术 macaca API
|
自然语言处理 JavaScript Java
面向用户端软件的测试解决方案Macaca
提供了自动化驱动,环境配套,周边工具,集成方案,旨在解决终端上的测试、自动化、性能等方面的问题。
面向用户端软件的测试解决方案Macaca
|
JavaScript 前端开发 测试技术
|
测试技术 macaca 开发工具
Macaca自动化测试Android和IOS应用
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/54021946 1.Macaca简介 Macaca是阿里巴巴集团开发的一套完整的自动化测试解决方案。
1486 0