背景:为了减少测试部署时间和减少不必要的重复工作,采用持续集成的方式进行部署,当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、测试节点配置是够成功,执行构建
-
如果需要使用执行机上的java 环境,需要配置执行机上的环境路径
-
若不能生效,检查是否全局配置/工具配置中是否选择了自动升级java(若配置了,关掉即可)
三、关于替换测试环境的配置文件操作
两种方式
1、在执行机上面存放一份配置文件,每次下载之后把新下载的删掉,在通过命令复制过去(不推荐,缺点是每次改的时候需要去执行机上改)
2、使用jenkins 的配置文件功能
在jenkins 下安装插件
(Config File Provider )
下载好了在jenkins 【系统管理】下查找
打开之后选择新增配置文件
选择配置文件的类型,若没有的话,其实可以选自定义文件,点击提交
填写配置文件的名字(这个时候的名字可以跟实际应用时的配置文件名不一致,jenkins调用配置文件覆盖源代码的时候,还会进行更名),配置文件的内容,提交保存
保存成功后,在项目构建配置里构建环境那一栏,勾选provide Configuration files
如此配置保存以后,构建时jenkins就会帮你替换源代码中的配置文件了,可以在构建日志中看到该步骤,需要修改配置文件的时候,也是在jenkins中直接编辑就可以了