移动端测试

当前位置:首页 > 移动端测试

iOS测试指南 iOS Application Testing Guide(第八章)

第8章 iOS测试框架实践

随着移动开发的持续性火热,移动自动化测试框架也层出不穷。每个测试框架都有自己的鲜明特点并且在特定领域有很大优势。本章将详细阐述一些测试框架的结构设计和使用方法。希望读者能通过本章的介绍找到适合自己的测试框架或者自己也能开发一个功能更加强大的测试框架。


8.1 iOS测试框架总览

iOS测试框架的数量非常多,至少有10种可供选择。从测试框架的底层实现来划分,可以把这些测试框架分为以下3种类型:

1.扩展UI Automation

以TuneupJs ( htp://ww.tuneupjs.org/ )为代表,通过增加一些JavaScript脚本来充实官方UI Automation完成测试。当然笔者认为自己写的ynm3kttps://github.com/douban/ynm3k)也非常不错,尤其在UI控件定位方面是TuneupJs有益的补充。

优点:使用方法简单,可以在instruments工具 内部运行很好的UI操作界面,还可以和instruments自带的其他工具-起使用。 例如,可以和内存泄露检查工具一起使用,在运行自动化测试脚本的同时直接找到内存泄露。

缺点:只能使用JavaScript编辑测试脚本,并且不支持断点调试。调试只能使用输出log的方式。

2.驱动UI Automation

通过和UI Automation中的UIAHost对象进行通信来驱动官方UI Automation完成测试。

主要代表框架有Appium ( htp://appium.io/)、iOS-Driver ( htp://ios-driver.github.io/ios- driver/ )和Athrun ( htp:/:e .taobao.org/p/athrun/src/)。

优点:支持断点调试,使用简单、方便,并且有成熟的测试脚本组织。

3.非UI Automation

直接使用私有API实现对UI的操作模拟。KIF ( https://github. com/kif-framework/KIF )是这个领域的佼佼者。

优点:运行快捷,适合iOS开发人员直接编写;有很多底层方法可以选择,例如可以直接使用内存警告方式模拟内存告警。

缺点:只能使用Objective-C编写测试脚本。

当然还有两款非常著名的测试框架没有介绍,分别是Frank ( htp://www.testingwithfrank.com/ )和Calabash-iOS ( htp://calaba.sh/) ,都是BDD (行为驱动开发)工具的典范。笔者认为BDD是对自动化测试框架的再次封装,目的是使用BDD来区分业务测试和技术测试,让业务测试从更加关注业务流程角度设计测试用例,让技术测试根据测试用例的场景直接实现自动化测试。BDD是让更合适的人做自己擅长的事并且能达到在敏捷实践中与用户合作的目的。理论上讲任何测试框架都可以加入BDD的元素,可以使用Jasmine ( JavaScript的BDD测试框架,官网地址: http://pivotal.github.io/jasmine/ )和ynm3k组合进行自动化测试,也可以使用specta ( Objective-C的BDD测试框架,官网地址: htps://github.


文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~