前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动化持续集成环境搭建(上):git + maven + jenkins

自动化持续集成环境搭建(上):git + maven + jenkins

作者头像
软测小生
发布2020-02-24 12:26:16
1.7K0
发布2020-02-24 12:26:16
举报
文章被收录于专栏:软测小生软测小生

01

前言

_____

当前,自动化已经是测试必备技能之一了,除了要会设计、开发自动化测试框架,搭建自动化持续集成环境也是必须的,本篇,将演示如何搭建自动化持续集成环境;

因为大多数公司是java项目,所以,我在idea中使用springboot开发了几个简单的mock接口,接口自动化测试框架使用【接口自动化测试实战:https://www.cnblogs.com/uncleyong/p/12016690.html】中实战3的框架,代码仓库我用gitee演示,如果你的是github或者gitlab,也是可以的;

02

思路介绍

_____

想必部分公司的情况是:开发先把代码提交到代码仓库、测试再通过jenkins去拉取对应的分支、然后测试运行自动化测试框架执行测试脚本、最后查看报告。。。

可否开发提交了代码,后续的任务都自动执行呢?当然是可以的,即:(docker版后续更新)

  1、开发提交代码

  2、jenkins自动从代码仓库(gitee)拉取对应分支的代码

  3、自动打包

  4、自动部署

  5、自动从gitee拉取接口自动化测试框架及脚本

  6、自动执行测试脚本

  7、生成测试报告

  8、把报告发布在一个服务下大家通过浏览器访问(也可以发送邮件);

下面就介绍这个流程的具体实现。

03

环境准备

_____

安装jdk、tomcat、jenkins、maven、git

  jdk:https://www.cnblogs.com/uncleyong/p/10732951.html

  tomcat:https://www.cnblogs.com/uncleyong/p/10742650.html

  jenkins:https://www.cnblogs.com/uncleyong/p/10742867.html

  maven:https://www.cnblogs.com/uncleyong/p/10743181.html

  git(务必源码安装git,yum安装的版本低,会出问题):https://www.cnblogs.com/uncleyong/p/10767747.html

jenkins安装插件

安装gitee插件(因为我的代码仓库是gitee)

maven插件和git插件在安装jenkins的时候已经自动安装好了

maven插件

git插件

jenkins全局工具配置

系统管理→全局工具配置

git

maven

jdk

jenkins和gitee通讯方式

这里演示使用https,如果你要使用ssh,需要做配置,即提前将Jenkins所在服务器的key添加到gitee上,配置免密登录

先生成秘钥

把公钥添加到gitee

详细请参考:https://www.cnblogs.com/uncleyong/p/6891958.html

04

jenkins任务创建及配置

_____

输入任务名称、选择【创建一个maven项目】

源码管理选择Git、输入远程仓库地址

远程仓库地址获取方式如下:

点击添加→Jenkins

输入gitee的账号密码

或者提前在下面通过账号密码添加,依次点击【系统】--【全局凭据】

选择类型为用户名和密码、输入你自己gitee的用户名和密码

如果是ssh方式,Private Key填写Jenkins主机的root用户私钥(/root/.ssh/id_rsa),用户是启动tomcat服务的用户,我是用root安装、启动的

选择刚刚添加的认证、选择master分支

构建

创建一个存放jar包的目录

构建成功执行shell脚本

点击【应用】、【保存】

现在没项目服务

【立即构建】

失败了

查看控制台输出

错误信息

解决方案:https://stackoverflow.com/questions/59763531/maven-dependencies-are-failing-with-501-error

上面提示,自2020年1月15日起,中央存储库不再支持通过纯HTTP进行的不安全通信,并且要求对存储库的所有请求都通过HTTPS进行加密。

于是我们在构建过程中所依赖的settings文件中,加入以下配置:

内容

参考:https://www.cnblogs.com/flashfish/p/12202305.html

重新构建,构建成功

放jar包的目录下可以看到已经有jar包,且服务也启动起来了

浏览器访问成功了

05

触发构建项目

_____

上面,是我们手动点击构建后,jenkins去gitee拉取的代码,这一小节,演示触发构建,即开发提交代码后就自动化拉取代码、构建。。。

先把之前的服务停了,jar包删了

点击【配置】

构建触发器,可以看到在Gitee webhook中要填写的url

点击【生成】

生成密码

点击【应用】、【保存】

gitee中配置,在演示的java项目中,【管理】--【WebHooks】--【添加】

填入上面jenkins中的url和密码

上面点击【添加】后,点击下方【测试】

可以看到,jenkins自动构建了

构建成功

服务也启动起来了

浏览器访问成功

下面我们模拟开发提交代码

先把之前的服务停了,jar包删了

我们将部门改为“持续集成部”

add--commit--push代码,另外,git基础请参考:https://www.cnblogs.com/uncleyong/p/10854115.html

代码仓库可以看到更新

jenkins自动构建

服务也启动了

url访问,可以看到部门变成了“持续集成部”

06

持续集成shell脚本优化

_____

现在遗留的问题是,每次需要先手动停止服务、手动删除jar包

我们可以写一个简单的shell脚本

内容如下:

命令中,改为执行这个shell脚本

性别改为“女”

add--commit--push

自动构建成功

日志

服务启动起来了

浏览器请求,性别显示是“女”

下一篇,将集成自动化测试框架,自动运行测试脚本、生成测试报告、发布报告

声明:封面或正文部分图片来源于网络,如有侵权,请联系删除。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软测小生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 思路介绍
  • 环境准备
    • 安装jdk、tomcat、jenkins、maven、git
      • jenkins安装插件
        • jenkins全局工具配置
          • jenkins和gitee通讯方式
          • jenkins任务创建及配置
          • 触发构建项目
          • 持续集成shell脚本优化
          相关产品与服务
          持续集成
          CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档