一、 前置处理:
本文为{ }的后续文章;如果没有准备好可以先去查看我的博客;博客地址为: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
六、 配置代码
在该项目下创建一个包,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.
| |||