一、为什么搭建这个环境
jenkins作为持续集成的利器使用已经越来越广泛,并且实际的工作场景中存在着无人监守自动化测试以及集群测试的需求,仅仅只靠selenium Webdriver开展UI自动化测试渐渐觉得力不从心,我们需要更加有效地解决方案了。之前看过一些ant+jenkins+testNG环境搭建的博客,觉得对于新手朋友来说,有一些坑没有揭示出来,本文主要面向新手朋友,比较啰嗦,请见谅。
二、环境搭建-step1-ant的安装与环境 变量配置
2.1 ant简介
首先介绍一下ant,ant是一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等,主要以脚本文件形式体现,文件的名称一般是build.xml,文件中一般包含以下内容:
* 任务1:usage 打印本脚本的帮助信息(缺省)
* 任务2:clean <-- init 清空初始化环境
* 任务3:javadoc <-- build <-- init 生成JAVADOC
* 任务4:jar <-- build <-- init 生成JAR
* 任务5:all <-- jar + javadoc <-- build <-- init 完成以上所有任务:jar javadoc
稍后我会贴上xml文件的样本,大家可以直接拷贝后修改使用
2.2 ant的安装与环境变量配置
到哪里下载ant就不赘述了,直接上Apache官网可以下载到,CSDN上也有,下载好之后,傻瓜式安装即可。
安装完毕就需要配置环境变量了:
新建一个系统变量,名称随意,大家开心就行,变量值就是你的ant安装完毕后的文件路径。
接下来在系统变量-path中加入%ANT_HOME%\bin
然后保存这些设置,打开cmd,输入ant -version,如果显示出了版本号,就说明ok-ant配置完成了
ok,ant的配置就到这里了。
2.3 下载并安装jenkins
jenkins的资源网络上也是很多,这边大家直接百度一下下载就好了
安装仍然是傻瓜式安装,直接下一步就可以,安装完毕后,打开浏览器输入127.0.0.1:8080即进入jenkins页面。
我这个是已经安装好的,大家首次安装配置jekins时会有明确的指引,不存在坑,就不赘述安装过程了,接下来是对jekins的一系列配置。首先是配置一下邮件系统,在系统设置中配置,这个不是本文关注的重点,大家可以参考其他博客
邮件配置完之后,把ant的环境变量配置到jenkins中
1,进入
Global Tool Configuration
2.点击新增ant,取消自动安装的勾选
3.把ant的路径填写进去
点击apply保存配置。
接下来进入系统协管理-系统设置-增加全局键值对应:
填好后点击apply和save,这里是个坑,之前看大神写的博客,没提到这一点,在构建的时候提示找不到ant来编译文件,所以这一步必须要做。有意思的是,在构建成功后我删除这个配置,再去构建,依然能够成功,可能是jenkins自身存在的一个BUG吧。
2.4 准备TestNG环境和Build.xml文件:
selenium+testNG的环境搭建这里就不说了。新建一个javaProject:大致的结构如下,关键的地方都圈出来了:这几个文件是必须要有的,记住你新建的这个JavaProject的workspace路径,后续需要用到。
好,一个个讲一下,第一个红圈是你写的testNG测试用例,需要测啥全部扔进来就行
第二个红圈是selenium的组件包,这个想必接触过selenium的朋友都很熟悉了
第三个红圈是build.xml,是实现ant编译的关键文件
第四个是定制你需要测哪几个测试用例的Xml文件,如图
在classname里指定你要执行的testNG测试用例即可,normal是包的名字
好,最后说Build.xml
<?xml version="1.0"?>
<project name="jekinsPratice" default="run" basedir=".">
<echo message="import libs" />
<path id="run.classpath">
<fileset dir="${basedir}/lib">
<include name="testng.jar" />
</fileset>
<fileset dir="${basedir}/lib">
<include name="selenium-java-2.40.0.jar" />
<include name="selenium-server-standalone-2.40.0.jar"/>
</fileset>
<fileset dir="${basedir}/libs">
<include name="*.jar" />
</fileset>
</path>
<taskdef name="testng" classname="org.testng.TestNGAntTask" classpathref="run.classpath" />
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile" depends="clean">
<echo message="mkdir"/>
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes" debug="on">
<classpath refid="run.classpath"/>
</javac>
</target>
<path id="runpath">
<path refid="run.classpath"/>
<pathelement location="build/classes"/>
</path>
<target name="run" depends="compile">
<testng classpathref="runpath" outputDir="test-output">
<xmlfileset dir="${basedir}" includes="test.xml"/>
<jvmarg value="-ea" />
</testng>
</target>
</project>
好,解释一下:
<project name="jekinsPratice" default="run" basedir=".">-----这个是你JavaProject的名字
<fileset dir="${basedir}/lib">
<include name="testng.jar" />
</fileset>
<fileset dir="${basedir}/lib">
<include name="selenium-java-2.40.0.jar" />
<include name="selenium-server-standalone-2.40.0.jar"/>
</fileset>------这几段是指定我们刚刚说过的TestNG的jar包位置,以及两个selenium组件包的位置
<xmlfileset dir="${basedir}" includes="test.xml"/>-----这个是指定要执行哪几个测试用例的xml文件的路径
其他的部分都不用修改可以直接使用。
ok-到这里,TestNG和build.xml的环境就准备好了。
2.5 使用jenkins开始构建
打开jenkins-新建-输入项目名称,选择“构建一个自由风格的软件项目”
在增加构建配置中选择invoke ant
进行以上配置,指定Build.xml的文件路径,注意,ANT_HOME是选择的(因为前面已经配置过了),不是自己输入的。
保存应用配置之后,点击立即构建
可以看到控制台的输出:
OK了。