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

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

时间: 2024-09-11 16:40:28

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

在ios下定时任务的小例子

在ios下定时任务的小例子 为了模拟翻页场景(为了测试内存是否泄露),需要用定时任务刷新界面.写了个小例子. 一上来是空白页,3秒钟后显示第1页,以后间隔3秒,页号增加,直到第5页. 首先,在controlller头文件中增加: NSTimer *timer; 定时器变量. 在实现代码中创建一个页号变量: #import "list_demoViewController.h"  - int pageNo=1; 在viewDidLoad方法中初始化定时器: - (void)viewDid

比淘宝还藏龙卧虎的线下手机卖场,靠什么走天下?

本文讲的是比淘宝还藏龙卧虎的线下手机卖场,靠什么走天下?,每个城市,都会有一个手机卖场,品牌专卖店.渠道商城.运营商门店.私人摊点.二手交易方.配件零售商--鱼龙混杂地挤在一起. 电商还欠发达的时候,手机卖场曾无限风光.但那也是一个臭名昭著的地方,隐性消费.价格不透明.组装机宰客等一系列欺诈行为让人避之不及.小米崛起后,人们发现原来网上消费是那样美好,没有繁琐的环节,没有信息的高墙.而今vivo.oppo等黑马杀来,许多人高呼手机门店时代回归了. 有人始终不相信线上买手机是个靠谱事,就像有人也始

解决IOS下不支持fixed的问题

我们公司有一个页面底部用到了fixed样式,每当弹出键盘的时候,IOS下fixed就会走样(据我所知android没有该问题). 为此之前我经过产品的同意做了简单的处理(方法1). 方法一: focus的时候让fixed块position变为relative,这是最简单的处理方法. 下面是我的小demo <!DOCTYPE html> <html> <head>     <title></title>     <meta charset=&

ios下移动文件方法汇总

  这篇文章主要给大家汇总了一下ios下移动文件方法,从简单到复杂,十分的实用,有需要的小伙伴可以参考下. 这段objective c代码用于移动指定路径下的文件 代码如下: if ([fileManager copyItemAtPath:@"FilePath1" toPath:@"FilePath2" error:NULL]) { NSLog(@"Copied successfully"); } 方法二: 使用 NSFileManager: 让

phonegep在ios下的页面上下划动问题

问题描述 phonegep在ios下的页面上下划动问题 如何 禁止掉这种拉伸,不影响页面本身的滚动条 解决方案 本身页面显示就是基于一个webview,所以只要关闭webview的滚动就好了

重磅出击 实现IOS下内嵌HTML编辑器 Objective-C 与 JavaScript 通信攻关

通过接近N天的努力. 终于在今天.IOS下内嵌HTML编辑器的Demo 基本实现. 学习过程中,参考了很多网上的资料.很感谢这些分享资源的牛人.有你们.. 才能顺利拿下这个比较特别的需求. 我使用的HTML编辑器是金山开源的 KindEditor         利用UIWebView 加载 KindEditor (也就是我说的内嵌). 实现IOS下用户可以进行富文本编辑. 主要目的是保证服务端的内容值不丢失.亦可在移动端对内容进行一些简单的修改. 途中难点在于,如何与 KindEditor 的

ios-怎么在iOS下用native api实现HTTPS?

问题描述 怎么在iOS下用native api实现HTTPS? 我想用swift编写native api实现与服务器通信,以前有一些开源框架,比如RestKit.AFNetworking,但是他们是用Objective-C编写的,而且用开源框架以后可能会有些问题,我的项目这方面要求比较高,所以我还是想用swift写native api实现HTTPS的通信.HTTP比较容易,用NSURL和NSURLSession就可以了.有人还写了一些库,比如https://github.com/daltonia

iOS 下使用 OpenCV 实现图像处理

i iOS 下使用 OpenCV 实现图像处理 目的 在这个教程中我们将学习如何在 iOS 上用 OpenCV 实现基本的图像处理. 介绍 在 OpenCV 中所有的图像处理操作一般是基于 Mat 结构来进行的.而 iOS 上要在屏幕上显示图片用的是 UIImage 控件实现.为了将 OpenCV Mat 转成 UIImage 我们需要用到 Core Graphics 框架.下面的代码用来在 Mat 和 UIImage 对象之间进行转换. - (cv::Mat)cvMatFromUIImage:

Android Studio 开发 真机测试 如何访问本地服务器下的内容

问题描述 Android Studio 开发 真机测试 如何访问本地服务器下的内容 请大神指点下,谢谢! win7 虚拟服务器用的是tomcat 本地电脑可以访问(localhost:8080/) 没有问题 APK编程用了 10.0.2.2:8080 没用 后来同时连入WiFi APK编程改为192.168.1.X:8080 (本地电脑的IP)还是没用 用手机浏览器连接192.168.1.X:8080 (本地电脑的IP) 刚连上就停在那里 什么内容都没有 注:电脑的杀毒软件都关了. 解决方案 w