gitlab+jenkins 持续部署自动化测试
背景:为了减少测试部署时间和减少不必要的重复工作,采用持续集成的方式进行部署,当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 持续部署自动化测试的更多相关文章
- CentOS 7 Gitlab+Jenkins持续集成+自动化部署
基于上次的环境<部署Gitlab+Jenkins持续集成环境> 来实现自动化部署 系统管理–>插件管理–>安装以下插件: Credentials Plugin(默认已经安装) ...
- Jenkins持续部署
Jenkins持续部署 Jenkins提供很好的连续部署和交付的支持.看一下部署任何软件开发的流程,将如下图所示. 连续部署的主要部分,是确保其上面所示的整个过程是自动化的.Jenkins实现所有这些 ...
- Jekens 配置多项目SCM GitLab+Jenkins持续集成环境
参考: 搭建GitLab+Jenkins持续集成环境图文教程 https://blog.csdn.net/ruangong1203/article/details/73065410 Jenkins中配 ...
- Jenkins持续部署-Windows环境持续部署探究1
目录 Jenkins持续部署-Windows环境持续部署探究1 目录 前言 目的 方案流程 技术实现 PowerShell FTP上传插件 环境变量插件 脚本执行 远程调用 升级服务 启动服务 总结 ...
- Jenkins持续部署-自动生成版本号
目录 Jenkins持续部署-自动生成版本号 目录 前言 目的 详细流程 获取SVN Reversion 获取需求号 设置编译前读取版本号 总结 参考文献 Jenkins持续部署-自动生成版本号 目录 ...
- Jenkins持续部署-创建差量更新包
目录 Jenkins持续部署-创建差量更新包 目录 前言 目的 详细流程 生成版本号 获取版本号 创建文件更新清单 压缩 获取上个版本的包 创建差量更新包 读取服务器Json配置 远程创建文件夹目录 ...
- 关于gitlab+jenkins自动部署代码的实现
本人PHP开发者,项目组大多是PHP,少量java项目. 因公司目前服务器和项目的管理比较混乱,与领导商量后,决定尝试 gitlab+jenkins自动化部署(之前用的svn FTP手动部署代码),解 ...
- CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境
持续集成概述及运行流程 : 持续集成概述 :持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中 ,可以频繁的将代码部署集成到主干,并进行自动化测试 开发→代 ...
- Robotium接入到Jenkins持续集成自动化测试
6.3 将测试用例接入到Jenkins 由于我是自己学习的手机自动化测试,没有实际投入到工作中使用,jenkins的接入也没有具体操作,现摘抄一下网页:http://www.tuicool.com/a ...
随机推荐
- CTF-WEB-HCTF 2018 Warmup
题目链接 攻防世界-Warmup 解题思路 [原题复现]HCTF 2018 Warmup(文件包含)
- FL studio系列教程(八):如何打开和新建FL Studio的文件
FL Studio编曲软件中制作和编辑的音乐将存储在FL Studio的项目文件中.我们随时都可以打开这些对项目文件进行二次编辑和修改等等.操作的方法同很多软件都相同,但也有其独特的地方.下面就跟小编 ...
- keras中seq2seq实现
这里只是简单的一个例子 输入序列 目标序列 [13, 28, 18, 7, 9, 5] [18, 28, 13] [29, 44, 38, 15, 26, 22] [38, 44, 29] [27, ...
- yii2 删除数据
直接 model 删除 $model = User::find($id); $model->delete(); 带有条件的删除 $connection ->createCommand() ...
- web服务器是啥
什么是web服务器 参考 https://www.cnblogs.com/zhaoyl/archive/2012/10/10/2718575.html 了解nginx之前,先了解下什么是web服务器吧 ...
- Java基础教程——数组
数组 Java数组:用于存储同一种数据类型的多个数据. Java数组本身是一种数据类型--引用类型. 类(String.Scanner等大写字母开头的类型)也属于引用类型,int.double等基本类 ...
- Django之ModelForm实际操作使用
1.定义model数据库字段如下: class User(models.Model): """ 员工信息表用户.密码.职位.公司名(子.总公司).手机.最后一次登录时间. ...
- GraphicsLab 之 Atmospheric Scattering (二)
作者:i_dovelemon 日期:2020-11-25 主题:Atmospheric Scattering, Volume Scattering, Rayleigh Scattering, Mie ...
- 跟随杠精的视角一起来了解Redis的主从复制
不想弹好吉他的撸铁狗,都不是好的程序猿 虽然说单机的Redis性能很好,也有完备的持久化机制,那如果你的业务体量真的很大,超过了单机能够承载的上限了怎么办?不做任何处理的话Redis挂了怎么办?带着这 ...
- 树莓派自动连接WiFi
使用sudo raspi-config配置好第一个wifi 然后只需要修改一个文件sudo nano /etc/wpa_supplicant/wpa_supplicant.conf 内容如下: ctr ...