Windows下Android项目搭建Jenkins持续构建+自动化测试

简介:
安装Jenkins + 建立项目
1,  打开http://jenkins-ci.org/, 下载jenkins.war。
2,  Jenkins的安装非常简单,可以直接在命令行中使用java –jar jenkins.war运行,也可以将jenkins.war放在tomcat中去执行。
3,  打开Jenkins的系统管理>系统设置:
a)         在jdk中填入jdk安装地址。
b)         在ant中填入ant安装地址。
c)         在最下面的邮件通知中设置邮箱的smtp地址等信息。设置完成后可以测试是否设置成功。
4,  打开系统管理>插件管理>可选插件,安装如下插件:
a)         ant
b)         Android Emulator Plugin
c)         Jenkins Emma plugin
d)         FindBugs Plug-in
5,  在Eclipse中新建一个Android项目以及测试项目,假设你的项目目录结构如下所示:
/workspace/android-app
/workspace/android-test
安装Apache Ant。
1.         在Eclipse workspace下为Android app项目添加ant,执行:
android update project -p android-app
2.         为测试项目添加ant,执行:
android update test-project -m ../android-app -p android-test
3.         现在app项目中生成了local.properties文件,这个文件应该在版本控制工具中设置为忽略;在test项目中现在生成了ant.properties和local.properties两个文件,这两个文件必须要加入版本控制工具中(SVN)。
4.         在命令行中执行下面的代码看看ant是不是成功运行了:
ant clean debug
5.         开启一个Android模拟器,然后在test工程下执行下面的代码看看测试工程是否可以成功运行:
ant all clean emma debug install test
6.         如果成功的话会在测试工程下生成coverage目录,内含一个名为coverage.html的文件,里面是测试用例的覆盖率等数据。
 
安装Emma
         Emma用于在Jenkins中生成出Ant执行的测试用例的报表,上面我们测试后生成的是html格式的,但是要想在jenkins中生成图形等,则必须生成出xml格式的文件。
1,  打开SDK安装目录,打开tools/ant/build.xml,复制其中名为coverage的target到你的测试项目中的build.xml文件中。
2,  将<html outfile="coverage.html" />节点替换成:
<html outfile="coverage.html" />
<xml outfile="coverage/coverage.xml" />
3,  将<ehco>节点替换成:
<echo>Saving the report file in ${basedir}/coverage/coverage.xml</echo>
4,  再次运行:ant all clean emma debug install test命令后,在coverage文件夹中多了一个coverage.xml 文件的话则成功。
 
安装FindBugs
         FindBugs用来找到你的项目中的bug,目前我还没有使用到它。不过Jenkins官方文档中的步骤将它配置了,所以我们也来做它的配置。
1,  下载FindBugs,将其中lib/findbugs-ant.jar 拷贝到Ant安装目录下的lib文件夹中。
2,  在app工程文件夹下的local.properties文件中加入:findbugs.home=** 其中**为你的findbugs的安装目录。
3,  如果你需要在R.java中查找bug的话则需要在app工程目录下添加一个名为findbugs-exclude.xml的文件,在其中写入下面的代码。
        <?xml version="1.0" encoding="UTF-8"?>
                    <FindBugsFilter>
                                        <Match>
                                                            <Class name="~.*\.R\$.*"/>
                                                            <Bug code="Nm"/>
                                        </Match>
                    </FindBugsFilter>
4,  在app工程目录下的build文件中加入下面的代码。
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
<target name="findbugs">
<mkdir dir="reports" />
         <findbugs home="${findbugs.home}" output="xml" outputFile="reports/findbugs.xml" excludeFilter="findbugs-exclude.xml">
           <auxClasspath path="${android.jar}" />
           <class location="${out.dir}" />
</findbugs>
</target>
5,  执行ant clean compile findbugs 后在app工程目录下生成一个名为reports的文件夹,里面包含了一个名为findbugs.xml的文件。
 
配置jenkins
         Jenkins环境修改:
1,  下载android-junit-report-1.2.6.jar(可以下载更新的版本),将它加入test工程的build path中。
2,  修改test project的AndroidManifest.xml,找到tag "instrumentation" 将属性"android:name" 的值改成 com.zutubi.android.junitreport.JUnitReportTestRunner。
3,  打开test工程下的build.xml,在</run-test-helper>节点后加入下面的代码:<echo>Downloading XML test report...</echo>
<exec executable="${adb}" fail>
<arg line="${adb.device.arg}"/>
<arg value="pull" />
<arg value="/data/data/${tested.manifest.package}/files/junit-report.xml" />
<arg value="junit-report.xml" />
</exec>
4,  找到其中名为test.runner的property节点,将它的值改为:com.zutubi.android.junitreport.JUnitReportTestRunner
 
         配置App工程:
1,  添加一个自由风格任务,选择subversion,将app项目的svn地址填入(第一次使用的时候会要求提供svn账户密码)。
2,  添加一个Invoke Ant构建步骤,在其中的Targets填入clean compile findbugs。
3,  在高级选项中的properties填入下面内容(注意填自己的安装信息):sdk.dir=D:\\WORK\\ENVIROMENT\\ANDROID\\AndroidSDK
findbugs.home=D:\\WORK\\ENVIROMENT\\FingBugs\\ findbugs-2.0.0
4,  构建后选项选择:Publish FindBugs analysis results,然后填入:reports/findbugs.xml。
5,  选择Archive the artifacts,这样可以在每次构建后提供构建出来的apk版本。
6,  勾选E-mail Notification选项,在下面的recipients中填入需要接收构建异常信息的联系人邮件地址。勾选“每次不稳定的构建都发送邮件通知”选项。
配置test工程:
1,  添加自由风格任务,选择subversion,将test项目的svn地址填入。
2,  在Invoke Ant的target中填入:all clean emma debug install test。
3,  在build file中填入build.xml。
4,  在properties中填入sdk.dir=D:\\WORK\\ENVIROMENT\\ANDROID\\AndroidSDK。
5,  勾选Publish JUnit test result report,填入:junit-report.xml。
6,  勾选Record Emma coverage report,填入:coverage/coverage.xml。
7,  勾选E-mail Notification,如app工程配置。
所有配置工作到此结束,现在可以去跑了。
相关文章
|
2月前
|
监控 jenkins 测试技术
自动化测试框架的构建与实践
【10月更文挑战第40天】在软件开发周期中,测试环节扮演着至关重要的角色。本文将引导你了解如何构建一个高效的自动化测试框架,并深入探讨其设计原则、实现方法及维护策略。通过实际代码示例和清晰的步骤说明,我们将一起探索如何确保软件质量,同时提升开发效率。
54 1
|
2月前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
5天前
|
人工智能
LangGraph:构建多代理动态工作流的开源框架,支持人工干预、循环、持久性等复杂工作流自动化
LangGraph 是一个基于图结构的开源框架,专为构建状态化、多代理系统设计,支持循环、持久性和人工干预,适用于复杂的工作流自动化。
35 12
LangGraph:构建多代理动态工作流的开源框架,支持人工干预、循环、持久性等复杂工作流自动化
|
1月前
|
人工智能 自然语言处理 JavaScript
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
Agent-E 是一个基于 AutoGen 代理框架构建的智能自动化系统,专注于浏览器内的自动化操作。它能够执行多种复杂任务,如填写表单、搜索和排序电商产品、定位网页内容等,从而提高在线效率,减少重复劳动。本文将详细介绍 Agent-E 的功能、技术原理以及如何运行该系统。
90 5
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
|
21天前
|
Serverless 决策智能 UED
构建全天候自动化智能导购助手:从部署者的视角审视Multi-Agent架构解决方案
在构建基于多代理系统(Multi-Agent System, MAS)的智能导购助手过程中,作为部署者,我体验到了从初步接触到深入理解再到实际应用的一系列步骤。整个部署过程得到了充分的引导和支持,文档详尽全面,使得部署顺利完成,未遇到明显的报错或异常情况。尽管初次尝试时对某些复杂配置环节需反复确认,但整体流程顺畅。
|
26天前
|
缓存 监控 安全
公司电脑监控软件的 Gradle 构建自动化优势
在数字化办公环境中,公司电脑监控软件面临代码更新频繁、依赖管理和构建复杂等挑战。Gradle 构建自动化工具以其强大的依赖管理、灵活的构建脚本定制及高效的构建缓存与增量构建特性,显著提升了软件开发效率和质量,支持软件的持续更新与优化,满足企业对员工电脑使用情况的监控与管理需求。
35 3
|
1月前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
60 9
|
1月前
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
43 5
|
2月前
|
jenkins 测试技术 持续交付
自动化测试框架的构建与优化:提升软件交付效率的关键####
本文深入探讨了自动化测试框架的核心价值,通过对比传统手工测试方法的局限性,揭示了自动化测试在现代软件开发生命周期中的重要性。不同于常规摘要仅概述内容,本部分强调了自动化测试如何显著提高测试覆盖率、缩短测试周期、降低人力成本,并促进持续集成/持续部署(CI/CD)流程的实施,最终实现软件质量和开发效率的双重飞跃。通过具体案例分析,展示了从零开始构建自动化测试框架的策略与最佳实践,包括选择合适的工具、设计高效的测试用例结构、以及如何进行性能调优等关键步骤。此外,还讨论了在实施过程中可能遇到的挑战及应对策略,为读者提供了一套可操作的优化指南。 ####
|
2月前
|
敏捷开发 监控 测试技术
探索自动化测试框架的构建与优化####
在软件开发周期中,自动化测试扮演着至关重要的角色。本文旨在深入探讨如何构建高效的自动化测试框架,并分享一系列实用策略以提升测试效率和质量。我们将从框架选型、结构设计、工具集成、持续集成/持续部署(CI/CD)、以及最佳实践等多个维度进行阐述,为软件测试人员提供一套系统化的实施指南。 ####

热门文章

最新文章

推荐镜像

更多