Android自动化测试工具插件的Eclipse实现
通过"Window" > "Show View" > "Other" > "Android" > "LogCat"查看详细日志。在Eclipse的"Window" > "Preferences" > "Android"中指定SDK路径。在Eclipse中安装ADT插件是进行Android开发的基础。通过Eclipse的"Help" > "Install New Software"添加ADT更新站点
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可通过以下方式使用:
- 确保Android SDK Tools版本≥24.4.1
- 创建Java项目并添加uiautomator.jar(位于SDK的platforms/android-xx目录)
- 编写测试类继承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时:
- 安装Android Emulator插件
- 创建自由风格项目
- 添加构建步骤:"Invoke Ant"选择包含测试任务的build.xml
- 添加后处理步骤发布JUnit测试报告和Emma覆盖率报告
更多推荐
所有评论(0)