【腾讯TMQ】解放程序猿(媛)的双手—iOS UI自动化测试

解放程序猿(媛)的双手—iOS UI自动化测试

前言

随着移动互联网时代的蓬勃发展,移动终端的自动化测试也在业界日益活跃,总体来看在Android平台上的自动化工具和实践比较多,但是说到iOS平台无论从自动化工具的数量还是质量上就陡降了。究其原因,无外乎是iOS系统的封闭性,加上相对Android用户的数量少,导致对这个平台系统的自动化进展缓慢,据笔者了解到的情况,很多iOS平台的测试人员还处于纯手工测试模式,自动化程度和Android平台无法相论,更别提和PC端相比了。

然而越是困难的事,越是研究的少,就越发有挑战性。有挑战性的事大多又会带来不菲的收益,如果能在iOS上做出大规模可持续运行的自动化测试,那么对iOS的测试演进无疑是一次大的推动。

手机QQ浏览器(iPhone)测试小组的同学在比对和实践了业界已有的iOS自动化工具,总结提炼了对比,如下表所示。

表中没有列的内容是稳定性,实践中看来上述除UITesting之外的工具稳定性都相对一般,会出现自身框架导致的各种闪退,以及性能越来越差的问题。

因此iOS平台上除了Monkey测试采用了自动化方式,以及部分性能测试轻度使用了一些自动化工具,大部分功能测试还是依赖于人的操作。移动APP更多的场景是面向用户,面向界面操作,UI测试就非常直观和重要,因此我们致力于寻找一种稳定性高,且易于掌握的自动化测试工具。

久旱逢甘霖

苹果公司在2015年推出的Xcode7中引入了UI Testing工具,该工具配置相对简单,还支持录制回放功能,运行速度很快,测试代码也可以调试,使用OC作为脚本测试语言兼容性较好,支持UIWebView,支持截图功能,最重要的是稳定性高。

其实选用一个工具,最看重的就是稳定性和可调试。可调试性不必多说,就是刚需。而很多工具没有被很好的应用就是因为稳定性较差,UI Testing是苹果开发的,和被测程序的兼容性好,实践证明,确实能够彻夜稳定运行脚本,未见因工具自身原因导致的闪退。性能方面也影响较小,后期发现一些截图操作会有一点点影响速度,但是整体运行还算良好,没有明显变差。

在大量工具都无法在iOS上施展拳脚时,UI testing姗姗而来,带给我们惊喜和希望。

必经之路

工具是好工具,但是如果想在项目中实际应用起来,还是会遇到许多问题和困难,这里给大家分享下我们的磨合期。

第一个挑战:门槛要低

要使用这个工具,扑面而来的问题就是怎样快速上手,也即学习成本和投入产出比的问题。地球人都知道OC语言并不是一种容易快速上手学习的语言,加上底层是XCTest接口,录制后能看到的实现就是下图这样的,看着很凌乱有没有?

因此我们需要做的就是进行封装。封装包含接口封装和特殊控件的封装两部分。

接口封装有两层,一层主要处理弹窗,异常,超时等待,手势处理等操作,二层是把控件类型和手势合二为一,提供脚本使用。实际脚本编写者就可以直接调用,命名和使用方式都具备高可读性和可用性,另一方面底层的接口修改,不会影响到上层的函数表现形式,这对自动化用例编者来说也降低了门槛,不必关注底层接口的细节变动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值