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

网易杭州 QA Team

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

 
 
 
 
 

日志

 
 

Robotium4.0 VS Robotium3.6性能对比  

来自孔庆云kevin   2013-04-11 15:39:29|  分类: 自动化测试 |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Robotium前段时间发布了4.0版本,4.0版本更新的详细介绍参考http://qa.blog.163.com/blog/static/1901470022013212517881/
我们也第一时间进行了升级试用,Robotium从3.6升级到4.0,同时在不同的模拟器版本上运行了一段时间测试了4.0与3.6之间的性能情况。

下面我们在Mac、Linux操作系统中针对3.6,4.0运行了相同的测试用例(保证用例是稳定的),收集了相应的测试数据。
PS:这里我们没有在Windows系统中运行,如果大家使用模拟器进行android自动化测试,尽量不要使用windows系统,windows系统下模拟器稳定性非常的差,经常会自动断网,需要重启模拟器,直接导致用例运行耗时会增加很多。

Linux系统
-总共33个自动测试用例
 SDK版本2.2
2.3.3
4.0.3
4.1
4.2
用例执行时间s(Robotium3.6)
3604S
3582S3708S3718S3910S
用例执行时间s(Robotium4.0)3579S3561S3715S3688S3868S
  

Mac系统-总共33个自动测试用例
 SDK 2.2 2.3.3 4.0.3 4.1 4.2
 用例执行时间s(Robotium3.6) 3605S 3608S 3741S 3748S 3958S
 用例执行时间s(Robotium4.0) 3594S 3575S 3767S 3697S 3925S
  

总结:从上面的数据可以看到在Mac、Linux系统中Robotium4.0运行用例时间整体上是比3.6稍微快了一点点,但是差距不大,没有性能上的问题。

Robotium4.0Bug
因为Roboitum4.0改动比较大,所以也引入了一些bug。
clickOnButton(String name)
这个API是点击界面中指定控件文本为name的button,但是在4.0中,如果界面中存在其它不是button的文本为name的也会被找到点击,所以如果存在name相同的情况,会导致button点击不上的问题。
Bug分析:

public void clickOnButton(String name) {

//Robotium4.0新增了clickon方法,通过class类型传递
clicker.clickOn(Button.class, name);
}


public <T extends TextView> void clickOn(Class<T> viewClass, String nameRegex) {
@SuppressWarnings("unchecked")

//这里会传入viewClass类型,但是在waitForText的时候并没有传入参数
T viewToClick = (T) waiter.waitForText(nameRegex, 0, TIMEOUT, true, true, false);

if (viewToClick != null) {
clickOnScreen(viewToClick);
} else {

****

}


public TextView waitForText(String text, int expectedMinimumNumberOfMatches, long timeout, boolean scroll, boolean onlyVisible, boolean hardStoppage) {
final long endTime = SystemClock.uptimeMillis() + timeout;

while (true) {
final boolean timedOut = SystemClock.uptimeMillis() > endTime;
if (timedOut){
return null;
}

sleeper.sleep();

if(!hardStoppage)
timeout = 0;

//这里会把TextView类型的找出来,而不是Button的,所以会导致API无效
final TextView textViewToReturn = searcher.searchFor(TextView.class,

text, expectedMinimumNumberOfMatches, timeout, scroll, onlyVisible);

if (textViewToReturn != null ){
return textViewToReturn;
}
}
}


修复方法:
Robotium在4.1版本已经修复了该问题,大家可以下载4.1版本即可。
下载地址
  评论这张
 
阅读(642)| 评论(2)
推荐 转载

历史上的今天

评论

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

页脚

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