pytest+docker+jenkins+gitlab+allure接口自动化持续集成

一、centos7安装docker

建议先把用户切换成root用户来执行命令,用su命令来切换;
1、查看本机内核:uname -r
在这里插入图片描述2.使用 root 权限更新 yum 包(生产环境中此步操作需慎重,看自己情况,学习的话随便搞)

yum -y update

这个命令不是必须执行的,看个人情况,后面出现不兼容的情况的话就必须update了

注意 
yum -y update:升级所有包同时也升级软件和系统内核; 
yum -y upgrade:只升级所有包,不升级软件和系统内核

3.卸载旧版本(如果之前安装过的话)

yum remove docker  docker-common docker-selinux docker-engine

pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第1张图片
4.安装需要的软件包, yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖

yum install -y yum-utils device-mapper-persistent-data lvm2 

5.更新yum源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述
6.查看版本以及安装

yum list docker-ce --showduplicates | sort -r

pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第2张图片
7.安装docker,可以安装最新版,可以选择指定的版本安装(根据自己来选择)

1)yum -y install docker-ce   安装最新版本的docker,下面不加上-y的意思是找到安装包之后会询问is this ok?,需要手动输入y继续,加上-y之后就不会询问而是自动按选y处理
(2)yum -y install docker-ce-20.10.9-3.el7   安装指定版本

在这里插入图片描述
8.启动/重启/关闭docker

#启动
systemctl start docker 
#重启
systemctl restart docker
#关闭
systemctl stop docker
#验证docker是否启动成功
docker version

二、Docker下安装jenkins

1.下载jenkins镜像(如果没设置docker开机自启动的话,请先启动docker服务先)

docker search jenkins

pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第3张图片
第一个是官方版本,但是已标明废弃了,让用第二个jenkisn/jenkins代替,那我们就用第二个安装,用如下命令下载镜像;中间可能由于网络原因会报错或者中断,一般重新试多几次问题不大的,剩下就是等待安装的时间;

docker pull jenkins/jenkins

pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第4张图片
查看docker拉取的jenkins镜像

docker images

在这里插入图片描述
2.创建jenkins容器
(1)宿主机创建挂载目录,方便拉取/查看文件,以及给这个文件添加权限

mkdir -p /var/jenkins_home
chmod -R 777 /var/jenkins_home

(2)创建容器并启动

docker run -d -uroot -p 80:8080 --name jenkins_rain -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins
 
#  -d 是后台启用jenkins服务
#  -p 是端口映射
#  -v 是数据挂载
#  --name 是为容器命名

pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第5张图片
安装成功,查看创建的jenkins容器

# 查看运行中的容器
docker ps
# 查看全部的容器
docker ps -a

pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第6张图片
3.访问jenkins
查看本机ip地址:ifconfig
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第7张图片
浏览器直接访问:http://192.168.223.134/,因为前面我创建jenkins时用的是80的端口,所以这里我没加端口号,你也可以自定义端口号来创建jenkins,访问格式:ip地址+端口号;
注意:可能会遇到访问失败,有可能是你本机的防火墙打开了

# 关闭防火墙
systenctl stop firewalld

pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第8张图片
获取密码有两种方式:
(1)直接命令

cat /var/jenkins_home/secrets/initialAdminPassword

(2)直接用xftp连接宿主机访问:/var/jenkins_home/secrets/initialAdminPassword(用记事本打开复制即可)
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第9张图片
安装插件,可以选择推荐插件安装,也可以自己选择插件安装(我这里选择后者)
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第10张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第11张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第12张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第13张图片
更改插件下载源,复制这个网址进去:http://mirror.esuni.jp/jenkins/updates/update-center.json
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第14张图片
安装gitlab、allure两个插件,直接搜索,安装过程中可能某些必备的插件会安装失败,我们可以选择手动安装
直接搜索安装插件allure、gitlab
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第15张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第16张图片
插件下载失败,需要手动下载,手动下载插件网址:https://updates.jenkins-ci.org/download/plugins/
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第17张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第18张图片
手动下载例子
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第19张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第20张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第21张图片
下载成功之后,直接去jenkins手动去上传刚刚下载的插件文件
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第22张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第23张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第24张图片
上面就是手动安装的教程,根据jenkins提示去下载对应的插件版本,再去上传文件,最后重启jenkins;

三、jenkins容器安装python3环境

1.先用wget下载最新的python3文件 ,建议先进入存放python3的文件夹里面执行,方便找到下载的路径在哪

wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz

2.下载完成后将下载的文件复制到容器内的/usr/src目录下

docker cp Python-3.9.9.tgz jenkins_rain:usr/src

3.进入容器

docker exec  -it -uroot jenkins_rain bash

4.查看刚刚复制的文件是否在容器/usr/src目录下
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第25张图片
5.查看系统版本,有的系统要固定的命令来安装软件包,这里最好先确认下你本机的系统
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第26张图片
我这里是Debian,可以用 apt-get命令安装软件,按如下命令顺序执行,完成py3的安装

#同步索引,这样才能获取最新的软件包,执行的结果是会更新
# /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引
apt-get update 
 
#升级已安装的软件包
apt-get upgrade
 
#安装依赖包(命令一条一条执行)
apt-get -y install gcc automake autoconf libtool make
apt-get -y install make*
apt-get -y install zlib*
apt-get -y install openssl libssl-dev
 
#切换目录到复制的python3文件所在位置
cd /usr/src 
 
#解压缩python安装包
tar -zxvf Python-3.9.9.tgz 
 
#将解压缩后的Python-3.9.9重命名为py3
mv Python-3.9.9 py3
 
#进入py3目录
cd py3
 
#make编译安装(命令一条一条执行)
./configure --prefix=/usr/src/py3
make
make install
 
#添加软链接
ln -s /usr/src/py3/bin/python3.9 /usr/bin/python3
ln -s /usr/src/py3/bin/pip3.9 /usr/bin/pip3

6.验证python环境和pip3是否安装正常,如下图表示安装完成
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第27张图片

四、jenkins容器安装allure

1.先用wget下载最新的allure文件 ,建议先进入存放allure的文件夹里面执行,方便找到下载的路径在哪

docker cp allure-2.17.3.tgz jenkins_rain:usr/src

3.进入容器

docker exec  -it -uroot jenkins_rain bash

4.查看刚刚复制的文件是否在容器/usr/src目录下
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第28张图片
5.安装allure

#解压缩allure包
 tar -zxvf allure-2.17.3.tgz
 
#重命名
mv allure-2.17.3 allure
 
#设置环境变量
cat >> /root/.bashrc << "EOF" 
export PATH=/usr/src/allure/bin:$PATH 
EOF
 
#更新环境变量
source /root/.bashrc
 
#安装完成

6.验证allure是否安装正常,如下图表示安装完成
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第29张图片

五、jenkins配置与启动项目

1.上面的插件安装完之后,进去jenkins配置jdk、git、allure环境变量,以及配置邮件
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第30张图片
配置JDK,不知道jdk路径的可以用命令 echo $JAVA_HOME 查看
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第31张图片
配置GIT,不知道git路径的,可以用which git查看
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第32张图片
配置ALLURE, alllure的安装目录为jenkins容器下安装allure时的安装目录
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第33张图片
配置邮件
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第34张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第35张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第36张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第37张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第38张图片
配置完点击应用,保存
2.手动更新项目(目前方案没有gitlab,后续采用该方案),大概步骤如下:

#1- 先把项目的自动化脚本文件夹放到--宿主机与容器挂载的目录下
#2- 使用xftp工具,放到--宿主机与容器挂载的目录下,容器下查看下
cd /var/jenkins_nome
ls
#3- jenkins创建工程
#4- 新建任务
#5- 构建一个自由风格的软件项目
#6- 进入工程--点击配置
#7- 选择构建--操作shell 执行pytest 运行脚本
#8- 增加邮件--构建后操作

(1)先把项目的自动化脚本文件夹放到–宿主机与容器挂载的目录下
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第39张图片
(2)jenkins创建工程
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第40张图片
(3)配置工程,在完成系统设置后,还需要给需要构建的项目进行邮件配置。
选择配置构建后操作模块,进入系统配置页面后,点击上方的构建后操作选项,配置内容如下:
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第41张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第42张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第43张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第44张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第45张图片
(4)执行shell命令启动项目
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第46张图片

#!/bin/bash
rm -rf allrue-results
cd Delivery_System/test_case
pytest -sq --alluredir=${WORKSPACE}/allure-results
exit 0

pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第47张图片
点击保存,去工程中点击构建,如下图构建成功,如果构建失败,请查看控制台输出的日志来进行排查
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第48张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第49张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第50张图片
3.jenkins关联git实现自动化流程
(1)docker安装gitlab容器

# 查看gitlab版本
docker search gitlab
# 拉取gitlab镜像文件
docker pull gitlab/gitlab-ce
# 由于是docker镜像运行, 所以我们需要把gitlab的配置, 数据, 日志存到容器外面, 即将其挂载到宿主机。先准备三个目录:
# 切到srv目录
cd /srv 
# 创建gitlab文件夹
mkdir gitlab
# 切换到gitlab文件夹中分别创建config,logs,data三个文件夹
cd gitlab
mkdir config logs data
# 创建gitlab容器
docker run -di -p 443:443 -p 9001:80 -p 8022:22 --hostname 虚拟机的Ip --name mygitlab --restart always -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v
/srv/gitlab/data:/var/opt/gitlab -v /etc/localtime:/etc/localtime:ro --privileged=true gitlab/gitlab-ce

pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第51张图片(2)启动gitlab容器创建项目
输入你电脑ip:9001就可进入gitlab
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第52张图片
root用户的初始密码可以进入容器内查看
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第53张图片
如果要修改root用户的密码,请参考这个链接:修改root用户密码
(3)gitlab关联jenkins
先在gitlab上创建一个项目
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第54张图片
创建完项目之后,本机上传代码到git项目上,具体的方法可以百度下
jenkins新建一个项目,也可以用上面手工更新的那个项目,然后直接关联git即可
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第55张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第56张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第57张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第58张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第59张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第60张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第61张图片
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第62张图片
每一次推送代码到git仓库时,就会自动构建一次,也会有对应的allure报告
pytest+docker+jenkins+gitlab+allure接口自动化持续集成_第63张图片

你可能感兴趣的:(docker,jenkins,pytest)