前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >持续集成实战 —— Jenkins自动化测试环境搭建

持续集成实战 —— Jenkins自动化测试环境搭建

作者头像
Austin_zhai
修改2023-03-05 10:48:42
1.2K0
修改2023-03-05 10:48:42
举报
文章被收录于专栏:测试人的日常测试人的日常

阅读目录

1.目的

在日常的项目测试过程中,搭建与维护测试环境是广大测试同学的一个基础技能,相信也很少会有公司完全不让测试去碰自己的测试环境。那么工作中大量的创建、部署、管理、维护等一系列的重复操作就成为了整个测试项目中一个巨大的工作量。 面对这样一种普遍的情况,Jenkins作为持续集成的良好解决方案就可以很好的解决以上的这些问题。对于一些重复的搭建部署操作都可以通过Jenkins来进行自动化完成,无需任何人工干预,有利于减少重复过程以节省时间、费用和工作量,让测试同学腾出更多的时间与精力来关注并着眼于其他的重要测试环节。

2.说明

1.此笔记的中所使用的操作系统为CentOS7.9,笔记中所涉及的软件版本有可能会因为时间的推移而导致不匹配或其他额外的操作,请大家有针对性的选择阅读与参考。 2.此笔记中的所有操作均基于root用户进行,其他用户如无权限请自行搜索(linux的基础操作这里不展开讨论),友情提示:即使有权限,也千万别在公司相关生产环境内试验探索哦。 3.本次实战中使用的是我们公司相关的业务项目,其中的代码与产品界面会做相关的脱敏操作。

3.项目描述&事前准备

1.文中产品项目为微服务架构,其他无关服务都已被简化省略,仅展示部分模块。 2.原有服务已简化,将服务器独立分为Jenkins服务器与业务服务器,不展示多余集群与节点,只需准备两台服务器即可(真机、虚拟机随意) 3.本文的主题是介绍Jenkins在持续集成中的使用方式,开发环境与所用到的软件版本可以任意指定,功能没有太大的区别,也不会影响使用。(文中使用的软件可以任意替换,任何的技术栈都可以,Jenkins除外)

4.环境介绍

服务器分为两台,Jenkins应用服务器与业务服务器,以下简称J-Server与S-Server。本文使用CentOS,J-Server中安装Jenkins即可,S-Server安装Java、Tomcat、Maven、Git即可。(这里的技术栈可以根据各自公司的业务与产品来进行随意调整,我们的项目内也有很多组合,只选取市面上最常见的来讲解)

5.服务基础配置

5.1 J-Server

服务器内的Jenkins安装与配置请参看之前的文章: 【Jenkins使用手册(1) —— 软件安装】 【Jenkins使用手册(2) —— 软件配置】

5.2 S-Server

业务服务器内的软件安装请自行网络搜索,网上有很多优秀的教程供大家参考。这里需要介绍的是一些重要的配置操作。

1.这里为了方便Git与Server之间进行安全的项目源代码的安全传输操作,我们需要在服务器中进行设置。

在Git安装完之后使用以下命令进行Git的全局配置

代码语言:javascript
复制
git config  --global user.name "你的用户名"
代码语言:javascript
复制
git config  --global user.email "你的邮箱"

使用ssh-keygen命令进行密钥的生成

代码语言:javascript
复制
ssh-keygen -C 邮箱 -t rsa

这里会询问你要创建的密钥的文件名,默认名字的话就直接回车

在这里插入图片描述
在这里插入图片描述

接下来询问是否要为密钥设定密码,默认回车跳过

在这里插入图片描述
在这里插入图片描述

完成之后在用户的主目录中会有一个影藏文件夹.ssh 进入后查看刚才的密钥是否生成正确

后缀名.pbu的是公钥

在这里插入图片描述
在这里插入图片描述

然后我们进入这个公钥文件,将文件里的内容复制出来

2.在GitHub中点击设置,选择SSH and GPG keys

在这里插入图片描述
在这里插入图片描述

创建一个新的SSH key

Title输入你自定义的名字即可 Key输入刚才在公钥中复制的那一串字符 确定添加

在这里插入图片描述
在这里插入图片描述

确认添加成功后Git与SSH密钥配置完成

在这里插入图片描述
在这里插入图片描述

6. Jenkins自动化任务配置与部署

6.1 节点创建

在Jenkins工作台中选择系统管理 > 节点管理

在这里插入图片描述
在这里插入图片描述

选择新建节点

在这里插入图片描述
在这里插入图片描述

节点名称输入你指定的名称即可 如果是全新节点的话可选择固定节点 点击创建

在这里插入图片描述
在这里插入图片描述

远程工作目录指的是S-Server上将执行自动化任务的路径位置

在这里插入图片描述
在这里插入图片描述

启动方式选择Launch agents via SSH 主机填入对应的S-Server的IP 凭证填入对应的S-Server登录用户名和密码(新建凭证看下面的操作) 主机密钥验证策略可以选择Non verifying Verification Strategy

在这里插入图片描述
在这里插入图片描述

没有凭证的话点击添加,选择Jenkins

在这里插入图片描述
在这里插入图片描述

其他选项不动,输入用户名和密码保存即可,之后在Credentials 下拉框里直接选择即可

在这里插入图片描述
在这里插入图片描述

6.2 启动并同步节点

添加完成后点击对应的节点名称,进入节点

在这里插入图片描述
在这里插入图片描述

点击重启代理

在这里插入图片描述
在这里插入图片描述

启动完成后,日志提示启动成功后返回列表查看节点状态,显示同步则表示节点启动成功

在这里插入图片描述
在这里插入图片描述

6.3 自动化任务创建

点击节点后选择新建任务

在这里插入图片描述
在这里插入图片描述

输入自定义的任务名称并选择构建自由风格的软件项目 确定添加

在这里插入图片描述
在这里插入图片描述

6.4 自动化任务配置

描述中输入任务相关的一些说明(非必须),这里还是推荐大家填写一下,很多必备的信息甚至备注都可以放在里面,方便其他测试人员快速的对任务有一个了解。

在这里插入图片描述
在这里插入图片描述

如果每个节点内的环境不是集群或业务有所不同的话还是建议勾上限“制项目的运行节点”的选项,并指定对应的服务节点。

在这里插入图片描述
在这里插入图片描述

在源码管理中选择Git

在这里插入图片描述
在这里插入图片描述

这里在仓库URL中输入项目的源代码下载地址,基于之前已经添加过SSH key了,下载的方式就在Git上选择SSH。在此之前大家记得把自己的项目或产品源代码push至对应的Git仓库并保证S-Sever可以clone代码至本地。 (这里根据自己公司的业务来进行选择,无论是公有仓库还是私有仓库,云还是私有化部署的仓库) 另外如果是第一次在新任务中创建仓库URL,记得在下面多创建一次仓库URL

在这里插入图片描述
在这里插入图片描述

凭证之前已经添加过了,直接选择S-Server的账密记录即可

在这里插入图片描述
在这里插入图片描述

这里选择源代码在Git上所对应的分支,默认为master分支,我的项目源代码在main分支上,这边就输入*/main

在这里插入图片描述
在这里插入图片描述

在扩展行为中选择新增

在这里插入图片描述
在这里插入图片描述

选择“检出到子目录”,英文选项(check out to a sub-directory)

在这里插入图片描述
在这里插入图片描述

输入自己定义的子目录名字即可

在这里插入图片描述
在这里插入图片描述

在构建中选择增加构建步骤,选择执行shell

在这里插入图片描述
在这里插入图片描述

自动化任务的流程示意图

在这里插入图片描述
在这里插入图片描述

基于以上的技术栈,我们执行以下shell命令

方便Jenkins进行后台运行

代码语言:javascript
复制
BUILD_ID=dontkillme

设置两个全局变量,第一个可以返回工作目录所在位置,也就是刚才Jenkins中设置的远程目录;第二个可以返回Tomcat的安装位置,方便后续脚本内的Tomcat相关服务的操作。

代码语言:javascript
复制
export WORK_PATH=`pwd`
export TOMCAT_PATH=`S-Server内的tomcat安装路径`
代码语言:javascript
复制
sh $WORK_PATH/build.sh

6.5 自动化任务运行

点击保存后,点击任务名

在这里插入图片描述
在这里插入图片描述

进入后点击左侧的立即构建

在这里插入图片描述
在这里插入图片描述

点击任务队列中对应的任务

在这里插入图片描述
在这里插入图片描述

选择控制台输出或直接查看状态图标

在这里插入图片描述
在这里插入图片描述

最后显示Finished: SUCCESS 就表示构建成功了

在这里插入图片描述
在这里插入图片描述

至此一个测试环境就通过Jenkins的自动任务构建完成了,大家可以通过对应的服务IP和端口进行访问验证。 以上只是展示了如何通过Jenkins来进行测试环境的快速自动化搭建,后续会对实战中的一些细节来进行讲解。

另:2022/8/10 进行以下通知

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:【腾讯云开发者社区】

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-08-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 阅读目录
  • 1.目的
  • 2.说明
  • 3.项目描述&事前准备
  • 4.环境介绍
  • 5.服务基础配置
    • 5.1 J-Server
      • 5.2 S-Server
      • 6. Jenkins自动化任务配置与部署
        • 6.1 节点创建
          • 6.2 启动并同步节点
            • 6.3 自动化任务创建
              • 6.4 自动化任务配置
                • 6.5 自动化任务运行
                相关产品与服务
                云开发 CloudBase
                云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档