第八章、手机端UI自动化测试
(一)APP测试分类
1,原生APP:Native页面是使用原生系统内核的,相当于直接在系统上操作
2,H5APP:先调用系统的浏览器内核,相当于是在网页中进行操作,较原生APP稳定性差
3,混合APP:既有Native页面,又有H5页面
特点:
H5:最大的优点是可以跨平台,开发容易
Native:需要用Android的语言、iOS的语言各自写自己代码。H5只要开发一套
(二)移动APP自动化测试框架对比
Android:
各个测试框架的继承关系如下,继承关系决定了有些框架的先天优势或先天不足. 在实际应用中可以集成多个框架。
l 基于Instrumentation的测试框架,比如Espresso,Robotium,Selendroid等,都不能支持跨APP使用。 如自动化测试中有跨APP操作,可以结合UiAutomator实现。
l 支持BDD的自动化框架比较少,可以在calabash 和 RoboSpock及Jbehave之间选择。
l 若想同时支持Android和IOS,可选框架有Appium和Calabash,或AthRun。
l 若为单元测试选择框架,可选Instrumentation或Robolectric。Robolectric实现了shadow object 类,耗时短。
iOS:
IOS自动化测试框架继承关系如下. XCTest与 Xcode 的 IDE 直接集成,使用简单, 但其不支持stub和mock, 所以单使用XCTest框架的较少. Kiwi是一个iOS平台十分好用的行为驱动开发BDD的测试框架,有着非常漂亮的语法,可以写出结构性强,非常容易读懂的测试。UI Automation是Apple官方提供的UI自动化测试的解决方法,但接口不够丰富。
l KIF、Frank、Calabash都是通过使用代码的形式来模拟事件触发,使得被测代码就像是由用户行为所触发的一样。但这样的代价是插入一个额外层的复杂度。
l IOS测试框架中支持BDD的有calabash 和Kiwi。
l 可选用的单元测试框架有Kiwi,Specta,Quick等,而KIF,Subliminal和calabash更适用于UI级验收测试
(三)选择手机端APP自动化测试实现方式
1.Android
Android使用的框架首选appium,因为这是目前解决方案最多的一种框架,使用其他的如果出现了问题,就可能造成永远阻塞
实现时间:1个月
2.iOS
可选的框架:
1,Appium:这个坑比较多,需要填坑
2,使用其他框架,需要学习非Python语言,可以使用UIAutomation
(四)微信自动化测试
市面上没有解决方案,腾讯移动品质中心TMQ在开发开源测试框架中,等待发布后,使用此框架
方案地址:FAT(Fast-AutoTest) —专业服务于微信H5/小程序UI自动化测试
特点:
(1)全面支持微信H5页面,能识别常见H5控件,能获取页面任意内容(常见的如文字、图片、链接等);
(2)全面支持小程序内控件识别,操作,页面内容获取等;
(3)支持基础的性能测试监控;
(4)支持安卓Native页面组合操作使用;
(5)简单的API设计,使用门槛低;
(6)提供日志等级开关,方便调试定位。