在自动化测试过程中,测试报告最能直观的体现测试的价值,之前一直使用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. [转]php rsa加密解密实例

    转自:http://blog.csdn.net/clh604/article/details/20224735 php服务端与客户端交互.提供开放api时,通常需要对敏感的部分api数据传输进行数据加 ...

  2. 启明星Helpdesk与微信配置说明

    启明星Helpdesk支持微信版,本文将介绍启明星Helpdesk与微信配置的说明.

  3. 用C#进行DirectX开发

    DirectX 9.0 的Manage DirectX部分包括下列九个程序集. Microsoft.DirectX.AudioVideoPlayback.dll Microsoft.DirectX.D ...

  4. 泊松分布E(X^2)

    由于求期望实际就是求平均值,所以E(X^2)=E[X*X]=E[X*X]+E(X)-E(X)=E[X*X+X-X]=E[X(X-1)+X]E[X(X-1)+X]=E[X(X-1)]+E(X)即:和的平 ...

  5. GridViewColumn.CellTemplate

    <GridViewColumn Header="Sig" Width="210"> <GridViewColumn.CellTemplate& ...

  6. [转]PostgreSQL Replication之扩展与BDR

    原文:https://www.cnblogs.com/xmzzp/p/6284300.html postgres 实现master, slave ,且master是多主. -------------- ...

  7. 开源的DirectUI界面库

    1. duilib简介 duilib是一个开源的DirectUI界面库,简洁但是功能强大.而且还是BSD的license,所以即便是在商业上,大家也可以安心使用.现在大家可以从这个网站获取到他们所有的 ...

  8. 比特币 Bitcoin 是什么,我勒个去,哈耶克果然超前——货币的非国有化,容我思量一下【转载+整理】

    原文地址 比特币矿业史(上):故事的开始,CPU 时代 比特币矿业史(中):群众的觉醒 ,GPU 时代 比特币矿业史(下):巨头的诞生 ,ASIC 时代 本文内容 引子 0 序 1 故事的开始 : C ...

  9. C#.NET常见问题(FAQ)-如何不显示窗口的关闭按钮

    如果把ControlBox设置为false,则右上角三个按钮都看不到了   最好的方法是重写窗体的CreateParams方法,如下图所示   更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间 ...

  10. iOS开发技巧 - 使用UISlider来调整值的范围

    (Swift) import UIKit class ViewController: UIViewController { var slider: UISlider! func sliderValue ...