最近在做ios自动化这块,根据自己的实践做了以下总结:
1.ios自动化测试场景
前一篇我写了一篇关于安卓自动化测试的文章,这里大家可以对比着学习和理解,因为安卓和ios很多原理和方法是相同的,只是实现方式和工具不同而已。
跟安卓一样,ios自动化测试根据测试场景的不同也可分为UI自动化测试和API自动化测试,那么问题来了,来了测试任务后,或者说遇到一个测试场景,我们该如何选择呢?到底是用UI自动化还是API自动化呢?
首页需要明确的一点是不管是手工,UI和API,最终目的只有一个,那就是提高测试效率,结果导向只有这一个。
下面我就具体分析一下如果选择:
首页我们都知道UI自动化是模拟用户操作,直接从UI层面上编写用户操作的测试代码,直接操作UI控件,那么当测试场景属于不稳定的系统,页面和流程需要不断变化时,就不建议用UI的方式,因为势必需要经常改脚本,时间成本很大,投入产出比较低,换句话说,UI自动化适合稳定的系统,页面和流程变化较小的测试场景.
下面我们再来说一下API自动化,API关注的是逻辑,需要依赖于代码。
2.ios测试常用的框架
首先,最常用的是苹果原生的XCTest框架,原来只有单元测试的功能,从xcode7之后有了UI测试的功能,这时候才真正被测试人员接受。
kIF框架是基于XCTest开发的,相比XCTest,他又更灵活的接口,更丰富的功能,是第三方框架首选。
我们先来看一下XCUITest里面的几个关键类
1)XCUIApplication
负责初始化脚本,保证每个脚本执行前都是清洁的环境
XCUIApplication *application = [[XCUIApplicaiton alloc] init];
2)XCUIElement
负责控制控件
3)XCUIElementQuery
跟XCUIElement是相辅相成的,负责检查接口是否可用。
下面我们就来看如何用XCTest进行UI自动化测试?
1.XCUITest的特点就是原生,兼容性强,支持脚本录制功能,上手非常简单,即使没有oc或swift代码基础也可以上手,这里不再赘述录制方法了,大家可自行百度。
2.因为直接录制的脚本会存在很多问题,稳定性较差,所以录制完的脚本还需要大量的手工修改方可使用。