robotium的使用方法(一)

一‘、创建一个android工程

该步骤只适合初学者,有一定基础的同学可以跳过该步骤,直接进入步骤二。

1.new project

robotium的使用方法(一)_第1张图片

2.选择Android project进入下面的截图

robotium的使用方法(一)_第2张图片

3.输入项目名称点击next进入下图

robotium的使用方法(一)_第3张图片

4.点击下一步,在出现的界面里面输入包名

robotium的使用方法(一)_第4张图片

5.点击finish就完成了一个简单的android工程。工程的目录结构如下

robotium的使用方法(一)_第5张图片

6.运行界面

robotium的使用方法(一)_第6张图片

二’、Robotium的使用

1.下载robotium的jar文件

在下面的地址下载所需要的jar文件

http://code.google.com/p/robotium/downloads/list

我下载的是4.0的jar包

2.创建一个测试工程

robotium的使用方法(一)_第7张图片

2.选择Android Test Project,选择An existing project to test在下面的工程列表里面选择要测试的工程。

robotium的使用方法(一)_第8张图片

3.输入包名,选择sdk版本后点击finish,完成工程的创建。测试工程的目录结构如下

robotium的使用方法(一)_第9张图片

4.创建一个测试类,创建这个类之后需要在工程中导入我们之前下载的robotium的jar文件到工程中。

package com.android.hello.test;

import com.android.hello.HelloActivity;
import com.jayway.android.robotium.solo.Solo;

import android.test.ActivityInstrumentationTestCase2;

public class TestScript  extends ActivityInstrumentationTestCase2<HelloActivity>{
	private Solo mSolo;
	public TestScript() {
		super("com.android.hello", HelloActivity.class);
		// TODO Auto-generated constructor stub
	}

	public void setUp(){
		mSolo=new Solo(getInstrumentation(), getActivity());
	}
	
	public void testText(){
		boolean expected =true;
		System.out.println("mSolo============"+mSolo);
		boolean actual =mSolo.searchText("Hello") &&mSolo.searchText("World");
		assertEquals("The text  have not found", expected, actual);
	}
}

这个测试类的作用是检测主界面里面是否有Hello和World两个文本。

5、测试结果如下

robotium的使用方法(一)_第10张图片

三、使用过程中常见的错误

1.提示java.lang.NoClassDefFoundError: com/jayway/android/robotium/solo/Solo

具体的代码如下

java.lang.NoClassDefFoundError: com/jayway/android/robotium/solo/Solo
at java.lang.Class.getDeclaredFields(Native Method)
at java.lang.Class.getDeclaredFields(Class.java:647)
at android.test.ActivityTestCase.scrubClass(ActivityTestCase.java:63)
at android.test.ActivityInstrumentationTestCase2.tearDown(ActivityInstrumentationTestCase2.java:172)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:545)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1551)
Caused by: java.lang.ClassNotFoundException: com.jayway.android.robotium.solo.Solo
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
... 13 more

大意是没有找到Solo这个类。

解决方法

在HelloTest的工程文件上右键-------Properties---------Java Build Path-----Libraries删掉里面的Android Dependencies和robotium-solo-4.0.jar然后重新导入robotium-solo-4.0.jar。

Order And  Export界面选择select All---OK。

点击工具栏里面的project选项------Clean工程即可。

如下图


robotium的使用方法(一)_第11张图片robotium的使用方法(一)_第12张图片robotium的使用方法(一)_第13张图片

robotium的使用方法(一)_第14张图片

robotium的使用方法(一)_第15张图片

 

robotium的使用方法(一)_第16张图片

 

 2.报空指针提示mSolo为空

这里面需要检查setUp这个方法名的大小写一定要正确,否则会不执行该方法里面的代码的。

本文介绍的是如何使用robotium进行白盒测试,后续的文章中将会介绍如何使用robotium进行黑盒测试。敬请关注。

参考文章:

http://blog.csdn.net/brucezhang0/article/details/7449551

http://code.google.com/p/robotium

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java,android,自动化测试)