推荐淘测试的Instrument Driver (iOS下的自动化测试)

来源:互联网 发布:python 中位数 编辑:程序博客网 时间:2024/05/22 00:54

文章出处:http://blog.csdn.net/horkychen/article/details/8075024?reload

作者:Horky

今天看到了下面这篇博客,是淘测试开发的iOS自动化测试工具,非常值得学习应用:

  InstrumentDriver,对iOS自动化测试说 Yes!


InstrumentDriver 是 Mobile自动化小组最近实现的基于 instrument,针对 iOS 的自动化测试框架,目前支持 java 语言编写测试用例。     研究过iOS自动化测试的同学肯定对 instrument UI Automation 有所耳闻,或者已经使用它进行自动化测试实践。iOS 4.0 开始,苹果官方提供了 UI Automation 以支持应用的UI自动化测试。不过4.0版本并不支持录制功能,只能根据提供的API文档编写 javascript 测试脚本,instrument 驱动脚本在应用上模拟用户行为。

InstrumentDriver 的实现有以下功能特点: 
    1. C/S 模式运行。     框架分为Server端和Client端,双方进行socket通信传递消息:Client端(Mobile)负责请求测试步骤运行,并返回运行结果;Server端(Java用例)负责响应Client请求并接受测试步骤的运行结果。C/S模式的实现,甚至可以脱离Mac在PC上编写、调试测试用例(运行肯定离不开Mac系统),在熟悉的window环境下,让用例编写更加得心应手。 
  
  2. 纯Java语言编写测试用例,很好的兼容了instrument js格式的API。     InstrumentDriver 用Java实现了各元素类型的之间的继承关系以及各元素类型所提供的操作方法,还扩展了一些更易于使用的操作,如滑动操作等。熟悉instrument js语法格式的测试人员可以很快用java语言实现测试用例。  

   3. 提供了清晰的控件树状结构打印及便利的元素查找方法。     可以树状结构打印出当前窗口的所有元素或某一元素下的所有子元素。输出属性中不仅包括各元素的基本属性(name,value,label,rect等),更包括代表该元素的guid,用例中直接使用该guid属性即可代表该元素进行相应操作。findElemenByText及相关重载方法可以很方便的根据元素的显示文本,类型,索引组合查找该元素,极大提升了用例的自描述性和可维护性,也更好的简化了用例的编写。    

 4. Debug模式和非Debug模式运行
    用例可以debug模式和非debug模式两种方式运行。debug模式通信时传递json对象或数组,返回后实例化为具体对象。可以调试脚本,查看相关对象的属性值。非debug模式仅在需要操作UI元素或获取UI元素属性的时候才通信,较大的提升了运行速度(debug模式的2倍左右)。可以这么认为:用例debug模式通过后,非debug模式也能运行通过。     5. Junit方式运行测试用例     InstrumentDriver 以大家熟悉的Junit方式驱动测试用例,具备了Junit单元测试的所有优点。可以更好结合其它工具进行持续集成和数据准备。如结合svn,maven,hudson进行持续集成,通过iTest进行数据准备等。

代码和文档下载: http://code.taobao.org/p/athrun/src/trunk/iOS/InstrumentDriver/

原创粉丝点击