背景:

随着移动设备的大量普及,这几年,移动应用也甚嚣尘上,层出不穷。用户对便捷性,对体验感的极致追求,促使移动端研发越来越火爆,对应的,移动端的测试也变得越来越重要。

作为物流行业,业务生命周期比较长,贯穿了收,发,到,派,签等主要关键节点,把终端客户,网点,中心每个端的用户联系起来。公司内部有几个重点产品,都提供了移动端应用,旨在为广大用户带来便捷性,尤其是掌中通 APP,快递小哥每日的工作分配,工作路线,工作量,客户信息,薪资结算等都可以通过掌中通 APP 一目了然的呈现,其准确性,稳定度会直接影响公司所有快递收发进度。为了保证质量,提高测试效率,有效的自动化工具不可或缺。

一、移动 UI 自动化探索(现状)

测试部一直在探索移动端自动化测试的方法,多年前我们就已经基于 BDD 框架 robot framework 以及 Appium 实现了所有公司重点项目基于关键字的自动化测试,在 IDE 的加成下,大部分的移动测试人员都可以实现自动化脚本的开发。下图是该框架下的部分脚本:

随着时间推移,app 变得越来越复杂,脚本也越写越多。同时今年以来业务的需求变化越来越多,这种自动化方式也越来越难以维护。

我们急需一个平台来解决以下方面的问题:

下图就是一个录制的脚本,可读性很强。

经过对多个产品的 demo 验证,发现该工具可以满足我们的基本诉求。后期便着力于 基于该工具开发一个移动端测试平台。

三、移动真机平台(打地基)

基于 atxserver2 的二次开发,集成 SSO(SSO 是公司内部的一个统一登陆鉴权服务),我们开发了一个移动真机平台,无论测试同学还是开发工程师都可以通过这个平台查看可用手机,手机具体详细信息,借用手机来复现问题以及验证自动化脚本的稳定性。
该平台为移动自动化平台提供大量设备支持。下图为平台的截图。

四、移动自动化平台(实践)

有了以上的储备,我们开始设计移动自动化平台,该平台基本架构如下:

1.利用 Jenkins 的 pipeline 来运行脚本,同时为了提高效率以及隔离脚本之间的影响,所有的任务是运行 Jenkins slave 在容器里面的,以最大程度提高并发量;

2.平台可以指定脚本运行的手机设备,如果不指定会在所有手机上执行该自动化;
3.同一台手机没有办同时来运行多个脚本,系统提供了任务调度以保证脚本最大可能的运行到各个设备上,有如果一台设备有脚本执行,自动进度排队状态等待设备空闲。系统也会根据项目的优先级来调整等待顺序,以保证重要项目的脚本优先执行;
4.平台统一了脚本的配置方式,可以手动执行,也可以配置成周期任务海之星;
5.最后系统会统计所有执行过的设备,然后统计出结果,统一展示。

得益于 airtest 支持,脚本的每个步骤都可以进行截图,可以很清楚的看到每个步骤执行时,在不同设备上的情况。甚至你还可以设置进行视频录制。如果发现了错误,也会很明显看到出错的步骤。

目前系统已经上线,重点项目逐渐接入中。

五、未来展望

展望未来图像识别、5G、人工智能等前沿科技在测试领域的运用给了我们无限遐想的空间。基于测试步骤截图,利用图像识别技术筛选不同设备上有差异的步骤,进行兼容性测试等等方案的实施也变得不再那么遥远。

更多详情交流可加微信 :

更多招聘查看链接:

https://testerhome.com/topics/31821
https://testerhome.com/topics/31820


↙↙↙阅读原文可查看相关链接,并与作者交流