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

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

1、下载jenkins.war,地址:http://jenkins-ci.org

2、安装JDK,TOMCAT

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

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

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

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

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

重启tomcat

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

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

系统消息:根据自己需要随便写两句即可,登陆后会显示在主界面,这里支持html风格

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

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

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

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

jdk配置,看图就明白了

maven配置,如图

maven项目配置:

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

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

jenkins url:将localhost改为真实ip

剩下部分算是无关紧要的了,全部默认即可,如有特殊需要再进行配置,如源码使用svn管理等等

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

1、返回jenkins首页,单击 new job 链接,进入如下页面

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

maven

以下 我会对紧要的相关字段介绍一下,其他的默认即可

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

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

2、保持构建的最大个数,每个job只会保留最新的5次构建记录,这里需要提醒的是,如果之前有一次构建成功,那么jenkins会永远保留,当然也可以手动删除

如图:

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

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

2、源码管理:这里可以辅助我们做分布式自动化,我们可以把每个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都是表示周日 ,以下有几个简化字符

1、“*” 表示在该字段所有可能出现的值

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

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

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

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

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

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

保存。

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

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

  1. 初次尝试使用jenkins+python+appium构建自动化测试

    初次尝试使用jenkins+python+appium构建自动化测试 因为刚刚尝试使用jenkins+python+appium尝试,只是一个Demo需要很多完善,先记录一下今天的成果,再接再厉 第一 ...

  2. jenkins+maven+svn构建项目,及远程部署war包到tomcat上

    要使用jenkins构建项目,当然要使用jenkins了,我使用的war版本的jenkins jenkins的官网 http://jenkins-ci.org/ 点击latest下载,但是可能因为天朝 ...

  3. Jenkins+maven+SVN构建java项目中遇到的问题及解决

    [ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a g ...

  4. Jenkins持续集成构建自动化测试项目

    1.配置内容安全策略(配置一次): 1.1.构建一个自由风格的软件项目 1.2.Build Triggers:Build when job nodes start 1.3.Build:Execute ...

  5. Spring的AOP开发入门,Spring整合Junit单元测试(基于ASpectJ的XML方式)

    参考自 https://www.cnblogs.com/ltfxy/p/9882430.html 创建web项目,引入jar包 除了基本的6个Spring开发的jar包外,还要引入aop开发相关的四个 ...

  6. maven插件之maven-surefire-plugin,junit单元测试报告和sonar测试覆盖率的整合说明

    POM中配置的如下: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId> ...

  7. 十二 Spring的AOP开发入门,整合Junit单元测试(AspectJ的XML方式)

    创建web项目,引入jar包 引入Spring配置文件

  8. spring整合junit报错

    1.Could not autowire field: private javax.servlet.http.HttpServletRequest 参考:https://www.cnblogs.com ...

  9. Spring Test 整合 JUnit 4 使用总结

    转自:https://blog.csdn.net/hgffhh/article/details/83712924 这两天做Web开发,发现通过spring进行对象管理之后,做测试变得复杂了.因为所有的 ...

随机推荐

  1. spring boot1.5以上版本@ConfigurationProperties取消location注解后的替代方案 cannot resolve method location

    问题 在spring boot(版本1.5.1.RELEASE)项目中,当准备映射自定义的配置文件属性到类中的时候,发现原本的@ConfigurationProperties注解已将location属 ...

  2. Zindex和png

    Z轴在元素设置position为absolute或relative后被激活,起大小由z-index设置,z-index越大,元素位置越靠上.如果多个元素的z-index值相同,那么html标签中后出现 ...

  3. Recover Binary Search Tree leetcode java

    题目: Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without chan ...

  4. RxJava 操作符 on和doOn 线程切换 调度 Schedulers 线程池 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  5. 微信公众平台开发----自定义菜单、消息处理及获取OpenID(C#)

    一.成为开发者 服务器配置 登录微信公众平台官网后,在公众平台后台管理页面 开发者中心页,点击“修改配置”按钮,填写服务器地址(URL).Token和EncodingAESKey,如下图所示: 其中 ...

  6. myeclipse2014 没有maven dependencies

    myeclipse不是非常稳定,总是会出各种各样的漏子.我一直都这样认为,可是又认为比eclipse功能多多了. 这次出现的问题是maven项目被IDE识别了.可是没有出现maven dependen ...

  7. sql 根据另一个表的数据更新当前表

    --update mchk --set shwdjh=dbo.erpzhong.zhongbz--from erpzhong--where mchk.dwmch=erpzhong.matno

  8. windows无法访问vmware搭建好虚拟机linux web服务器

    [前置条件] vmware搭建好虚拟机web服务器 ,但是本机就是无法访问的解决办法. linux虚拟机的网络选择Bridged 桥接到本机网卡. 具体情况如下 : 1.本机能ping通虚拟机 2.虚 ...

  9. ios 内存管理总结

    在ios 中 项目有两个内存管理方式 第一种,arc 方式,编译器编译时,自动给obj 加上 release  实现要求 1. 设置项目 将 Objective-C Automatic Referen ...

  10. VS web.config/app.conifg配置文件自定义类型使用智能感知功能

    大家使用VS编辑web.config或app.config时可以使用智能感知功能的,像下面这样很是方便 当然如果是我们自定义的类型也是可以使用智能感知的,因为智能感知的内容是来自你或其他公司(MS)提 ...