CentOS下Jenkins+allure+pytest+sendEmail
实验环境:腾讯云服务器2C4G(可自备虚拟机1C1G也可以)
整体环境图
Jenkins安装
下载安装包 https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/
此次是下载Jenkins2.346版本,再高的版本就需要升级jdk版本了(文章此处用的jdk8)
安装
1
rpm -ivh jenkins-2.346-1.1.noarch.rpm
修改
1
2
3
4vim /etc/sysconfig/jenkins
# 修改内容
JENKINS_USER="root"
# 端口可以默认8080,看自己启动(默认8080)
1
2
3
4
5
6# 启动
systemctl start jenkins.service
# 关闭
systemctl stop jenkins.service
# 重新启动
systemctl restart jenkins.service关闭防火墙(云服务器即使关闭,也要在安全组内开放此端口比如8080)
1
2
3
4
5# 关闭
systemctl stop firewalld.service
# 永久关闭
systemctl disable firewalld.service
获取初识登录密码访问(推荐插件选项)
获取初始登录密码
1
2cat /var/lib/jenkins/secrets/initialAdminPassword
# 回车即可看到密码安装插件(这里用的是推荐的插件选项)
等待插件安装完毕
创建用户
实例配置不用改动,直接点【保存完成】
开始使用jenkins
管理用户配置设置(设置用户密码)(踩坑记录)
打开系统管理-全局安全配置
安全域改为【Jenkins专有用户数据库】
回到系统管理界面,此时会出现【管理用户】选项,更改admin的密码(建议再改一次)【此处踩坑,之前进入系统时设置的密码,退出重新登录报密码错误,不得已去掉密码登录配置进入界面重新设置密码才解决】可参考https://blog.csdn.net/wx17343624830/article/details/127863975
修改密码保存
以上完毕之后,再次进入【系统管理】-【全局安全配置】-【授权策略】,更改为【登录用户可以做任何事】
保存后会强行进入登录界面,按照之前设置好的密码登录就行
插件安装
进入系统管理-插件管理,在可安装搜索allure和email进行安装
以上插件勾选,选择安装并重启
Python环境
下载安装包(个人推荐3.8.7)https://www.python.org/downloads/
上传服务器指定位置,哥们这边传到/usr/local/python3下面
解压文件
1
tar -zxvf Python-3.8.7.tgz
编译安装
1
2
3
4
5
6# 1. 输入
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
# 2. 进入解压好后的安装包内
./configure --prefix=/usr/local/python3
# 3. 上面完成之后继续输入 make,等待编译好,再输入make install等待安装完成
make && make install配置环境变量
1
2
3
4
5
6
7
8
9
10
11# 1.在安装的文件夹下,进入bin目录,创建python3软连接到系统环境变量中
ln -s /usr/local/python3/bin/python3.8 /usr/local/bin/python3
# 2.再设置pip3链接
ln -s /usr/local/python3/bin/pip3.8 /usr/local/bin/pip3
# 3.配置系统环境变量
vim /etc/profile
# 4.加入变量
export PYTHON_HOME=/usr/local/python3
export PATH=$PYTHON_HOME/bin:$PATH
# 5.使环境生效
source /etc/profile查看是否安装成功
1
2
3# 6.查看版本
python3 -V
# Python 3.8.7
Git环境
下载安装包https://git-scm.com/download/win
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 1. 解压安装包:
tar -zxvf git-2.22.0.tar.gz
# 2.进入解压后的文件夹:
cd git-2.22.0
# 3.安装 需要的依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
# 4.编译git源码:
make prefix=/usr/local/git all
# 5.安装git至/usr/local/git路径
make prefix=/usr/local/git install
# 6.配置环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/git/bin
# 7.使配置文件生效
source /etc/profile
# 8.查看git是版本
git --version
# git version 2.22.0
JDK(java)环境
下载安装包(这里安装的jdk8)https://www.oracle.com/java/technologies/downloads/#java8
新建/usr/java文件夹,将jdk-xx.tar.gz放到该文件夹下,并切换到/usr/java目录下
执行命令tar -zxvf jdk-xx.tar.gz进行解压缩,解压后/usr/java目录下多了jdk xx文件夹
配置环境变量
1
2
3
4
5
6
7
8
9
10# 1. 执行 vim /etc/profile 编辑
# 2. 在 /etc/profile底部加入下面内容
JAVA_HOME=/usr/java/jdk1.8.0_271 # 上面第2步解压出来的文件夹
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
# 3. 配置完成后 执行以下命令,让配置文件生效
source /etc/profile查看是否安装成功
1
2
3
4
5java -version
# 出现版本号如下面,即为成功
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode
Job构建
邮件预先设置
进入系统管理-系统配置,按照下面图片配置
邮件内容模板
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
本邮件由系统自动发出,无需回复!<br/>
各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>
<td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建状态: ${BUILD_STATUS}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>测试报告: <a href="${PROJECT_URL}allure">${PROJECT_URL}allure</a></li>
</ul>
<h4><font color="#0B610B">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>
<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
</td>
</tr>
</table>
</body>
</html>邮件通知配置
最后点击保存
全局工具配置
JDK
这里选择的是机器上面jdk安装的位置()
1
2
3whereis java
# 查看位置 不带bin
# 例如/usr/java/jdk1.8.0_271/bin/java 填入的位置就是/usr/java/jdk1.8.0_271也可以选择自动安装
Git
这里选择的是机器上面git安装的位置
1
2
3whereis git
# 查看位置 带bin下面的git
# /usr/local/git/bin/git也可以选择自动安装
Allure Commandline
这里选择的自动安装,选择版本
创建job
- 首页-新建任务-输入名称-构建自由风格
源码管理配置
URL配置
gitee账号配置
个人用的是账号密码配置(默认类型),【类型】那里有多种配置,有SSH 和私钥配置,方式自己定义能连上就好
配置完以后选择自己配置的账号,一般不报红就算成功了
构建触发器-定时构建
构建
1 |
|
构建后操作
Allure报告
path位置要与构建最后一行的目录 ${WORKSPACE}/路径保持一致
邮件通知
Triggers配置
Attach Build Log 选择 Attach Build Log
如果构建完之后没有收到邮件,将上图中的Send To内的两个选项调换位置重试下就可以(亲测)
运行job
点击名称-进入
日志查看
上图中的构建历史处点击去-控制台输出-查看日志输出(失败或者成功可以查看原因)
邮件查看
查看邮件
报告查看
点击测试报告或者构建历史中查看
———以上是【接口自动化】的——————–
UI自动化
安装Linux版Chrome浏览器
1
2
3
4
5
6
7
8# 1.下载rpm安装包https://www.chromedownloads.net/chrome64linux-stable/
# 2.上传至服务器
# 3. 安装
rpm -ivh google-chrome-stable-xxxxxx.x86_64.rpm
# 4. 如果提示缺少依赖 安装相应依赖(具体可百度)
# 5. 查看是否安装成功 显示google-chrome-stable-xxxx.x86_64 即为成功
rpm -q google-chrome-stable安装相对应的ChromeDriver
1
2
3
4
5
6
7
8# 1.下载驱动 http://chromedriver.storage.googleapis.com/index.html 大版本保持一致即可
# 2.上传服务器 解压
unzip chromedriver_linux64.zip
# 3. 拷贝一份解压出来的chromedriver到/usr/bin 目录下
cp chromedriver /usr/bin/
# 4. 进入/usr/bin 执行
./chromedriver
# 5. 显示 Starting ChromeDriver 110.0.5481.77xxxxx环境成功测试脚本
1
2
3
4
5
6
7
8
9
10
11
12
13from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless') # 使用无头模式执行chrome
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox') # 这个一定要加,不加Chrome启动报错
# 这里chromedriver的路径,写你的对应路径,最方便就是放在同一个路径,也可以配置环境变量。
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("https://www.baidu.com")
print(driver.page_source)
print(driver.title)
driver.quit()创建测试文件
1
2
3
4
5touch test_se.py
vim test_se.py
# 粘贴测试代码
# 运行脚本
python test_se.py出现结果为成功
剩余构建和接口自动化一致(前提上面ui环境准备好)