`
zyueqi
  • 浏览: 142913 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Robotium应用与Android自动化测试的研究

阅读更多


      Android的自动测试研究,我相信有很多在接触android的人当中,也在网上不断的所搜和研究究竟有没有能应用android自动化测试手段,我也是如此,经过一番寻找研究有幸接触到了Robotium这个东东,他能一定程度上给我们一些想要的效果,现将小试牛刀的一些东东分享出来.

     

User scenario testing for Android

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的例子,看看跑起来的效果是什么样的,后续继续做些更详细的。

 

官方地址:http://code.google.com/p/robotium/

 

一、确保环境

1.已经安装eclipse

2.Eclipse已经配置好android相关环境

3.存在已经创建模拟器

 

二、步骤

1.启动Eclipse执行 New --> Project --> Android Project --> Create Project from existing sample --> NotePad将自带的例子导入进来.

2.在官方down栏下下载三个文件,两个是所需要的jar包,另一个是notepad的测试例子

(当前最新的是2.1Featured,这里就不提供下载连接了版本更新的还是比较快的

3.然后执行File --> Import --> Existing Project into workspace --> Select archive file --> ExampleTestProject_v2.1.zip将例子导入进来(如果错误可能需要你在这个项目上将刚才说需要的两个jar导入project --> Properties --> Java Build Path --> Add (external) Jar)

4.右键选择刚才导入的test例子执行Run As --> Run As Android JUnit Test.

如果没有意外的话会自动启动模拟器并且运行起来了.

上一张截图看看样子把



 再睹为快测试的代码:

 

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");
		 solo.assertCurrentActivity("Expected NoteEditor activity", "NoteEditor"); //Assert that NoteEditor activity is opened
		 solo.enterText(0, "Note 1"); //In text field 0, add Note 1
		 solo.goBack(); //Go back
		 solo.clickOnMenuItem("Add note"); //Clicks on menu item 
		 solo.enterText(0, "Note 2"); //In text field 0, add Note 2
		 solo.goBackToActivity("NotesList"); //Go back to first activity named "NotesList"
		 boolean expected = true;
		 boolean actual = solo.searchText("Note 1") && solo.searchText("Note 2");
		 assertEquals("Note 1 and/or Note 2 are not found", expected, actual); //Assert that Note 1 & Note 2 are found
		
	 }
	
	@Smoke 
	public void testEditNote() throws Exception {
		solo.clickInList(2); // Clicks on the second list line
		solo.setActivityOrientation(Solo.LANDSCAPE); // Change orientation of activity
		solo.clickOnMenuItem("Edit title"); // Change title
		solo.enterText(0, " test"); //In first text field (0), add test. 
		solo.goBackToActivity("NotesList");
		boolean expected = true;
		boolean actual = solo.searchText("(?i).*?note 1 test"); // (Regexp) case insensitive												// insensitive
		assertEquals("Note 1 test is not found", expected, actual); //Assert that Note 1 test is found

	}
	

	@Smoke
	 public void testRemoveNote() throws Exception {
		 solo.clickOnText("(?i).*?test.*");   //(Regexp) case insensitive/text that contains "test"
		 solo.clickOnMenuItem("Delete");   //Delete Note 1 test
		 boolean expected = false;   //Note 1 test & Note 2 should not be found
		 boolean actual = solo.searchText("Note 1 test");
		 assertEquals("Note 1 Test is found", expected, actual);  //Assert that Note 1 test is not found
		 solo.clickLongOnText("Note 2");
		 solo.clickOnText("(?i).*?Delete.*");  //Clicks on Delete in the context menu
		 actual = solo.searchText("Note 2");
		 assertEquals("Note 2 is found", expected, actual);  //Assert that Note 2 is not found
	 }

	@Override
	public void tearDown() throws Exception {
		try {
			solo.finalize(); 	//Robotium will finish all the activities that have been open
		} catch (Throwable e) {
			e.printStackTrace();
		}
		getActivity().finish();
		super.tearDown();
	} 

 

  • 描述: robotimu
  • 大小: 95.9 KB
1
0
分享到:
评论
1 楼 ljh223 2011-11-22  
顶起!  哈哈   ~~

相关推荐

    Android自动化测试工具Robotium的应用与研究.pdf

    Android自动化测试工具Robotium的应用与研究.pdf

    robotium自动化测试框架

    Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android...

    robotium自动化测试android程序

    该工具用于黑盒的自动化测试。可以在有源码或者只有APK的情况下对目标应用进行测试。 Robotimu 提供了模仿用户操作行为的API,比如在某个控件上点击,输入 Text 等等。Robotium 模仿普通用户行为,可以试着把一些...

    Android 自动化测试框架

    Android常用的自动化测试工具框架: Monkey,MonkeyRunner,UIAutomator,Robotium,Appium,Monkey Talk 一、Monkey  是Android SDK自带的测试工具,是一个命令行工具,可以运行在模拟器中或者实际设备中,它向...

    Android的自动测试研究--Robotium

    我相信有很多在接触android的人当中,也在网上不断的搜索和研究究竟有没有能应用android自动化测试手段,我也是如此,经过一番寻找研究有幸接触到了Robotium这个东东,他能一定程度上给我们一些想要的效果,现将小试...

    几款Android应用自动化测试工具

    简述:本文介绍几款流行的Android应用自动化测试工具。Monkey测试:随机测试,压力测试,运行在模拟器或实际设备中。MonkeyRunner测试:操作简单,可录制测试脚本,可视化操作,主要生成坐标的自动化操作,移植性不...

    Robotium自动化测试框架实用教程(图)

    Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android...

    Android自动化测试

    在Android测试中常用的测试包括:Monkey和MonkeyRunner以及robotium,本文中主要介绍下Monkey和MonkeyRunner自动化测试。Monkey是一个命令行工具,可以运行在模拟器里或实际设备中,它是一种轻量级的性能测试工具。...

    robotium-sandwich:为 Android 应用程序创建精美抽象的自动化 UI 测试

    Robotium-三明治为 Android 应用程序创建精美抽象的自动化 UI 测试介绍使用 Robotium 构建大型且可扩展的测试套件可能是一项具有挑战性的任务。 如果没有精心设计的抽象库,很快就会得到无法维护、难以扩展和充满...

    Robotium简单示例

    这是一个使用Robotium实现Android应用自动化测试的简单示例,来自于Robotium官网,使用时,可以在NotePadTest工程右键 -> Run As -> Android JUnit Test.也可以把两个APK都安装到手机上后,使用命令 adb shell am ...

    Android自动化测试之Robotium<二>:用例分析

    如果大家配置好了Robotium的测试环境,那么开始吧(这里只介绍有源码的情况,没有源码也是可以做的)被测应用下载:http://download.csdn.net/detail/wirelessqa/4487252   如果大家配置好了Robotium的测试环境,...

    基于Android 原生的Instruments Robotium 测试框架

    Robotim是一套针对安卓应用的自动化测试框架,其特性和selenium非常相似,Robotium官网对其的功能描述如下:Robotium是基于Android 原生的Instruments,创建一个测试框架,编写强大和稳健的Android应用程序自动黑箱...

    Robotium简单说明

    Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android...

    Android系统的自动化测试解决方案

    现在,已经有大量的Android自动化测试架构或工具可供我们使用,其中包括:ActivityInstrumentation,MonkeyRunner,Robotium,以及Robolectric。另外LessPainful也提供服务来进行真实设备上的自动化测试。  Android...

    android测试技术

    该工具用于黑盒的自动化测试。可以在有源码或者只有APK的情况下对目标应用进行测试。Robotimu提供了模仿用户操作行为的API...Robotium - Android自动化测试工具 测试步骤介绍:简单介绍如何使用robotium进行自动化测试

    基于Android原生的InstrumentsRobotium测试框架

    基于Android原生的...Robotim是一套针对安卓应用的自动化测试框架,其特性和selenium非常相似,Robotium官网对其的功能描述如下:Robotium是基于Android原生的Instruments,创建一个测试框架,编写强大和

Global site tag (gtag.js) - Google Analytics