android 自动化测试的傻瓜实践之旅(UI篇) -----小试身手
2012-03-17 01:51 youxiachai 阅读(27923) 评论(17) 编辑 收藏 举报导言
很早以前就开始折腾android的自动化测试,不过,本人毫无测试基础,只能,从google那里搜索到仅有的一些资源,和目前,唯一一本讲android测试的书(应该是吧,如果还有希望告之).
从google那里搜来的资源大多都是介绍类的文章,比较少有实例操作,关于,android自动化测试,优酷上有个淘宝的框架叫做----TMS的视频演示,因为,那里说不让转载,所以,感兴趣的话就去google一下,就能看到.
顺便说一下,这个专题不是一个专业,严格的android测试博文,所以,不要以专业的测试眼光去评论,这是,简单的运用一下测试,让我们的程序员编出更好的代码…
自动化的 UI 测试
目前能免费进行android UI的自动化测试的方法有以下三种:
Monkey&MonkeyRunner android 的Junit 测试框架 Robotium 入门难度 一般 困难 非常简单 功能方面 很一般 无所不能 基本满足
关于Monkey & MonkeyRunner可以参考本人写的另外两篇
android实用测试方法之Monkey与MonkeyRunner (评论部分有些常见问题及部分解决有兴趣的可以大概浏览一下)
增强型MonkeyRunner 脚本计划 (算是一个小小的实践吧)
说下,Monkey&MonkeyRunner
优点: 上手简单,只需要apk
缺点: 文档少,容易出错,编写脚本需要python基础.
android 的Junit
关于这个内容我曾经做个一个小小的视频,后来上传到了优酷
Android 测试入门教程之activity简单测试 (慎入,声音比较蛋疼,画面被优酷压缩得不像样..)
说下, android for Junit
优点: 无所不能…
缺点: 上手不容易,需要源码.
Robotium
本文重点简介的方法….
说下,Robotium
优点: 足够简单,足够强大,支持apk测试
缺点: 还不能替代android for Junit
愉快的UI测试之旅 by Robotium
Robotium 是一个开源项目:
http://code.google.com/p/robotium/
目前最新版本:Robotium 3.1 is now released!
竟然,要做测试,我们要新建一个用于测试的项目:
直接下载项目吧….
http://vdisk.weibo.com/s/3feB5
然后,创建一个android的测试项目..
1,创建项目
2,选择要测试的项目
3,完成
4,把Robotium导入到测试项目里面,顺便说一下:ADT 17 预览版 4已经支持自动把libs下的jar包导入到依赖环境中…用之前版本的朋友手动添加吧…
编写第一个UI测试方法
123456789101112131415public class FootTabClickTest extends ActivityInstrumentationTestCase2<
TabViewActivity
> {
//1,创建一个自动化测试对象
private Solo tabSolo;
public FootTabClickTest () {
super("com.achai",TabViewActivity.class);
}
@Override
protected void setUp() throws Exception {
// TODO Auto-generated method stub
super.setUp();
//2,初始化我们的测试对象
123456789101112tabSolo = new Solo(getInstrumentation(), getActivity());
}
@Smoke
public void testClickEachTab(){
//3,获取我们view 中所有的单选按钮,没错就是这么简单…
ArrayList<
RadioButton
> radioGroup = tabSolo.getCurrentRadioButtons();
//4,自动点击每个单选按钮
for(int i=0; i < radioGroup.size(); i++){
tabSolo.clickOnRadioButton(i);
//5,暂停1s 用来看效果的…
123tabSolo.sleep(1000);
}
//6,又一个强大的功能,直接识别点击当前view中匹配的文本,与控件无关!!!!!!!
123
tabSolo.clickOnText("(?i).*?我的收藏.*");
tabSolo.sleep(1000);
//7,这个是长按,注意留意动画
1234567891011121314
tabSolo.clickLongOnText("返回");
tabSolo.sleep(2000);
// tabSolo.clickOnRadioButton(1);
}
@Override
protected void tearDown() throws Exception {
// TODO Auto-generated method stub
super.tearDown();
}
}
效果动画:
总结
就这么多了,感觉还不够?那下次在更新吧…
作者:游戏阿柴
出处:http://www.cnblogs.com/youxilua
本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
微博联系:新浪微博
用支付宝赞助博主:http://me.alipay.com/youxilua
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂