Robotuim自动化步骤梳理

一、简介 

robotium自动化测试过程 测试case以apk的形式在运行在安装待测应用的设备上,以instrument注入的方式调用待测apk

 待测apk包名(com.calculator)  测试case apk中 AndroidMainFest.xml

<instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="com.calculator" />

二、附上一份case

  

/**
* @author BlackStone
*
*/
public class MainTest extends ActivityInstrumentationTestCase2{

 

/**
* @param activityClass
*/

 


public Solo solo;
public Activity activity;
private static Class launchActivityClass;

private static String mainActivity="com.calculator.Main";
//private static String packageName="com.calculator";

static{
try {
launchActivityClass=Class.forName(mainActivity);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


@SuppressWarnings("unchecked")
public MainTest(){
super(launchActivityClass);
// TODO Auto-generated constructor stub
}

 


/**
* @ClassName: MainTest
* @Description: TODO(这里用一句话描述这个类的作用)
* @date 2017年8月9日 下午12:49:00
*
*/

 

/* (non-Javadoc)
* @see android.test.ActivityInstrumentationTestCase2#setUp()
*/
@Before
protected void setUp() throws Exception {
super.setUp();
this.activity=this.getActivity();
this.solo = new Solo(getInstrumentation(), getActivity());
}

 

/* (non-Javadoc)
* @see android.test.ActivityInstrumentationTestCase2#tearDown()
*/

@Test
public void testDisplayWhiteBox() {

 

float vFirstNumber = 10;

 

float vSecondNumber = 10;

 

float vResult = vFirstNumber * vSecondNumber;

EditText vFirstEditText = (EditText) solo.getView("com.calculator:id/EditText01");
solo.clearEditText(vFirstEditText);

 

solo.enterText(vFirstEditText, String.valueOf(vFirstNumber));

 

// AccessSecondvalue(edit-filed)andputtingSecondNumbervalueinit

 

EditText vSecondEditText = (EditText) solo.getView("com.calculator:id/EditText02");

 

solo.clearEditText(vSecondEditText);

 

solo.enterText(vSecondEditText, String.valueOf(vSecondNumber));

 

// ClickonMultiplybutton

 

solo.clickOnButton("Multiply");

 

assertTrue(solo.searchText(String.valueOf(vResult)));

 

TextView outputField = (TextView) solo.getView("com.calculator:id/TextView01");

 

// Assert to verify result with visible value

 

assertEquals(String.valueOf(vResult), outputField.getText().toString());

 

}

@After
protected void tearDown() throws Exception {
solo.finishOpenedActivities();
super.tearDown();

 

}

 


}

 

 

三、打包用例工程步骤

 

一、打包资源文件 生成R.java

D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/build-tools/19.0.1/aapt.exe p -m -J C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/gen -M C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/AndroidManifest.xml -S C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/res -I D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/platforms/android-19/android.jar


D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/build-tools/19.0.1/aapt.exe p -m -J C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/gen -MC:/Users/ThinkPad/Desktop/AndroidCalculatorTest/AndroidManifest.xml -S C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/res -I D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/platforms/android-19/android.jar


二、处理AIDL文件

javac -encoding utf-8 -target 1.7 -bootclasspath D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/platforms/android-19/android.jar;D:/apache-maven-3.2.3/repo/junit/junit/4.12/junit-4.12.jar;D:/workspace/AndroidCalculatorTest/libs/robotium-solo-5.6.3.jar -d C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/bin C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/src/com/calculator/test/*.java C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/gen/com/calculator/test/R.java

三、编译java文件生成 .class

 

D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/build-tools/19.0.1/dx.bat --dex --output C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/bin/classes.dex C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/bin


四 。打包

aapt package -f -A
C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/assets -S C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/res -I D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/platforms/android-19/android.jar C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/AndroidManifest.xml -F bin/test


jarsigner -verbose -keystore C:/Users/ThinkPad/Desktop/HHH/me.keystore -storepass 123456 -keypass 123456 -signedjar C:/Users/ThinkPad/Desktop/HHH/AndroidCalculator-signed-me.apk C:/Users/ThinkPad/Desktop/HHH/AndroidCalculator.apk me.keystore

jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore C:/Users/ThinkPad/Desktop/HHH/debug.keystore -storepass android -keypass android -signedjar C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/bin/AndroidCalculatorTest-signed.apk C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/bin/AndroidCalculatorTest.apk androiddebugkey

jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore C:/Users/ThinkPad/Desktop/HHH/debug.keystore -storepass android -keypass android -signedjar C:/Users/ThinkPad/Desktop/HHH/AndroidCalculator-resigned.apk C:/Users/ThinkPad/Desktop/HHH/AndroidCalculator-signed-me.apk androiddebugkey

1.去除签名
其实很简单,用WinRAR打开apk,找到META-INF文件夹,删除MANIFEST.MF之外的所有其他文件即可


adb shell pm list instrumentation
adb shell am instrument -w com.calculator.test/android.test.InstrumentationTestRunner

 

posted @ 2018-01-05 16:03  左木右风  阅读(427)  评论(0编辑  收藏  举报