Robotium基于APK自动化测试,只有APK文件,没有源代码。
Eclipse 默认的debug keystore可以在Windows->Preferences->Android->Build中设置,如下:
去掉APK的签名后,然后为其重新签名。
可通过re-sign.jar,其下载地址如下:
http://recorder.Robotium.com/downloads/re-sign.jar.
双击运行re-sign.jar,将“去哪儿旅行”的APK拖至其上,
若出现错误如下:ERROR:Cannot run program"D:\android-sdk/tools/zipalign":createProcess error=2,the system cannot find the file specified.
解决方法,在Android SDK的platforms文件夹底下选择一个高版本的文件夹,单击进入该文件夹,将该文件夹下的zipalign.exe复制到tools文件夹底下。
成功如下:
2.创建基于APK测试的测试工程
Eclipse中新建Android Test Project,并命名为QunarTest,在select test target 窗口选择“this project”项,
然后新建一个libs文件夹,然后将下载好的jar文件放到该文件夹下,
用鼠标右键单击该jar,依次选择BuildPath->Add To Build Path。
src右击新建包和类,新建一个包com.qunar.test,新建第一个测试类FirstQunarTest,然后编写代码如下:
package com.qunar.test;
import com.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import android.view.View;
@SuppressWarnings("rawtypes")
public class FirstQunarTest extends ActivityInstrumentationTestCase2 {
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.Qunar.NoteActivity";
private static Class<?> LauncherActivityClass;
private static final String TAG = "MyResult";
static {
try {
LauncherActivityClass = Class
.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@SuppressWarnings("unchecked")
public FirstQunarTest() {
super(LauncherActivityClass); }
private Solo solo;
@Override
protected void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
public void testCanOpenSettings() throws InterruptedException {
waitForText("软件更新");
if (solo.searchText("软件更新")) {
View view = solo.getView("com.Qunar:id/btn_download");
solo.clickOnView(view);
}
solo.pressMenuItem(0);
}
private void waitForText(String string) throws InterruptedException {
while (!solo.searchText(string)) {
Thread.sleep(1000);
}
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
}
//插入知识,在编写代码时,可以设置eclipse自动补全,
//最简单的修改方式是:Windows——>Preferences——>Java-->Editor-->Content Asist,
//在Auto activation triggers for Java后面的文本框里只有一个“.”。
//现在你将其改为“.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”即可。
//然后你再试试,会发现,现在的补全功能跟VS差不多了。
//你还可以在Advanced和Favorite里进行高级的设置。
然后将AndroidMainfest.xml以Text Edite 打开,修改package name 和 package,编辑如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.qunar.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.Qunar" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
然后在FirstQunarTest上单击鼠标右键,Run as ->Android JUnit Test,观察结果,自动更新为成功。