一:选择debug签名工具
1.选择xxx.apk文件到工具re-sign.jar---右击java虚拟机运行。
会产生两个东西一个是xxx-debug.apk文件。还有pagename和Main activity信息(这个信息是我们必须的)
二:新增一个安卓,junit测试工程,因为我们这个里面没有源码,所以记住要选择this project
1.新增完工程后,集成robotium插件
2.编写测试代码
package com.example.webview.test;
import junit.framework.TestCase;
import android.app.Activity;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
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 = "com.yitong.taifung.mbank.android.activity.ManagerActivity";
private static String packageName = "com.yitong.taifung.mbank.android";
static {
try {
launchActivityClass = Class
.forName(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 testLogin() {
//一定时间内等待text出现,否则就出错
// solo.waitForText("Log In", 1, 10000);
//点击text “Log In”
clickCtrlById("btnLoginBank", 400);
//一定时间内等待text出现,否则就出错
solo.sleep(800);
solo.clickOnButton("同意");
enterTextById("edtTxtLoginName","1234", 400);
assertTrue(solo.searchText("Incorrect ID number or password.",true));
}
@Override
public void tearDown() throws Exception {
try {
this.solo.finishOpenedActivities();
} catch (Throwable e) {
e.printStackTrace();
}
this.activity.finish();
super.tearDown();
}
//根据ID来点击
private int clickCtrlById(String s, int t ){
int ctrl;
View v;
if( s == ""){
return -1;
}
ctrl = solo.getCurrentActivity().getResources().getIdentifier(s,"id",packageName);
v = solo.getView(ctrl);
solo.clickOnView(v);
solo.sleep(t);
return 0;
}
//根据ID来输入数值
private int enterTextById(String id, String s, int t ){
int ctrl;
EditText v;
if( s == ""){
return -1;
}
ctrl = solo.getCurrentActivity().getResources().getIdentifier(id,"id",solo.getCurrentActivity().getPackageName());
v = (EditText) solo.getView(ctrl);
solo.enterText(v, s) ;
solo.sleep(t);
return 0;
}
}
3.修改AndrodMainfest.xml文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.webview.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="19" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
【这个地方修改为反签名获取到的包】
android:targetPackage="com.yitong.taifung.mbank.android" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
4.运行测试,查看手机模拟器