Jenkins+Ant+Android+Robitium 实例详解(打包app,执行Robotium测试,生成测试结果)

来源:互联网 发布:ubuntu如何安装win10 编辑:程序博客网 时间:2024/05/22 09:50

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:

cd D:\Program Files (x86)\Jenkins\jobs\android_jenkins_test1\workspace\cheersApp
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 测试工程目录

注意,这两个目录需要写正确。

<5 >Execute Windows batch command(4)
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 文件;
(2) 由于 这里使用了“android junit report”这个jar包(将robotium的测试结果“junit-report.xml”文件会放在测试设备的“/data/data/com.cheers/files/junit-report.xml”),见 http://zutubi.com/source/projects/android-junit-report/  
(3) 由于“android junit report”需要 在生成的 ant.properties 文件中,加入一行:“test.runner=com.zutubi.android.junitreport.JUnitReportTestRunner” 
所以,这个调用这个 update_ant_properties.jar  是往,ant.properties 文件中,加入一行:“test.runner=com.zutubi.android.junitreport.JUnitReportTestRunner” 
这个可执行的jar源码如下:

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

<7> Execute Windows batch command(6)
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 生成测试结果
注意,Tesp report XMLs这里一定要写相对路径,如: cheersAppTest1/junit-report.xml如果写绝对路径会报错  
测试结果效果,如下图:



至此 Job创建完成,运行Jenkins 的job。

写博文实在是太辛苦了,转载请注明转载地址,多谢~!


0 0
原创粉丝点击