通过参考网上的例子和我师父的帮忙,完成下面的操作。。。虽然网上例子很多,但是自己操作还是有好多问题,一点一点来吧,fighting!!!
一.前提准备
1.robotium-solo-5.3.1.jar
2.下载任何一个apk
3.re-sign.jar 用于重新签名
二.重新签名
在没有源码,只有apk的情况下,利用re-sign.jar重新签名获得package name和mianActivity,这一步是非常重要的。
1.打开re-sign.jar,出现如图的提示,去环境变量中配置一下
2.在环境变量中配置ANDROID_HOME,变量值是android sdk的路径
3.再次打开re-sign.jar,成功
4.将被测试的apk直接拖入上图中,弹出保存页面,直接保存,出现下图显示,记住package name 和main activity
三.安装apk
这里注意的是:安装的apk不是你下载的那个apk,而是刚才我们在上面操作中重新签名后产生的新的apk
将新的apk直接拖入模拟器中安装
四.新建android test project
new——android test project ,然后选择this project ,点击next,完成
五.建立junit test case
1.修改AndroidManifest.xml
2.导入jar包
3.实现代码
package com.raipeng.photograph.test; import com.robotium.solo.Solo; import android.app.Activity; import android.test.ActivityInstrumentationTestCase2; @SuppressWarnings("rawtypes") public class Photo extends ActivityInstrumentationTestCase2 { public Solo solo; public Activity activity; private static Class<?> launchActivityClass; //对应re-sign.jar生成出来的信息框里的值 private static String mainActiviy = "com.raipeng.photograph.control.mainfragment.MainActivity"; static { try { launchActivityClass = Class.forName(mainActiviy); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } } @SuppressWarnings("unchecked") public Photo() { super(launchActivityClass); } @Override protected void setUp() throws Exception { //super.setUp(); this.activity = this.getActivity(); solo = new Solo(getInstrumentation(), getActivity()); } public void testLogin(){ solo.unlockScreen(); solo.sleep(5000); solo.clickOnText("婚纱"); } public void tearDown() throws Exception { try { this.solo.finishOpenedActivities(); } catch (Throwable e) { e.printStackTrace(); } this.activity.finish(); super.tearDown(); } }
4.运行时如果老是报错:class not found:com.robotium.solo.Solo
1.build path——order and export中勾选robotium-solo-5.3.1.jar
2.在菜单栏project中点击clean,ok