Eclipse中实现Android自动化测试的插件配置

ADT (Android Development Tools) 插件安装 在Eclipse中安装ADT插件是进行Android开发的基础。通过Eclipse的"Help" > "Install New Software"添加ADT更新站点(需根据Android版本选择对应URL),勾选Developer Tools完成安装。

配置Android SDK 下载Android SDK并设置环境变量。在Eclipse的"Window" > "Preferences" > "Android"中指定SDK路径。确保安装所需的Android平台版本和工具,包括Android SDK Tools、Platform-tools和Build-tools。

常用Android自动化测试框架集成

Robotium 框架配置 在测试项目中添加Robotium依赖:

dependencies {
    androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3'
}

创建继承自ActivityInstrumentationTestCase2的测试类,使用Robotium API编写UI测试脚本:

public class LoginTest extends ActivityInstrumentationTestCase2<LoginActivity> {
    private Solo solo;
    public LoginTest() {
        super(LoginActivity.class);
    }
    protected void setUp() throws Exception {
        solo = new Solo(getInstrumentation(), getActivity());
    }
    public void testLoginSuccess() {
        solo.enterText(0, "username");
        solo.enterText(1, "password");
        solo.clickOnButton("Login");
        assertTrue(solo.waitForText("Welcome"));
    }
}

UIAutomator 支持 虽然UIAutomator通常与Android Studio配合更好,但Eclipse可通过以下方式使用:

  1. 确保Android SDK Tools版本≥24.4.1
  2. 创建Java项目并添加uiautomator.jar(位于SDK的platforms/android-xx目录)
  3. 编写测试类继承UiAutomatorTestCase:
public class SettingsTest extends UiAutomatorTestCase {
    public void testWiFiEnable() {
        getUiDevice().pressHome();
        new UiObject(new UiSelector().text("Settings")).click();
        UiObject wifiSwitch = new UiObject(new UiSelector()
            .className("android.widget.Switch").text("Wi‑Fi"));
        wifiSwitch.click();
        assertTrue(wifiSwitch.isChecked());
    }
}

测试执行与报告生成

JUnit 集成 Eclipse内置JUnit支持,可自动识别Android测试用例。右键测试类选择"Run As" > "Android JUnit Test",结果会显示在JUnit视图中。通过"Window" > "Show View" > "Other" > "Android" > "LogCat"查看详细日志。

Emma 代码覆盖率 在project.properties文件中添加:

emma.enabled=true

通过Ant构建脚本生成覆盖率报告:

<target name="emma" depends="clean, install">
    <emma enabled="true">
        <instr instrpath="${out.dir}/classes"
               destdir="${out.dir}/classes-emma"/>
    </emma>
    <exec executable="${adb}" failonerror="true">
        <arg value="shell"/>
        <arg value="am"/>
        <arg value="instrument"/>
        <arg value="-e"/>
        <arg value="coverageFile"/>
        <arg value="/data/data/${tested.package}/coverage.ec"/>
        <arg value="${test.package}/${test.runner}"/>
    </exec>
    <exec executable="${adb}" failonerror="true">
        <arg value="pull"/>
        <arg value="/data/data/${tested.package}/coverage.ec"/>
        <arg value="coverage.ec"/>
    </exec>
    <emma>
        <report sourcepath="${src.dir}"
                metrics="method:70,block:80,line:80">
            <fileset dir="${out.dir}">
                <include name="*.em"/>
            </fileset>
            <coveragefile path="coverage.ec"/>
            <html outfile="coverage.html"/>
        </report>
    </emma>
</target>

持续集成建议

Ant 构建脚本 创建custom_rules.xml文件实现自动化构建和测试:

<target name="run-tests" depends="debug,install">
    <exec executable="${adb}" failonerror="true">
        <arg value="shell"/>
        <arg value="am"/>
        <arg value="instrument"/>
        <arg value="-w"/>
        <arg value="${test.package}/${test.runner}"/>
    </exec>
    <exec executable="${adb}" failonerror="true">
        <arg value="pull"/>
        <arg value="/sdcard/Robotium-Screenshots"/>
        <arg value="test-reports"/>
    </exec>
</target>

Hudson/Jenkins 集成 配置Jenkins Job时:

  1. 安装Android Emulator插件
  2. 创建自由风格项目
  3. 添加构建步骤:"Invoke Ant"选择包含测试任务的build.xml
  4. 添加后处理步骤发布JUnit测试报告和Emma覆盖率报告
Logo

欢迎加入我们的广州开发者社区,与优秀的开发者共同成长!

更多推荐