Jenkins集成robotframework

持续集成理念

持续集成(CI)是一种实践,可以让团队在持续基础上收到反馈并进行改进,不必等到开发周期后才寻找和修复缺陷。

它的好处有几个方面:

● 快速发现错误:每完成一点更新,就集成到主干代码,可以快速发现错误,定位错误也比较容易。

● 防止分支大幅偏离主干:如果不是经常集成,主干代码又在不断更新,会导致以后集成的难度变大,甚至难以集成。

● 减少重复性的工作:通过自动化的持续集成可以将编译、部署、测试等动作都变成自动化的,无需太多人工干预。

部署job流水线,使得一个应用程序从构建、部署、测试和发布这个过程实现自动化,是现代DevOps理念的核心组成部分。在不同的企业内部,部署流水线的具体实现是不一样的,但基本原理都是相同的。

一般常见流水线:提交代码->静态代码扫描->单元测试->编译打包->自动部署->接口自动化测试->UI自动化测试->发布生产环境->用户验证阶段

  • 部署方式:

      1、触发式构建:用于开发环境部署,开发人员push代码或者合并代码到svn项目的master分支,jenkins就部署代码到对应服务器。

      2、参数化构建:用于测试环境预上线环境部署,开发push代码或者合并代码到svn项目的master分支之后,并不会部署代码,而是需要登录到jenkins的web界面,点击构建按钮,传入对应的参数(比如参数需要构建的tag,需要部署的分支)然后才会部署。

      3、定时构建:用于自动打包,定时构建是在参数化构建的基础上添加的,开发人员可以登录jenkins手动传入tag进行打包,如果不手动打包,那么jenkins就每天凌晨从SVN拉取最新的代码打包。

持续集成基本配置

本环境整体思路部署技术方案:SVN + RF + Jenkins + nginx + cenos7 + Allure

  • 新建节点
  1. 系统管理—>节点管理—>新建节点 
  2. 虚拟机cetnos系统部署是Jenkins平台,采用master主节点管理各子节点,因项目是基于windows环境执行用例,需要在添加子节点windows环境,当然也可添加基于linux环境子节点,视项目运行环境而定。
  3. 添加子节点可以是物理机也可以是虚拟机。
  4. 标签作用根据各子节点对应的标签主机哪台空闲就自动调用哪台主机构建执行

 

新建子节点,平台会有提示下载slave-agent.jnlp到子节点机子,不能可以通过在子节点命令行启动子节点。如下图所示:

这里通过打开JAVA控制面板运行脚本启动,子节点slave-windows会变成在线状态。如下图所示:

  • 新建job

这里选择自由风格软件项目,然后设置job任务名称。

  • 配置General

这里选择丢弃旧的构建,保持构建建天数3天,最大个数3,设置限制运行节点标签为robot,其它更多参数视实际项目及环境而定。

  • 源码管理
  1. 设置SVN版本库路径及账户密码
  2. 其它默认,也可根据实际情况配置其它参数

  • 触发构建器

● 定时构建表示设定的时间点进行自动触发构建

● 轮询SCM表示检测提交代码到SVN并自动触发构建,这里设定每隔5分钟检测SVN状态,只要状态有变化在5分钟后进行触发构建

● 检测SVN状态,需要在主节点Jenkins服务器的SVN版本库修改钩子脚本

● 定时任务触发时间表达式

采用了著名的UNIX任务调度工具CRON所使用的配置方式。用5个字段代表5个不同的时间单位(中间用空格隔开):

分 时 日 月 星期几

举例:

0 2 * * *    表示每天凌晨2点

*/10 * * * *   每隔10分钟一次

45 10 * * 1-5    每周星期一到星期五的10:45分执行

  • 构建

● 演示环境目前未涉及到构建环境,视实际项目和环境而定。

● 项目是基于windows执行自动化用例,这里选择windows批处理命令,也就是构建时候自动下发命令执行自动化用例

● 如项目是基于linux环境运行,需要选择执行shell选项并设置参数

  • 构建后操作

● Path采用相对路径,目录名必须与构建批处理一样目录名

● Robot output设定项目执行后存放的报告路径

● bulid result是指设定阀值

注意:构建后操作输出的结果必须与前图构建的批处理脚本路径要求一致性。

  • 邮件配置

● 这里设置邮件相关参数,可以在此job配置数据,如不设置数据,需使用默认变量的,要在系统管理—>系统配置里面配置好

● 邮件内容样式可以自定义模板,需要使用前端技术编写好

● Attach Build Log:表示接收到邮件含有构建log日志文件

● Attachments:表示接收到邮件含有报告附件文件

这里采用默认方式。

  • 邮件Triggers

● triggers有很多种,我们使用最多的就是success和failure,always表示每次构建都发送邮件

●可以给每个策略选择不同的收件人:
    1、Recipient List :在策略中配置的收件人列表
    2、Developers:发送给检测到的代码修改的开发人员
    3、Requestor:发送给触发这次构建的用户
    4、Clprits:发给引发错误的开发人员

  • 系统管理的邮件全局配置

注意:邮箱的密码必须是授权码,不是邮箱的登录密码。

  • 设置邮件的Triggers

  • 平台展示

  • robotframework报告展示样本

  • Allure报告展示样本

  • 构建后自动发出的邮件接收到的报告样本展示一

  • 构建后自动发出邮件接收到的报告样本展示二

备注:因每个用例执行速度达到毫秒级,所以表格显示的是0分0秒。

 

原文地址:https://www.cnblogs.com/yinjia/p/11920556.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


首先介绍下什么是git和svnGIT(分布式版本控制系统)Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。SVNSVN是Subversion的简
注意点:系统环境:centos7,python,django,svn,jenkins首先安装好svn版本控制服务,svn安装和配置,也可以通过yum进行安装,安装方式如下yum-yinstallsubversionjenkins安装:jenkins安装参考链接开发ide:pycharm创建项目:django-adminstartprojectcmdbjenkins配置源码管理配置:构
  我使用过的版本控制工具有两种:早期的时候使用的是SVN,现在主要使用git,我就我个人的观点,简单的说下两者的区别:1.Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;2.Git下载下来后,在本
用好Git和SVN,轻松驾驭版本管理本文从Git与SVN的对比入手,介绍如何通过Git-SVN开始使用Git,并总结平时工作高频率使用到的Git常用命令。 一、GitvsSVNGit和SVN孰优孰好,每个人有不同的体验。Git是分布式的,SVN是集中式的这是Git和SVN最大的区别。若能掌
01.jenkins安装jenkins网站:https://jenkins.io/安装:资料/jenkins.msi安装完成:自动打开浏览器使用8080端口02.jenkins系统配置修改端口号,不能使用8080打开安装目录jenkins.xml --httpPort=18080重启服务器系统管理/系统设置:配置jdk和ant环境  03.jenkins项目自
软件环境:centos7jdk1.8svn1.9maven3.5tomcat8jenkins2.80 以上软件安装过程省略... tomcat增加一个管理员账号和密码jenkins通过maven命令打好的war包,copy到tomcat中,这要求tomcat开启热部署,说白了就是在tomcat的conf目录下的tomcat-users.xml中增加tomcat的用户密码
第一步:通过yum命令安装svnserve,命令如下:yum-yinstallsubversion此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行若需查看svn安装位置,可以用以下命令:rpm-qlsubversion第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)选择在var路
一、git是什么   1、git二、git和svn的对比     1、git创建分支简单,可以快速创建分支,隔绝自己修改的代码,svn的版本分支     2、git本地就是一个完整独立的分布式的版本库,不需要联网;但是svn需要联网才可以查看    3、git本地包含了完整的日志,svn需要从服
这里碰到svn更新时,提示清理,清理时报错:只需进行以下几个步骤即可解决:(原理即是清除掉svn数据库里的lock记录)1、下载SQLiteManager,svn用的是sqlite数据库,需要一款管理工具。我是在这个地址下载的,破解版(http://www.xue51.com/soft/6213.html#xzdz):①默认安装完成后,点击finish
1、验证是否有安装svn[root@192~]#svnserve--version2、yum安装svn[root@192~]#yuminstall-ysubversion3、创建一个svn的工作目录[root@192~]#mkdir/usr/local/svn4、创建一个测试用的资源仓库[root@192svn]#svnadmincreatetest5、conf目录下
1.SVN版本控制简介版本控制[Revisioncontrol],最初来源于工程设计领域,是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。Subversion就是一款实现版本控制的工具软件,通常也称为版本控制器,简称SVN
一、GitvsSVNGit和SVN孰优孰好,每个人有不同的体验。Git是分布式的,SVN是集中式的这是Git和SVN最大的区别。若能掌握这个概念,两者区别基本搞懂大半。因为Git是分布式的,所以Git支持离线工作,在本地可以进行很多操作,包括接下来将要重磅推出的分支功能。而SVN必须联网才
利用svnadminhotcopy可以实现完全备份,但不能进行增量备份。svnadminhotcopy是将整个库都“热”拷贝一份出来,包括库的钩子脚本、配置文件等;任何时候运行这个脚本都得到一个版本库的安全拷贝,不管是否有其他进程正在使用版本库。优点是:备份过程较快,灾难恢复也很快;如果备份机上已经
1》安装1>下载服务端Setup-subversion.msi文件,下载客户端程序TortoiseSVN.mis文件,下载eclipse插件eclipse_svn_site.zip。2》利用服务端在windows下SVN服务,注意事项:1.cmd必须使用管理员权限打开(创建,开启,停止,删除服务操作都需要管理员权限)2.注册svn服务的命令,参考如下
1、错误描述 org.apache.subversion.javahl.ClientException:Itemisnotwritablesvn:Commitfailed(detailsfollow):svn:Accessdeniedorg.apache.subversion.javahl.ClientException:Itemisnotwritablesvn:Commitfailed(detailsfollow):svn:Accessdeni
问题场景:1记得提交的日志信息中包含openssl,但是不记得这次提交的版本号revesion,是svn初始化后中间的某次提交;2svn环境的操作系统平台为Fedora,即命令行下;而且svnlog的提交记录有12659条;[root@localhostv2.1]#svnlog|grepr|wc-l12659解决办法:step1 查找提交日志
将项目上传到SVN弹出框提示Oneadded/editedTODOitemwasfound.Wouldyouliketoreviewit?然后百度说这样解决:造成这个原因是因为代码里有个自动生成的注释代码块://TODOAuto-generatedmethodstub我们在写方法是自动生成,就有可能自动生成这句话,导致上传SVN时弹出那个
说在前面的话: 从接到任务到完成共用了7天的时间。正常人用不到这个时间。此时的功能表现是:登录本地JenKins对项目进行构建,能够自动从SVN读取最新代码并按照Maven项目构建,构建完成能够自动使用SonarQube分析代码质量,并将构建的War包部署到指定容器中。版权声明:此博客纯手打,个人
javaweb上正式的时候总是会需要更新代码,但是要求不能全量更新代码,只能提供增量更新包,减少不必要的更新。但是呢,自己修改的文件那么多,怎么破,一个个的找出来,新建文件夹,按位置放好,这种做法不是我们这群懒人的方式,我们要的都是一键解决问题。因此有了这个项目。小编整理了一些java进
Oracle12CR2forCentos7背景介绍安装配置这东西吧,真没啥可写的,但是你说不写详细点吧,真的好多学员搞不懂,所以呢,熊熊思前想后,打算把自己从头到尾怎么安装的,完全写一下,希望能让大家有个全面的基础认知准备工作安装Xmanager这个软件功能很强大,熊熊安装他主要是用于把远程服务器的