jenkins+maven+junit构建自动化测试,整合junit xml生成直观的测试报告[留存]

在自动化测试过程当中,测试报告最能直观的体现测试的价值,以前一直使用maven+junit来构建个人自动化测试,但这样有几个缺点,一是,不能定时构建自动化任务(也许是我没有找到maven有没有提供这样的方法),二是,不能生成一个直观的测试报告(maven+junit在surefire-reports文件目录下提供两种格式的测试结果集,一种是txt文本格式,第二种是junit的xml格式的,但给我整体感受仍是不够直观),三是,没法完成分布式执行测试,设想一下,若是咱们有成千上百个testcase,咱们将面临一个很是严峻的问题,效率!!!html

 

综合以上三点考虑,我选择了jenkins来解决如今面临的困难,无论以上三种问题在maven+junit中有没有更好的支持,但我能够确认jenkins能够很是简单的完成以上3个目标,先介绍下如何生成直观的测试报告。web

一、下载jenkins.war,地址:http://jenkins-ci.org浏览器

二、安装JDK,TOMCATtomcat

3 、讲下载的jenkins.war直接抛到tomcat的webapps目录下,而后启动tomcatapp

四、在浏览器中输入:http://localhost:8080/jenkins,进入jenkins管理界面webapp

五、在使用jenkins前,须要作些配置,jenkins默认工做目录位于~/.jenkins下,配置下环境变量便可,如:JENKINS_HOME=E:\jenkins,jvm

另外,tomcat默认不支持UTF-8的URI,解决办法是修改server.xml的connector,以下:maven

    <Connector port="8080" protocol="HTTP/1.1"                 connectionTimeout="20000"                 URIEncoding="UTF-8"                redirectPort="8443" />分布式

重启tomcatsvn

进入jenkins 的homepage,进入系统设置页面,这里是jenkins构建任务用的全局范围设置的地方,下面我会一一介绍各个字段的使用,没有介绍到的,不作任何修改,这里主要针对自动化测试使用

主目录:便是以上配置环境变量JENKINS_HOME的值,修改环境变量后,会在此显示

系统消息:根据本身须要随便写两句便可,登录后会显示在主界面,这里支持html风格

执行者数量:jenkins能够同时构建的job个数,最好小于cpu个数,这里默认便可

生成钱等待时间:只上次构建结束后,本次构建的等待时间,默认便可

全局属性,Environment variables环境变量,在这里能够添加名值对,提供给后续建立job使用,使用方法很简单,${变量名}

maven 配置:两项,前者是提供maven repository的settings.xml地址,后者是maven全局settings.xml文件地址

jdk配置,看图就明白了

maven配置,如图

maven项目配置:

一、全局maven_opts,这里能够配置maven的相关参数,如图,我只配置了下maven启动时jvm堆的大小

二、local maven repository:maven本地仓库地址,默认便可,这里我有些疑问,个人电脑中已经将maven本地仓库迁移到其余目录,但这样作jenkins在构建maven job时会自动找到我迁移后的仓库,有知道的朋友麻烦给评论下,顺便留下详细的答案啊!!!! 

jenkins url:将localhost改成真实ip

剩下部分算是可有可无的了,所有默认便可,若有特殊须要再进行配置,如源码使用svn管理等等

到此,jenkins系统环境就配置完毕!接下来就是为jenkins建立一个job,建立job也很简单,不要惧怕里面有不少配置,大部分对于自动化测试默认就足够了,这也证实了jenkins足够强大!

一、返回jenkins首页,单击 new job 连接,进入以下页面

jenkins支持多种构建平台,其中经常使用的就是前两个,咱们这里选择针对maven项目构建,选择第二项,不少状况第一种更为方便,扩展性较强,在这里我说若是构建一个maven2/3项目,首先,给maven起一个有意义的名称,选择第二项(构建一个maven2/3项目),单击ok,进入构建主页,如图

maven

如下 我会对紧要的相关字段介绍一下,其余的默认便可

选择【丢弃旧的构建】,这里主要是为节省磁盘空间而考虑的,由于每次构建后,jenkins都会在jobs目录下为每一个job下载,和建立相关数据,如打包后的jar等

一、保持构建的天数,这里我设置5,表示每一个每次构建后的记录只有5天有效期

二、保持构建的最大个数,每一个job只会保留最新的5次构建记录,这里须要提醒的是,若是以前有一次构建成功,那么jenkins会永远保留,固然也能够手动删除

如图:

一、高级项目选项:顾名思义,这里只有在有特殊需求的状况下才会使用,对于本次测试,默认便可

这里说下前两个字段,安静期主要是对于cvs这样的项目管理工具,它不支持原子性提交,因此为了不每次cvs版本发生变化就触发构建,这里设置一个时间,指定cvs版本发生变化后,等待指定时间后再触发构建;重试次数是以防cvs等遇到其余异常

二、源码管理:这里能够辅助咱们作分布式自动化,咱们能够把每一个slave要执行的脚本放到svn上,每一个slave在构建时依据这里的配置自动check out 对应的脚本,若是源码放在svn上,在此作配置,

repository url:即为源码的url,我使用的是svn协议,个人脚本放在了yanxiuLAN这个项目下

local module directory:这里是相对路径,相对于jenkins的 workspace\jobname,项目的源码会下载到这个目录下.

构建触发器(定时任务),这里既解决开篇我提到的如何定时执行测试任务,如图:

这里着重介绍下build periodically,其余选项对于开发流程较为经常使用

选中build periodically,如图: ,我配置的是每周一 至 周五 早上8点构建任务

对于全部的任务日程表,jenkins采用cron-style语法,包含5个字段,字段之间使用空格隔开,格式以下

MINUTE HOUR DOM MANTH DOW

MINUTE:0-59    HOUR:0-23    DOM:1-31   MONTH:1-12   DOW:0-7 ,其中0,7都是表示周日 ,如下有几个简化字符

一、“*” 表示在该字段全部可能出现的值

二、也可使用连字符“-”定义范围,如在DOW字段上定义1-5,表示周一至周五

三、使用正斜杠符号定义一个跳过一个范围,如在MINUTE字段上定义 */5  表示每五分钟的意思

四、使用逗号分隔一个字段表示一系列有效值,如HOUR 字段定义 12,18 表示12点与18点

 

接下来介绍一下对于测试比较重要的一个配置,如图:

一、Root POM 是你指定构建maven任务的项目根目录,指定pom.xml所在目录,这里能够是相对目录或绝对路径,相对路径即为jenkinsHome\workspace\jobName

二、Goals and options:是你要执行的maven命令,我这里的意思是构建前先清除上次构建产生的target目录(该目录中包含编译后的class文件,生成的项目站点以及打好的包,junit的报告等),而后执行site会从新构建项目生成站点,详见maven

保存。

OK!!!有了以上的配置后,就能成功解决开篇提到的3个问题,so easy,你们多试一下,相信你们会喜欢jenkins的

相关文章
相关标签/搜索