本篇把从 0 开始搭建 Jenkins 的过程分享给大家,希望对小伙伴们有所帮助。
文章目录
- 在 Linux 上安装 Jenkins
- 在 Linux 上安装 Git
- 在 Linux 上安装 Python
- 在 Linux 上安装 Allure
- 配置 Jenkins
- jenkins 赋能 - 使用邮箱发送测试报告
- jenkins 赋能 - 优化测试报告内容
Tips:在搭建过程中,我参考了网上很多资料,在众多虚虚实实的资料中不断地实践,最终搭建成功了。最想分享给各位的一个观点就是,尤其要注意版本依赖问题,Linux 版本、jdk 版本、Jenkins 版本等等,其次就是不同版本的配置文件内容也不一定相同,伙伴们一定要注意。在以下内容中,我也会尽可能的标明我使用的具体版本,希望可以助力有需要的小伙伴们。
在 Linux 上安装 Jenkins
我是在双十一的时候参加阿里云服务器购买活动时买的服务器,相信很多伙伴对这个活动都不陌生,因为微信公众号中很多博主都有做推广,刚好我用在这个地方。我服务器操作系统版本是CentOS 8.2 64 位,并且我使用了宝塔服务器运维面板,后续往服务器上上传安装包会经常用到它。
Jenkins 依赖 Java 环境,所以第一步是安装 jdk。
1.1.下载jdk11,因为最新版 Jenkins 已经不支持 jdk8。jdk 下载链接
我选择的是jdk-11.0.17
1.2.在 Linux 中创建 jdk 安装目录,我习惯把用到的东西安装在/usr/local 下面,方便管理。
# mkdir /usr/local/java
1.3.进入到创建好的 java 目录中,使用宝塔将下载好的 jdk11 上传上去。
1.4.解压压缩包。
# tar -zxvf jdk-11.0.17_linux-x64_bin.tar.gz
1.5.配置环境变量。
1.5.1 编辑 profile 文件。
# vim /etc/profile
追加如下内容:
export JAVA_HOME=/usr/local/java/jdk-11.0.17
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
注意:这里的 CLASSPATH 如果是 jdk11,则写成"export CLASSPATH=$JAVA_HOME/lib",如果是 jdk8,则写成"CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"。
记得保存后退出。:wq
1.5.2 重新加载配置文件 - 是配置立马生效。
# source /etc/profile
1.5.3 验证。
# java -version
第二步,安装 maven
我查找到的资料大部分表示 maven 也是 jenkins 的依赖项,具体原因我不太了解,以后有机会了解后再和大家分享,目前我们就只管安装就好了。
2.1 下载 maven 的 tar.gz 安装包,我选择的是 3.6.3 版本,maven3.6.3 版本下载链接
2.2 创建 maven 目录
# mkdir /usr/local/maven
2.3 将下载后的安装包上传至 maven 目录
2.4 解压缩
# tar -zxvf apache-maven-3.6.3-bin.tar.gz
2.5 配置环境变量
# vim /etc/profile
在文件底部追加如下内容:
export M2_HOME=/usr/local/maven/apache-maven-3.6.3
export PATH=$PATH:$M2_HOME/bin
保存后退出。
2.6 使配置文件生效
# source /etc/profile
2.7 验证是否安装成功
# mvn -v
第三步,安装 Jenkins
3.1 下载 Jenkins 的 rpm 包。jenkins rpm 包下载地址
我选择的是jenkins-2.346-1.1.noarch.rpm 2022-05-03 20:45 87M
3.2 在 Linux 中创建 jenkins 目录
# mkdir /usr/local/jenkins
3.3 进入到创建好的 jenkins 目录中,使用宝塔将下载好的 rpm 包上传上去。
3.4 解压。
# rpm -ivh jenkins-2.346-1.1.noarch.rpm
3.5 配置 jenkins 中的 java 路径。
3.5.1 先查看 java 的绝对路径
# which java
把路径复制一下。
3.5.2 修改/etc/init.d/jenkins 文件 ,配置 jdk 安装路径。
# vim /etc/init.d/jenkins
找到"candidates",将默认的/usr/bin/java 改成刚刚复制的 java 命令的绝对路径。
保存并退出。
3.5.3 修改/etc/sysconfig/jenkins 文件。
将 JENKINS_USER="jenkins"改成 JENKINS_USER="root";
将 JENKINS_PORT="8080"改成 JENKINS_PORT="8772";不必非改成 8772,只要是端口号不冲突就行。
保存并退出。
3.5.4 重新加载配置文件。
# systemctl daemon-reload
3.6 启动 jenkins 服务
# systemctl start jenkins
3.7 查看 jenkins 服务状态
# service jenkins status
如果一切顺利的话,你会看到:
奈何事事怎么都会这么顺利,我在安装 jenkins 时卸载重装了不下 10 次,如果你在启动服务是也遇到了异常,那么你一定需要卸载 jenkins 的命令,然后在仔细的重新安装配置一遍。我为你准备好了 jenkins 卸载命令:
# rpm -e jenkins -- rpm 卸载
# rpm -ql jenkins --检查是否卸载成功
# find / -iname jenkins | xargs -n 1000 rm -rf --彻底删除残留文件
如果一切顺利的话这个时候你用浏览器输入 Linux 的 ip 地址加上刚刚的端口号应该就能访问到 jenkins 的界面了。
如果你像我一样,Linux 服务启动成功了,但是使用浏览器访问不到 jenkins 界面,那你可以考虑下是不是防火墙的问题。
3.8 把端口号加入到防火墙。
根据自己设置的端口号,运行如下命令:
# firewall-cmd --zone=public --add-port=8772/tcp --permanent
# firewall-cmd --reload
如果你像我一样,配置完防火墙后仍然访问不到 jenkins 的界面,那你可以考虑是不是没有配置服务器的安全组。
3.9 配置服务器的安全组。
3.9.1 在阿里云服务器的控制台中,点击"网络与安全"下的"安全组"。
3.9.2 点击安全组列表下的名称。
3.9.3 把自己设置的端口添加在"入方向"下;
这个时候我就能成功访问 jenkins 了,不知道你成功了没,如果你还没成功,那就在留言板描述出你的问题,大家讨论一下吧。
在 Linux 上安装 Git
安装 git 有两种方式,可以使用"yum -y install git"命令在线安装,也可以选择下载安装包离线安装,经过实践后我推荐使用离线安装方式,因为我起初为了方便使用在线安装后,发现后续 jenkins 配置 git 时总是无法连接远程仓库,然后我卸载 git 后选择离线安装,就没有 jenkins 配置 git 出错的问题了。
1.下载 git 的 tar.gz 包。git 的 tar.gz 包的下载地址
我选择的是v2.39.0 版本
2.在服务器/usr/local 下创建 git 目录。
# mkdir /usr/local/git
3.将安装包上传到 git 文件夹。
4.解压缩。
# tar -zxvf git-2.39.0.tar.gz
5.安装依赖(中途出现提示就输入:y)。
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
6.编译源码。
# make prefix=/usr/local/git all
7.安装 git 至/usr/local。
# make prefix=/usr/local/git install
8.配置环境变量。
# vim /etc/profile
在最后添加:export PATH=$PATH:/usr/local/git/bin
9.配置文件立即生效。
# source /etc/profile
10.验证是否安装成功。
# git --version
在 Linux 上安装 Python
1.下载 Python 的.tgz 安装包,Python 的.tgz 安装包链接
我选择的是Python-3.11.1.tgz
2.在 Linux 上创建 Python 文件夹
注意,这不是最终 Python 的安装目录,后续我们会在这个目录下再创建一个 Python 的安装目录,如果迷糊的伙伴请继续往下看。
为了更清楚的展示安装步骤,我将运行命令的所处位置也展示给大家,希望大家不会迷糊。
[root@XyServerHostName ~]# mkdir /usr/local/python
3.进入创建好的文件夹,上传下载好的 Python 安装包
4.解压
[root@XyServerHostName python]# tar -zxvf Python-3.11.1.tgz
解压之后,会在当前目录下 (/usr/local/python) 多出来一个安装包解压后的目录 (/usr/local/python/Python-3.11.1)。
5.创建 Python 的安装目录
[root@XyServerHostName python]# mkdir python3.11.1
6.进入到 Python 安装包解压后的目录,然后正式安装 Python
[root@XyServerHostName ~]# cd /usr/local/python/Python-3.11.1/
[root@XyServerHostName Python-3.11.1]# ./configure --prefix=/usr/local/python/python3.11.1/
注意:--prefix 是指定安装目录,指向刚刚创建的安装目录 python3.11.1
7.编译
[root@XyServerHostName Python-3.11.1]# make && make install
这个过程会等待一段时间,我大概等待了 3 分钟。
8.配置环境变量
[root@XyServerHostName Python-3.11.1]# vim /etc/profile
在最后追加如下内容:
export PYTHON_HOME=/usr/local/python/python3.11.1
export PATH=${PYTHON_HOME}/bin:$PATH
使配置文件生效:
[root@XyServerHostName Python-3.11.1]# source /etc/profile
验证是否安装成功:
[root@XyServerHostName Python-3.11.1]# python3 -V
注意:是大写字母 V
9.修改 Linux 默认的 Python 版本
9.1 查看 Linux 上 Python 的默认版本:
# cd /usr/bin
# ll
9.2 删除软连接
[root@XyServerHostName bin]# rm -rf python
9.3 重新创建软连接
[root@XyServerHostName bin]# ln -s /usr/local/python/python3.11.1/bin/python3.11 /usr/bin/python
9.4 验证
至此在 Linux 上安装 Python 的步骤就演示完了,因为我在安装的时候有点绕,所以这一部分写的就比较啰嗦,希望小伙伴们可以顺利安装。
在 Linux 上安装 Allure
1.下载 allure 的.tgz 安装包。我选择的是 v2.20.1 版本,allure-2.20.1.tgz 下载链接
2.在 Linux 上创建 allure 目录
# mkdir /usr/local/allure
3.进入到 allure 文件夹,上传下载好的安装包
4.解压缩
[root@XyServerHostName allure]# tar -zxvf allure-2.20.1.tgz
5.配置环境变量
[root@XyServerHostName allure]# vim /etc/profile
在文件底部添加:export PATH=$PATH:/usr/local/allure/allure-2.20.1/bin
保存并退出。
6.使配置文件立刻生效
[root@XyServerHostName allure]# source /etc/profile
7.验证是否安装成功
[root@XyServerHostName ~]# allure --version
在 jenkins 上配置工程
到此为止,我们已经成功在 Linux 上安装并配置好了所有配置 jenkins 工程的所需项,接下来就让我们开始配置 jenkins 工程吧。(如下内容并不是一蹴而就的,需要经过几轮配置的调整,这也是我从 0 到 1 搭建的心路历程,相信看完后会对你有所帮助)
1.初次登录并配置 jenkins
使用浏览器拼接 jenkins 地址:ip 地址:jenkins 端口号
首次进入后会有一些基础配置,操作很简单,根据提示一步一步进行就好了,在此我就选三处加以说明:
1.1 首次进入后,根据提示获取密码,将文件内容复制到输入框中点击"继续"。
1.2 可以根据需要创建登录用户,我选择使用 admin 登录。
1.3 在插件管理页面,我选择的是"安装推荐的插件"
2.创建工程
2.1 点击"新建 Item"按钮
2.2 填写工程名称、选择自由主题、点击确定
2.3 工程配置-General-填写描述
2.4 工程配置 - 源码管理 - 源码管理选择 git,填写 git 地址
2.5 工程配置 - 构建触发器
2.6 工程配置 - 构建
完成后点击保存。
3.安装插件
入口:
在"可选插件"tab 页中搜索插件-allure,然后选择插件后点击安装。
安装完所有需要用的插件后手动重启 jenkins 服务。
在端口号后面输入/restart,然后确定即可。
4.配置 jdk、git、allure
入口:
4.1 配置 jdk
4.2 配置 git
注意:如果"Path to Git executable"一栏写错,在工程配置的源码管理里会提示无法连接仓库错误。
(下面这张截图是如果"Path to Git executable"配置错误,在工程配置的源码管理里会提示无法连接仓库错误的错误示范)
4.3 配置 allure
注意:这里的安装目录就是 aller 的安装目录路径,不是 which allure 后显示的路径。
5.配置 allure 报告展示 (小心:这一步有坑)
5.1 回到工程配置,在"构建后操作"中选择"Allure Report"。
5.2 在 Path 一栏写入"./report"。
提示:坑就是这个 Path 的写法,别急,往后看。
6.立即构建,提示:"pytest:command not found"
解决办法:找到 pytest 安装目录所在位置,在 bin 目录下添加 pytest 软链接。
问题解决!
7.再次构建,pytest 执行成功,但提示:"allure-results does not exist"
查看 allure 测试报告,报告也是空的。
再次回到工程配置中的"构建后操作",(有道翻译了一下提示语,英语实在是硬伤呀,看来得背点单词了 。。)
根据提示,path 中需要写入的 allure 报告目录是相对于工作空间的相对路径。
可工作空间又是啥?工作空间在哪呢?后来我发现可以在构建历史的控制台输出中看到。
观察发现,如果工作空间是/var/lib/jenkins/workspace/pytest_requests_allure_v1,那么在工程配置中-"构建后操作"-"Allure Report"中的"Path"一栏直接填写"report"就行了。
注意,不是./report,也不是/var/lib/jenkins/workspace/pytest_requests_allure_v1/report。
将原先"Allure Report"中"Path"填写的"./report"改成"report"。
注意:"Allure Report"中"高级"里面的内容不需要修改。
至于工程配置中"构建"一栏中的命令中的测试报告路径写./report 或者直结写 report,都不影响成功构建。
具体原因不清楚,总之是我实践后得到的结论。
8.再次构建,哇,终于成功了!
(为了方便调试,所以我每次运行只选择了 4 条 case)
以上就是我在服务器的 Linux 操作系统中搭建 jenkins 的一系列过程。文章中你觉着啰嗦的地方就是我当时头最大的地方,写的详细点只希望小伙伴们在实践过程中顺利一些。喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走: