今天看到了下面这篇博客,是淘测试开发的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/

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

  1. python自动测试相机_Python + Appium+ IOS自动化测试

    1)搭建好Appium环境 2)拿到iOS开发APP项目文档(含***.xcodeproject文档) 3)cmd进入含.xcodeproject文档目标下利用:xcodebuild -sdk iph ...

  2. Flutter 淘宝 App,支持 iOS、Android

    GZXTaoBaoAppFlutter 项目地址:GanZhiXiong/GZXTaoBaoAppFlutter  简介:Flutter 淘宝 App,支持 iOS.Android 更多:作者   提 ...

  3. iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge

    WebViewJavascriptBridge是一个有点年代的JS与OC交互的库,使用该库的著名应用还挺多的,目前这个库有7000+star.我去翻看了它的第一版本已经是4年前了,在版本V4.1.4以 ...

  4. iOS下JS与OC互相调用(一)--UIWebView 拦截URL

    1.在JS 中做一次URL跳转,然后在OC中拦截跳转.(这里分为UIWebView 和 WKWebView两种,去年因为还要兼容iOS 6,所以没办法只能采用UIWebView来做.) 2.利用WKW ...

  5. web移动端Fixed在Input获取焦点时ios下产生的BUG及处理

    1.现象 可以看到下面两张图,图1搜索框为fixed固定在顶部,滚动没有任何问题. 图2当光标进入搜索框时,ios自作聪明的把光标定位到中间,并且fixed属性被自动修改成了absolute.此时注意 ...

  6. ios下使用rsa算法与php进行加解密通讯

    首先了解一下几个相关概念,以方便后面遇到的问题的解决: RSA算法:1977年由Ron Rivest.Adi Shamirh和LenAdleman发明的,RSA就是取自他们三个人的名字.算法基于一个数 ...

  7. 请问如何查询一个APP的Android和iOS下载量?

    作者:Jasmine Jiang 链接:http://www.zhihu.com/question/28533067/answer/87871598 来源:知乎 著作权归作者所有,转载请联系作者获得授 ...

  8. 如何查询一个 app 的 Android 和 iOS 下载量?

    查询一个应用的Android下载量,可用: 酷传**:可监控任何你想查看的app在(安卓.360.豌豆荚.机锋.百度.安智.应用汇.应用宝.联想.易用汇.联通.魅族.华为.Oppo.vivo)市场的总 ...

  9. 解决ios下的微信页面背景音乐无法自动播放问题

    前言 在做各种HTML5场景页面的时候,插入背景音乐是一个很普遍的需求.我们都知道,iOS下的safari是无法自动播放音乐的,以至一直以来形成了一种认知,iOS是无法自动播放媒体资源的.直到微信火爆 ...

最新文章

  1. Keil问题及其解决
  2. 远程管理MAC OS
  3. RK3399如何选择系统呢?
  4. UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throw
  5. Unity笔记(正版全阶段)目录
  6. Eclipse快捷键大全,导包快捷键:ctrl+Shift+/【转】
  7. 【离散数学中的数据结构与算法】五 排列与组合一
  8. 【HDU - 5912】Fraction (模拟)
  9. PHP实现多文件上传
  10. 【初学线段树,看这篇文章准没错】线段树(单点修改and区间修改)acm寒假集训日记22/1/10
  11. java比较时间戳大小_JAVA中两个String类型的时间戳怎么样比较大小?
  12. VS2008操作PPT
  13. Jmeter函数助手
  14. Redis Cluster 伪集群的搭建
  15. OpenStack Keystone架构
  16. 第三季-第22课-网络协议分析
  17. PS制作加载GIF图片教程
  18. Word怎么在空白处添加下划线
  19. 程序猿必看的10部黑客电影
  20. 我用 Python 写了个基金涨跌通知助手

热门文章

  1. 您尝试购买的项目已停止供货
  2. 通过修改hosts文件访问GitHup
  3. Excel 将 数字文本 转换为 纯数字
  4. 【论文阅读】A Survey of Image Synthesis Methods for Visual Machine Learning --- 图像生成,计算机视觉
  5. 基于hexo的友链朋友圈 Beta1.4(已适配Butterfly和Matery主题)
  6. 【奇安信天擎】缷载指南
  7. python弹幕拼脸_Python爬虫经典项目:各大直播平台的弹幕人气工具!
  8. 参加阿里云北京峰会随感
  9. MAC 笔记本 英雄联盟在虚拟机中不支持
  10. php搜索权重机制,2019影响京东搜索权重的因素汇总!