Android+Robotium

时间:2023-03-09 07:42:08
Android+Robotium

  因为调动到一个新的部门在这个部门做的一直就是移动产品,所以这段时间会一直不断的研究app的自动化,主要是针对android,这里我采用的是Robotium框架,这个框架比较简单,使用eclipse+robotium包ok了,前提是搭建了android的开发环境。

  自己在刚开始学习时在网上找了很多的资料,可是对一个新手来说比较难上手,不过没办法只有自己慢慢的摸索,经过请教同事、网上搜寻答案后终于有了一定的眉目,下面说一下对新手来说大概的一个方向:

  1、android开发环境的搭建(其实在网上看了很多的资料都一步一步的说怎么配置,个人觉得没有那么麻烦,在请教了开发之后大家可以直接在android的官网上去下载他的一个包,在这个包里面所有东西都有了,直接解压用)

  地址:http://developer.android.com/sdk/index.html  怎么下载就不用说了吧!JDK记的配置  是不是顿时觉得明白了,没有网上说的那么繁琐。

  2、环境搭建好之后要创建一个android的开发环境。这个为什么?说实在的我也不是很清楚,因为我在最开始的时候按照网上说的直接创建一个TestProject可是这样直接报错的。再在这基础上创建TestProject就不会出错了。

  (这里有必要说一下,因为我做的基本都没办法拿到源码所以针对的就是apk测试,在创建TestProject要选择This Project就行)

  3、接下来要引入robotium包,这个不用说了吧,最好在你的工程里面只有android sdk的包和robotium的包,不然容易报错,以前就遇见一个让我困惑很久。

  4、万事俱备只欠东风,现在只需要创建一个TestCase就可以了,不过这里有必要说一下Test名子需要命名为:ActivityInstrumentationTestCase2,因为这个是继承过来的,但是你只是将这个名子取成这个是不行的,在打开case后需要引入这个的,import android.test.ActivityInstrumentationTestCase2;

  5、基础设施弄好之后需要将solo包引入,不然没办法用:import com.jayway.android.robotium.solo.Solo;

使用过程中刚搭建好的环境:

package com.example.eduutest.test;
import junit.framework.TestCase;
//引入包
import com.jayway.android.robotium.solo.Solo;
import android.app.Activity;
import
android.test.ActivityInstrumentationTestCase2;
//测试用例
public class HomeTest extends
ActivityInstrumentationTestCase2 {

public Solo solo;
public
Activity activity;
private static Class<?>
launchActivityClass;
//这里是经过签名后的包名子以及签名文件,我们执行case是根据这个来的
private static String mainActiviy =
"com.eduu.bang.app.SplashActivity";
private static String packageName =
"com.eduu.bang";
//试着启动 
static {
try {
launchActivityClass =
Class.forName(mainActiviy);
} catch (ClassNotFoundException e) {
throw
new RuntimeException(e);
}
}

//这两个都是基础的有什么作用网上很多解释
public HomeTest()
{
super(packageName, launchActivityClass);
}
protected void setUp() throws
Exception {
super.setUp();
this.activity =
this.getActivity();
this.solo = new Solo(getInstrumentation(),
getActivity());
}
protected void tearDown() throws
Exception {
super.tearDown();
}
//下面这个就是我们的TestCase
public void
testRead(){
solo.clickOnText("发现");
}
}