robotium之测试APK环境搭建
一、 前置处理:
本文为{robotium之测试环境准备}的后续文章;如果没有准备好可以先去查看我的博客;博客地址为:http://my.oschina.net/marcello/blog
有了前面的准备我们就开始今天的学习内容:首先下载apk:win9008_innovanepc.apk(再次感谢群成员提供)
二、 APK重签名
因为robotium要求被测应用和测试代码要有一致的签名, 所以我们需要把下载到的apk,通过re-sign.jar来产生debug key的apk,这个重新生成的apk就会跟测试项目签名一致了;如果无re-sign.jar到我上一篇博客中看有下载地址
然后双击打开如图显示

把win9008_innovanepc.apk拖到apk.resigner界面、产生新apk的过程中会弹出一个信息框,记得截下图,因为里面有两个信息我们等会的代码中需要用到

点击保存出现:

为了大家能够亲自实践我把Package 和Main Activity都涂掉了;
点击确定后得到一个debug的apk如图所示

安装win9008_innovanepc_debug.apk到你的手机上,签名的事情就解决了;
三、 创建项目
打开Eclipse,点击File->New一个Android Test Project win9008_innovanepc_test, 然后点击下一步的时候选择This project(因为我们没有应用的源码),然后选择要在哪个android版本上测试步骤如图所示:
1、
2、
3、
4、
完成以上步骤项目就新建起来了接下来我们来配置
四、配置项目
1、 先添加robotium-solo-4.2.jar包;我提供是是4.2网上有最新的应该是5.2还是5.3需要的同学可以去下载,我这边只做教程使用;
项目右键新建一个文件夹、命名为robotium


2、 再把robotium-solo-4.2.jar拉到文件夹下面然后点击
Build path Add to 
Build path

3、 添加junit4;点击项目右键Properties然后找到java Build path 到Libraries页签。点击Add library选择junt,点击确定;再把也签到最后一个,选中所有点击确定;那么jar包就添加完成了;




![]()
五、 配置AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jayway.test"
android:versionCode="2"
android:versionName="1.0">
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name">
<uses-library android:name="android.test.runner" />
</application>
<uses-sdk android:minSdkVersion="10" />
<instrumentation android:targetPackage="这里填写刚刚截图出来的包名 "
android:name="android.test.InstrumentationTestRunner" />
</manifest>
六、 配置代码
在该项目下创建一个包,com.test,在该包下创建LoginTest类,代码如下
package com.test,;
//需要导入的包
import android.app.Activity;
import android.test.ActivityInstrumentationTestCase2;
import com.jayway.android.robotium.solo.Solo;
@SuppressWarnings("rawtypes")
public class LoginTest extends ActivityInstrumentationTestCase2 {
// 定义变量
public Solo solo;
public Activity activity;
private static Class<?> launchActivityClass;
// 对应re-sign.jar生成出来的信息框里的两个值
private static String mainActiviy = "这里填写截图对应的main Activiy ";
private static String packageName = "这里填写刚刚截图出来的包名 ";
static {
try {
launchActivityClass = Class.forName(mainActiviy);
System.out.println(mainActiviy);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@SuppressWarnings("unchecked")
public LoginTest() {
super(packageName, launchActivityClass);
}
@Override
protected void setUp() throws Exception {
super.setUp();
this.activity = this.getActivity();
this.solo = new Solo(getInstrumentation(), getActivity());
}
public void testLoginWithIncorrentUsernameAndPassword() {
要做的操作的内容
}
@Override
public void tearDown() throws Exception {
try {
this.solo.finishOpenedActivities();
} catch (Throwable e) {
e.printStackTrace();
}
this.activity.finish();
super.tearDown();
}
}
七、 个人说明
1. 以上代码可以在我的群中到到对应的包;博客不准留群号需要的可以私聊!
2. 本文仅供学习交流,不得用于学习交流外之任何目的,保留对于侵权行为诉诸法律的权利、转载请注明出处
3.

浙公网安备 33010602011771号