http://www.devdiv.com/home.php?mod=space&uid=14682&do=blog&id=5779
Robotium的jar包和程序例子地址:
http://code.google.com/p/robotium/
Android的自动测试研究,我相信有很多在接触android的人当中,也在网上不断的搜索和研究究竟有没有能应用android自动化测试手段,我也是如此,经过一番寻找研究有幸接触到了Robotium这个东东,他能一定程度上给我们一些想要的效果,现将小试牛刀的一些东东分享出来.
Robotium is a test framework created to make it easy to write powerful and robust automatic black-box test cases for Android applications. With the support of Robotium, test case developers can write function, system and acceptance test scenarios, spanning
multiple Android activities.
Robotium has full support for Activities, Dialogs, Toasts, Menus and Context Menus.
上边的一段英文是官方一段文字,也就是我们利用Robotium可以做一些对android的一些自动化测试工作,并且他是可跨越多个Activites,且容易写一些测试case的,一定程度上能做一些黑盒的自动化工作,在这里先简单跑一个notpad的例子,看看跑起来的效果是什么样的,后续继续做些更详细的。
一、确保环境
1.已经安装eclipse
2.Eclipse已经配置好android相关环境
3.存在已经创建模拟器
二、步骤
1.启动Eclipse执行 New --> Project --> Android Project --> Create Project from existing sample --> NotePad将自带的例子导入进来.
2.在官方down栏下下载三个文件,两个是所需要的jar包,另一个是notepad的测试例子
(当前最新的是2.5Featured,这里就不提供下载连接了版本更新的还是比较快的)
3.然后执行File --> Import --> Existing Project into workspace --> Select archive file --> ExampleTestProject_v2.5.zip将例子导入进来(如果错误可能需要你在这个项目上将刚才说需要的两个jar导入project --> Properties --> Java Build Path --> Add (external) Jar)
4.右键选择刚才导入的test例子执行Run As --> Run As Android JUnit Test.
如果没有意外的话会自动启动模拟器并且运行起来了.
http://www.devdiv.com/data/attachment/album/201110/11/155452zmygarwywa9e9zwv.png
再欣赏一下代码:
public class NotePadTest extends ActivityInstrumentationTestCase2<NotesList>{
private Solo solo;
public NotePadTest() {
super("com.example.android.notepad", NotesList.class);
}
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
@Smoke
public void testAddNote() throws Exception {
solo.clickOnMenuItem("Add note");
//Assert that NoteEditor activity is opened
solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor");
//In text field 0, add Note 1
solo.enterText(0, "Note 1");
solo.goBack();
//Clicks on menu item
solo.clickOnMenuItem("Add note");
//In text field 0, add Note 2
solo.enterText(0, "Note 2");
//Go back to first activity named "NotesList"
solo.goBackToActivity("NotesList");
// solo.
boolean expected = true;
boolean actual = solo.searchText("Note 1") && solo.searchText("Note 2");
//Assert that Note 1 & Note 2 are found
assertEquals("Note 1 and/or Note 2 are not found", expected, actual);
}
@Smoke
public void testEditNote() throws Exception {
// Click on the second list line
solo.clickInList(2);
// Change orientation of activity
solo.setActivityOrientation(Solo.LANDSCAPE);
// Change title
solo.clickOnMenuItem("Edit title");
//In first text field (0), add test
solo.enterText(0, " test");
solo.goBackToActivity("NotesList");
boolean expected = true;
// (Regexp) case insensitive
boolean actual = solo.searchText("(?i).*?note 1 test");
//Assert that Note 1 test is found
assertEquals("Note 1 test is not found", expected, actual);
}
@Smoke
public void testRemoveNote() throws Exception {
//(Regexp) case insensitive/text that contains "test"
solo.clickOnText("(?i).*?test.*");
//Delete Note 1 test
solo.clickOnMenuItem("Delete");
//Note 1 test & Note 2 should not be found
boolean expected = false;
boolean actual = solo.searchText("Note 1 test");
//Assert that Note 1 test is not found
assertEquals("Note 1 Test is found", expected, actual);
solo.clickLongOnText("Note 2");
//Clicks on Delete in the context menu
solo.clickOnText("(?i).*?Delete.*");
actual = solo.searchText("Note 2");
//Assert that Note 2 is not found
assertEquals("Note 2 is found", expected, actual);
}
@Override
public void tearDown() throws Exception {
try {
//Robotium will finish all the activities that have been opened
solo.finalize();
} catch (Throwable e) {
e.printStackTrace();
}
getActivity().finish();
super.tearDown();
}
}
/**
* @author 张兴业
* 邮箱:xy-zhang@163.com
* qq:363302850
*
*/
分享到:
相关推荐
Android 自动化测试(5)<robotium> robotium-solo-5.2.1 javadoc 样例
一、测试目的 1、回归测试稳定版本功能。 2、提高工作效率。 二、测试对象 1、Robotium在APK(米聊)文件下进行java junit Test...7.插件:re-sign.jar,robotium-solo-3.3,robotium-solo-3.3-javadoc(官方文档)。
android-robotium-ant自动化测试框架搭建
Android自动化测试之Robotium--基础操作,简简单单入门基础,适合新手
Android自动化测试之Robotium--进阶操作,让手指去旅行。
Android自动化测试工具,从连接app到自动测试界面控件元素,非常详细!官网例子
Android自动化测试之Robotium学习
这是我收集的android自动化测试— 有关于robotium的一些资料 包括自己整理的一些文档 共4篇。。 jar也包括在内。 最重要的是还有一个Demo程序包,其中包括两个程序,一个测试程序一个被测程序。。 5分绝对值得的,...
Android自动化测试工具-Robotium我们很高兴的看到官方(http://code.google.com/p/robotium/)终于发布Robotium4.0版本,这是有史以来最大的一次单独版本更新,并提供了Web支持,现在,Robotium可以和你的hybirdapps...
最全最新的Android自动化测试Robotium详细说明文档,学习Robotium必不可少的资料。
robotium-solo-4.2.jar robotium自动化测试架包
NULL 博文链接:https://fanfq.iteye.com/blog/781769
Android自动化测试robotium.pdf
Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android...
android自动化测试之adb shell的使用,主要介绍在windows环境中使用cmd命令自动启用android模拟器或真机进行android自动化测试工程测试
Android自动化测试工具Robotium的应用与研究.pdf
Android自动化测试框架Robotium的使用。原博客地址:https://blog.csdn.net/u010356768/article/details/100074730
Robotium-三明治为 Android 应用程序创建精美抽象的自动化 UI 测试介绍使用 Robotium 构建大型且可扩展的测试套件可能是一项具有挑战性的任务。 如果没有精心设计的抽象库,很快就会得到无法维护、难以扩展和充满...