注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

Android自动化测试工具Robotium 3.6与3.4.1对比及使用心得  

来自Andrew Leo   2012-12-05 11:00:30|  分类: 自动化测试 |举报 |字号 订阅

  下载LOFTER 我的照片书  |

性能对比:

内存占用对比:几乎一致,官方说内存占用更低,但目前观察并不明显
时间对比:用例执行时间几乎一致

3.6较3.4.1支持android-17,且增加了如下API:

1 2 3 4 5 6 7 8 9 10 11 
 * //3.5.1新增* 
clickOnView(View view, boolean immediately) 
scrollDownList(AbsListView list) 
scrollUpList(AbsListView list) 
scrollListToBottom(AbsListView list) 
scrollListToTop(AbsListView list) 
getCurrentNumberPickers()  
* //3.6新增* 
scrollViewToSide(View view) 
scrollListToLine(int index, int line) 
scrollListToLine(AbsListView listView, int line)

源码对比研究:(除增加上述API)

1、部分API增加了对view或者activity是否为null进行了判断,如下:

ActivityUtils:增加对ActivityStack中为null的Activity的移除
1 2 3 4 
removeActivityFromStack(Activity activity)  
if(activityFromWeakReference == null){                
 activityStackIterator.remove();             
} 
Scroller:增加对view=null的断言
1 2 3 
public <T extends AbsListView>
 void scrollListToLine(final T view, final int line){        
 if(view == null)             
Assert.assertTrue("AbsListView is null!", false); 
}

2、clickLongOnView()在click前增加了waitForView操作

3、注释的完善和严谨:如assertMemoryNotLow()

3.6:Asserts that the available memory is not considered low by the system.
3.4.1:Asserts that the available memory in the system is not low.


Robotium 3.6的缺点

1、Robotium已经开始不支持Android-4(API 1.6),但有些产品还是支持这个版本的SDK,因此需要修改源码重新打包来支持
注释robotium源代码Waiter.java文件中部分代码
在import中,注释掉下面的两句
1
//import android.support.v4.app.Fragment; 
//import android.support.v4.app.FragmentActivity; 
注释掉上面代码中的import后,3.6版本新增的以下几个API不能使用(如需使用如下API,则暂时无法支持1.6)
1 2 3 4 5 
clickOnActionBarHomeButton() 
waitForFragmentByTag(String tag) 
waitForFragmentByTag(String tag, int timeout) 
waitForFragmentById(int id) 
waitForFragmentById(int id, int timeout)
2、Robotium依然不支持对WebView的操作,这个可以通过自行封装操作WebView的API来解决,具体可以参考Calabash-android源码或淘宝的Athrun,地址如下
Calabash-android: https://github.com/calabash/calabash-android
Athrun: http://code.taobao.org/p/athrun/src/


总体来说,Robotium 3.6是对之前版本的一个改进和完善,不论是代码的严谨性和Javadoc的完善,同时它开始支持最新版本的Android-17(android API 4.2),虽然已经放弃对Android-4的支持(可修改以达到支持),但仍是目前最值得使用的一个版本,此后Robotium还将支持RC模式以及WebView(官方说法),所以让我们一起期待吧~

  评论这张
 
阅读(1583)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016