Docker+Jenkins+Allure实现python接口自动化

思考想法:

同本地集成环境pycharm的步骤,照搬到服务器上

python解释器 + 代码 + jdk11 + allure

jdk为Jenkins和Allure所需

最开始认为应该直接在服务器上安装jdk和Jenkins,再安装python等

万一整不好环境,会有很大消耗

故转而使用容器:随用随到/不用既删

思考许久并学习大佬便有以下内容

实现步骤:

1.Dcoekr创建Jenkins容器

2.Jenkins构建任务、拉取代码

3.创建python容器,Jenkins工作空间映射代码到容器执行

4.删除容器

以下为图示:

Docker+Jenkins+Allure实现python接口自动化_第1张图片

 安装Docker可参考这篇文章:

Docker安装教程

 安装Jenkins:

用Docker安装Jenkins

一、处理python镜像和容器

处理镜像,基础镜像可以从dockerhub上拉取

但是项目所需要的库无法安装到基础镜像内

这里采用Dockerfile文件build镜像:通过定义好的文件在不同的系统下都可以达到一样的效果(指生成一样的镜像环境)

拉取python镜像,使用版本为3.9 -

docker pull python:3.9.16-alpine3.17

在xx目录下创建一个practise文件夹,存放Dcokerfile文件(没有结尾) 和 第三方包文件

# 以下为Dockerfile文件内容
FROM python:3.9.16-alpine3.17 
WORKDIR /practise
ADD ./install.txt /practise
RUN pip install -r install.txt
CMD ["python","执行的文件名.py"]

Dockerfile 详解 可阅读 Docker Dockerfile | 菜鸟教程

FROM 构建镜像从哪里来什么名字
(先找本地,本地没有从dockerhub拉取)
WORKDIR 设置工作目录
(目录不存在会自动创建)
ADD

拷贝文件/目录到容器工作目录下

(如果是压缩包会自动进行解压)

RUN 构建镜像时运行的指令
CMD 运行容器执行的shell命令

 install.txt存放依赖包,格式为:

名字 == 版本号 如--> urllib3==1.26.14

可以通过 pip freeze > install.txt进行导出

然后通过 pip -r install install.txt 即可

Dockerfile有了,需要安装依赖包文件也有了,接下来构建镜像

docker build -t [仓库名]:[版本号]  -f[DockerFile文件名] . 

# [仓库名]:[版本号] 可以自定义命名

# DockerFile文件名的D要大写

# 最后面还有一个 .  需要留意

 关于 点 的解释(容易忘记造成构建失败)  -- 引用自菜鸟教程Docker+Jenkins+Allure实现python接口自动化_第2张图片

 构建成功后,通过 docker images 进行查看

二、启动Jenkins容器

启动Jenkins容器

需要在构建任务中,去调用docker生成python容器

所以在run的时候要注意一个点,Jenkins容器内如何调用docker指令

这里使用 docker pull jenkins/jenkins:jdk11 下载Jenkins的镜像

docker run -id --name=jenkins3 -u=root -p 8888:8080 -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock  jenkins/jenkins:jdk11

-u=root                                            # 指定使用root用户,避免权限问题     

-v /usr/bin/docker:/usr/bin/docker   # 将宿主机docker客户端映射到jenkins容器中

-v /var/run/docker.sock:/var/run/docker.sock  jenkins:2.32.2  

# 将docker.sock映射到jenkins容器中,因为docker.sock文件是docker client与docker daemon通讯使用的文件

# 启动容器后,初始化。

下载插件:这里用到俩插件 Git/allure

点击"Manage Jenkins" -->"Manage Plugins"-->"Available plugins" 搜索后下载,会自动安装依赖

Docker+Jenkins+Allure实现python接口自动化_第3张图片

 Docker+Jenkins+Allure实现python接口自动化_第4张图片

三、创建工程project

1.点击 "New Item" --> "新建自由风格项目"名字自定义

2.project内容

General                                         # 写project的描述等

Source Code Management           # 源码从git来

Build Triggers                                # 根据需要构建触发器

Build Environment                         # 设置环境变量

Build Steps                                    # 构建执行的步骤

Post-build Actions                         # 构建后执行的步骤

Docker+Jenkins+Allure实现python接口自动化_第5张图片

 Docker+Jenkins+Allure实现python接口自动化_第6张图片

Docker+Jenkins+Allure实现python接口自动化_第7张图片

 Source Code Management 配置代码来源

设置登录gitee/GitHub的账号密码

默认为主分支

Docker+Jenkins+Allure实现python接口自动化_第8张图片

Docker+Jenkins+Allure实现python接口自动化_第9张图片

Docker+Jenkins+Allure实现python接口自动化_第10张图片

构建步骤:

此时已经执行了Jenkins容器,但是要运行python代码需要执行python容器

docker run --rm -w=$WORKSPACE --volumes-from=jenkins3 python:3.9

--rm                         运行完成后删除容器

-w                            指定工作空间,代码所在位置工作空间

                                /var/jenkins_home/workspace/建立的project名称

$WORKSPACE       为Jenkins的环境变量可在"Manage Jenkins"--"System Information" -- "Environment Variables"找到

--volumes-from         从指定容器装载容器卷

Docker+Jenkins+Allure实现python接口自动化_第11张图片

构建后需要生成图表用到allure

先指定allure版本 "Manage Jenkins" -- "Global Tool Configuration" 找到"Allure Commandline"添加allure

Docker+Jenkins+Allure实现python接口自动化_第12张图片

 回到project中,设置Post-build Actions,构建后执行的步骤,配置完成后点击保存"save"

Docker+Jenkins+Allure实现python接口自动化_第13张图片

 回到project工程,点击"build now"即可

Docker+Jenkins+Allure实现python接口自动化_第14张图片

写在最后:

文章有部分引用,如有冒犯,侵私删除。

写的不好请见谅,欢迎大佬进行指点。

你可能感兴趣的:(jenkins,docker,自动化)