Jenkins+Ant+Android+Robitium 范例详解(打包app,执行Robotium测试,生成测试结果)
Jenkins Ant 打包android app,构建Robotium测试,执行Robotium测试,生成测试结果 实例详解
前言:
众所周知,Jenkins提供了强大持续集成功能,本文主要是使用Jenkins 集成Ant构建、打包Android工程,并执行基于Robotium的Android自动化测试。本例实现了从打包android工程到生成Junit的报告的整个过程。
当然,关于Jenkins+Ant+Android+Robitium应该还有其他方式,所以本文仅提供一种方法,供大家学习参考。
可能产生的疑问:
(1) 用的Android 设备是什么?
本例可以直接运行在已经连接到PC上android手机(必须有root权限)或者已经打开的android 模拟器。这种方案的好处是你直接可以看到测试运行结果。
(2)能否用Jenkins的Android Emulator Plugin插件?
当然可以用Android Emulator Plugin插件。一种是利用已有的 模拟器(Run existing
emulator);另一种是 执行jenkins job会新建Android模拟器(Run emulator with properties)。具体不在这里详解,因为比较简单。
正文:
说明: android project 名称: cheersApp android test project 名称: cheersAppTest1 其他说明:本文很多路径是绝对路径,大家可以改成相对路径 |
建立JenkinsJob
1. 创建自由风格的job 名称:android_jenkins_test1
Source Code Mananagement 选择subversion
说明:svn 取两个project,cheersApp是 android项目的源码,cheersAppTest1是测试的project。
2. Buid 设置部分
<1> Execute Windows batch command (1)
Command:
d:
android update project -p . -n cheersApp -t android-19
说明: build android工程,使用命令:android update project -p . -n cheersApp -t android-19 |
<2> Execute Windows batch command (2)
Command:
cd D:\Program Files (x86)\Jenkins\jobs\android_jenkins_test1\workspace\cheersApp
d:
ant debug
说明: 用 ant 打包生成 debug的android APP:cheersApp-debug.apk |
<3> Install Android package 设置见图
<4> Execute Windows batch command(3)
Command:
cd D:\Program Files (x86)\Jenkins\jobs\android_jenkins_test1\workspace\cheersAppTest1
d:
android update test-project -m "D:\Program Files (x86)\Jenkins\jobs\android_jenkins_test1\workspace\cheersApp" -p "D:\Program Files (x86)\Jenkins\jobs\android_jenkins_test1\workspace\cheersAppTest1"
说明: build android test工程,使用命令:android update test-project -m android工程目录 -p 测试工程目录 注意,这两个目录需要写正确。 |
Command:
java -jar "D:\Program Files (x86)\Jenkins\jobs\android_jenkins_test1\workspace\cheersAppTest1\update_ant_properties.jar" "D:\Program Files (x86)\Jenkins\jobs\android_jenkins_test1\workspace\cheersAppTest1\ant.properties"
说明: (1) Execute Windows batch command(3) 构建完android test 的工程后,会在目录里边生成 ant.properties,build.xml, local.properties 文件; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class UpdateAntProperties { public static void main(String[] args) { // String sFilePath="D:\\Program Files (x86)\\Jenkins\\jobs\\android_jenkins_test1\\workspace\\cheersAppTest1\\ant.properties"; String sFilePath=args[0]; String sAddLineString="test.runner=com.zutubi.android.junitreport.JUnitReportTestRunner"; try{ File file=new File(sFilePath); BufferedWriter out=new BufferedWriter(new FileWriter(file,true)); out.append("\r\n"+sAddLineString); out.flush(); out.close(); }catch(IOException e) { System.out.println("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Update ant.properties failed, please check! "); e.printStackTrace(); } } } |
<6> Execute Windows batch command(5)
Command:
cd D:\Program Files (x86)\Jenkins\jobs\android_jenkins_test1\workspace\cheersAppTest1
d:
ant clean debug install test
说明: 通过ant 执行robotium的自动化测试,测试结果放在设备:/data/data/com.cheers/files/junit-report.xml |
Command:
adb pull /data/data/com.cheers/files/junit-report.xml "D:\Program Files (x86)\Jenkins\jobs\android_jenkins_test1\workspace\cheersAppTest1\junit-report.xml"
说明: 通过adb pull 命令将测试android junit结果 /data/data/com.cheers/files/junit-report.xml 放到 D:\Program Files (x86)\Jenkins\jobs\android_jenkins_test1\workspace\cheersAppTest1\junit-report.xml |
3. Post-build Actions 设置
说明: 通过Jenkins的JUnit Plugin解析结果文件 D:\Program Files (x86)\Jenkins\jobs\android_jenkins_test1\workspace\cheersAppTest1\junit-report.xml 生成测试结果 |
至此 Job创建完成,运行Jenkins 的job。
写博文实在是太辛苦了,转载请注明转载地址,多谢~!