背景:为了减少测试部署时间和减少不必要的重复工作,采用持续集成的方式进行部署,当gitlab的release (测试)分支有代码变动时,自动拉取代码部署测试环境,并进行接口回归测试

优点:部署自动化,接口执行自动化,报告生成自动化、配置文件平台化

实验产品:***

环境准备:

jenkins \ gitlab \ 质量可视化平台 \ yapi&接口测试执行脚本

思路梳理

设置 执行机  –  节点管理

分支提交代码,自动触发拉取操作   webhook  —  jenkins插件(gitlab hook plugin)

替换配置文件   —   jenkins 插件(Config File Provider )

服务启动  -- 不可普适,需要脚本化定制编写

自动化接口测试 -- shell执行脚本即可

一、实现git提交自动拉取代码

1、jenkins 配置项

(1)新建一个item,自由风格的软件项目

(2)在源码管理下面,设置如下:

(3)构建触发器配置,需要勾选“Build when a change is pushed to GitLab. GitLab webhook URL: http://jenkins.asoco.com.cn/project/test”(tip:只有安装了git hook plugin 插件才有这个选项,不安装是没有这个选项的)

(4)在“构建”中配置如下:

至此 jenkins 配置已全部完成,下面开始 对gitlab 进行配置

2、gitlab配置webhook钩子

-----插入------

gitlab设置中文的方式

-----插入结束-----

(1)在【设置】下选择【集成】,URL 中输入1-(3)中的webhook URL

![](https://img2020.cnblogs.com/blog/1301684/202012/1301684-20201215135723432-488227117.png

点击 【Add webhook】,增加成功后webhooks下会出现新增的钩子

(2)测试钩子是否可用



出现 下面截图,及说明配置完成

(3)接下来验证一下,在gitlab 上提交代码,切换到jenkins 看是否开始构建,并在jenkins执行机下查看是否已有工程代码

二、指定构建执行机

一中的构建如果不指定执行机,会将代码下载至jenkins部署机器上的workspace 空间下,我们不可能将所有工程都在这一台机器上运行,所以要配置各个项目单独的机器

1、进入【系统管理】-【节点管理】,新增一个节点

节点配置如下



时钟同步成功,标识节点已经连接

2、构建任务中配置运行节点,进入刚才的构建工程中

3、测试节点配置是够成功,执行构建

三、关于替换测试环境的配置文件操作

两种方式

1、在执行机上面存放一份配置文件,每次下载之后把新下载的删掉,在通过命令复制过去(不推荐,缺点是每次改的时候需要去执行机上改)

2、使用jenkins 的配置文件功能

在jenkins 下安装插件

(Config File Provider )

下载好了在jenkins 【系统管理】下查找

打开之后选择新增配置文件

选择配置文件的类型,若没有的话,其实可以选自定义文件,点击提交



填写配置文件的名字(这个时候的名字可以跟实际应用时的配置文件名不一致,jenkins调用配置文件覆盖源代码的时候,还会进行更名),配置文件的内容,提交保存

保存成功后,在项目构建配置里构建环境那一栏,勾选provide Configuration files

如此配置保存以后,构建时jenkins就会帮你替换源代码中的配置文件了,可以在构建日志中看到该步骤,需要修改配置文件的时候,也是在jenkins中直接编辑就可以了

gitlab+jenkins 持续部署自动化测试的更多相关文章

  1. CentOS 7 Gitlab+Jenkins持续集成+自动化部署

    基于上次的环境<部署Gitlab+Jenkins持续集成环境> 来实现自动化部署 系统管理–>插件管理–>安装以下插件: Credentials Plugin(默认已经安装) ...

  2. Jenkins持续部署

    Jenkins持续部署 Jenkins提供很好的连续部署和交付的支持.看一下部署任何软件开发的流程,将如下图所示. 连续部署的主要部分,是确保其上面所示的整个过程是自动化的.Jenkins实现所有这些 ...

  3. Jekens 配置多项目SCM GitLab+Jenkins持续集成环境

    参考: 搭建GitLab+Jenkins持续集成环境图文教程 https://blog.csdn.net/ruangong1203/article/details/73065410 Jenkins中配 ...

  4. Jenkins持续部署-Windows环境持续部署探究1

    目录 Jenkins持续部署-Windows环境持续部署探究1 目录 前言 目的 方案流程 技术实现 PowerShell FTP上传插件 环境变量插件 脚本执行 远程调用 升级服务 启动服务 总结 ...

  5. Jenkins持续部署-自动生成版本号

    目录 Jenkins持续部署-自动生成版本号 目录 前言 目的 详细流程 获取SVN Reversion 获取需求号 设置编译前读取版本号 总结 参考文献 Jenkins持续部署-自动生成版本号 目录 ...

  6. Jenkins持续部署-创建差量更新包

    目录 Jenkins持续部署-创建差量更新包 目录 前言 目的 详细流程 生成版本号 获取版本号 创建文件更新清单 压缩 获取上个版本的包 创建差量更新包 读取服务器Json配置 远程创建文件夹目录 ...

  7. 关于gitlab+jenkins自动部署代码的实现

    本人PHP开发者,项目组大多是PHP,少量java项目. 因公司目前服务器和项目的管理比较混乱,与领导商量后,决定尝试 gitlab+jenkins自动化部署(之前用的svn FTP手动部署代码),解 ...

  8. CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境

    持续集成概述及运行流程 : 持续集成概述 :持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中 ,可以频繁的将代码部署集成到主干,并进行自动化测试  开发→代 ...

  9. Robotium接入到Jenkins持续集成自动化测试

    6.3 将测试用例接入到Jenkins 由于我是自己学习的手机自动化测试,没有实际投入到工作中使用,jenkins的接入也没有具体操作,现摘抄一下网页:http://www.tuicool.com/a ...

随机推荐

  1. CTF-WEB-HCTF 2018 Warmup

    题目链接 攻防世界-Warmup 解题思路 [原题复现]HCTF 2018 Warmup(文件包含)

  2. FL studio系列教程(八):如何打开和新建FL Studio的文件

    FL Studio编曲软件中制作和编辑的音乐将存储在FL Studio的项目文件中.我们随时都可以打开这些对项目文件进行二次编辑和修改等等.操作的方法同很多软件都相同,但也有其独特的地方.下面就跟小编 ...

  3. keras中seq2seq实现

    这里只是简单的一个例子 输入序列 目标序列 [13, 28, 18, 7, 9, 5] [18, 28, 13] [29, 44, 38, 15, 26, 22] [38, 44, 29] [27, ...

  4. yii2 删除数据

    直接 model 删除 $model = User::find($id); $model->delete(); 带有条件的删除 $connection ->createCommand() ...

  5. web服务器是啥

    什么是web服务器 参考 https://www.cnblogs.com/zhaoyl/archive/2012/10/10/2718575.html 了解nginx之前,先了解下什么是web服务器吧 ...

  6. Java基础教程——数组

    数组 Java数组:用于存储同一种数据类型的多个数据. Java数组本身是一种数据类型--引用类型. 类(String.Scanner等大写字母开头的类型)也属于引用类型,int.double等基本类 ...

  7. Django之ModelForm实际操作使用

    1.定义model数据库字段如下: class User(models.Model): """ 员工信息表用户.密码.职位.公司名(子.总公司).手机.最后一次登录时间. ...

  8. GraphicsLab 之 Atmospheric Scattering (二)

    作者:i_dovelemon 日期:2020-11-25 主题:Atmospheric Scattering, Volume Scattering, Rayleigh Scattering, Mie ...

  9. 跟随杠精的视角一起来了解Redis的主从复制

    不想弹好吉他的撸铁狗,都不是好的程序猿 虽然说单机的Redis性能很好,也有完备的持久化机制,那如果你的业务体量真的很大,超过了单机能够承载的上限了怎么办?不做任何处理的话Redis挂了怎么办?带着这 ...

  10. 树莓派自动连接WiFi

    使用sudo raspi-config配置好第一个wifi 然后只需要修改一个文件sudo nano /etc/wpa_supplicant/wpa_supplicant.conf 内容如下: ctr ...