在自动化测试过程中,测试报告最能直观的体现测试的价值,之前一直使用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 RestTemplate中几种常见的请求方式GET请求 POST请求 PUT请求 DELETE请求

    Spring RestTemplate中几种常见的请求方式 原文地址: https://blog.csdn.net/u012702547/article/details/77917939   版权声明 ...

  2. 修改VIM恶心的注释自动格式化

    我复制一段代码,里面有// 只有一行,但是复制到vim中就下面全部都有//了.我要取消这个功能 vim ~/.vimrc set nu! "set formatoptions=croql 这 ...

  3. Tomcat访问(access)日志配置

    在tomcat的access中打印出请求的情况可以帮助我们分析问题,通常比较关注的有访问IP.线程号.访问url.返回状态码.访问时间.持续时间. 最近在跟一个图片请求超时的问题,需要在项目的acce ...

  4. Linux Command : top

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程所占用的系统资源,类似于Windows的任务管理器.下面详细介绍它的使用方法.top是一个动态显示过程,即可以通过用户按键来不断刷 ...

  5. ubuntu服务器常见使用技巧及-kill掉后GPU显存不释放进程-

    如何解决python进程被kill掉后GPU显存不释放的问题 1 重新开一个shell,然后输入: ps aux|grep user_name|grep python.所有该用户下的python程序就 ...

  6. [ Laravel 5.5 文档 ] 官方扩展包 —— 全文搜索解决方案:Laravel Scout

    简介 Laravel Scout 为 Eloquent 模型全文搜索实现提供了简单的.基于驱动的解决方案.通过使用模型观察者,Scout 会自动同步更新模型记录的索引. 目前,Scout 通过 Alg ...

  7. 简单实现http proxy server怎么实现?

    原文:https://blog.csdn.net/dolphin98629/article/details/54599850 简单实现http proxy server怎么实现?

  8. 腾讯下载的视频转换为MP4

    第一步:首先找到腾讯视频下载设置中的缓存目录,如下图 打开这个目录,找到最近的,就是刚才你下载的文件夹 打开最近的文件夹,如下图,copy里面的内容到D盘的qlv目录中 第二部:进入D盘的qlv目录, ...

  9. [Algorithm] Print 2-D array in spiral order

    The idea to solve the problem is set five variable, first direction, we need to switch direction aft ...

  10. OpenGL ES 3.0之Fragment buffer objects(FBO)详解(一)

    片段操作图 这篇文章将介绍从写入帧缓冲和读取帧缓冲的方式. Buffers(缓冲) OpenGL ES支持三种缓冲: OpenGL ES •• Color buffer颜色缓冲 •• Depth bu ...