如何用Docker+jenkins 运行 python 自动化?

1.在 Linux 服务器安装 docker

2.创建 jenkins 容器

3.根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境)

4.运行新的 python 容器,执行 jenkins 从仓库中拉下来的自动化项目

5.执行完成之后删除容器

环境准备

Linux 服务器一台(我的是 CentOS7)

1、有云服务器的同学直接用云服务器

2、没有云服务器的同学参考我的博客自己动手安装虚拟机吧
VMware 安装 Centos7 步骤图解(http://testingpai.com/article/1629981536584)

在服务器上正确安装 docker

1、拉取 jenkins 镜像

jenkins/jenkins:alpine

2、拉取 python3 镜像

docker pull python:3-alpine

创建 jenkins 容器

1、命令
docker run -dit --name=jenkins_save01 -p 9999:8080 -u=root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:alpine

2、参数说明
-i:表示运行容器
-t:表示容器启动后会进入其命令行
-d:守护式方式创建容器在后台运行
–name:容器名称
-p 9999:8080:端口映射,宿主机端口:jenkins 容器端口
-u=root:指定容器用户为 root 用户
-v /var/run/docker.sock:/var/run/docker.sock:将 docker.sock 映射到 jenkins 容器中
docker.sock 文件是 docker client 与 docker daemon 通讯的文件
-v /usr/bin/docker:/usr/bin/docker:将宿主机 docker 客户端映射到 jenkins 容器中

3、运行效果

1、看到返回容器 ID 表示 jenkins 容器创建成功

图片

配置 jenkins 容器

浏览器访问 http://192.168.1.66:9999,来到 jenkins 解锁页面

1、http://192.168.1.66 为 Linux 服务器 IP 地址

2、9999 为宿主机映射端口

图片

在 Linux 服务器执行命令获取管理员密码

1、执行命令:docker logs jenkins_save01

图片

复制密码输入到密码框,点下一步,来到如下页面(中间需要等待一段时间,大概 1 分钟左右,耐心等待)

在这里插入图片描述

取消默认插件勾选,进入下一步

在这里插入图片描述

设置管理员用户名和密码(以后就用这个账号密码登陆你的 jenkins)

在这里插入图片描述

配置实例

在这里插入图片描述

jenkins 初始化完成看到如下界面

图片

jenkins 安装插件

点上一步骤开始使用 jenkins,来到如下界面

在这里插入图片描述

点 Manage Jenkins 来到如下页面

在这里插入图片描述

点 Manage Plugins 安装插件

1、Git 插件安装
在这里插入图片描述

2、Docker 插件安装

在这里插入图片描述

3、HTML Publisher 插件安装

图片
4、安装完成后重启 jenkins 容器

docker restart jenkins_save01

创建 jenkins 任务

重新登陆 jenkins,点 New Item

在这里插入图片描述

创建自由风格的项目

图片

配置 jenkins 任务

配置构建记录保留规则

图片

Git 仓库配置

图片

图片

图片

图片

配置构建后操作

1、添加构建后操作模块

图片

2、配置运行脚本

图片

3、配置 jenkins 中展示的测试报告路径

图片

图片

图片

4、保存项目所有配置

在这里插入图片描述

六、构建有项目执行环境的 python 镜像

将项目依赖包导出来到 requirements.txt 文件中,txt 文件名称可以随意写
pip freeze > requirements.txt

在宿主机(安装 docker 的机子)上新建一个目录(我的目录在/app),将 requirements.txt 文件复制进去

在 app 目录下创建 Dockerfile 文件(文件名必须是 Dockerfile,没有后缀)

requirements.txt 文件内容如下

unittestreport==1.3.2
openpyxl==3.0.7
ddt==1.4.2
pytest==6.2.2
selenium==3.141.0
pymysql==1.0.2
faker==8.1.0
jsonpath==0.82
BeautifulReport==0.1.3
rsa==4.7.2
pytest-html==3.1.1
allure-pytest==2.9.43
requests-toolbelt==0.9.1

Dockerfile 内容以及解释如下

FROM python:3-alpine  #基于python:3-alpine这个基础镜像镜像构建镜像
WORKDIR /app   #切换工作空间目录
ADD ./requirements.txt /app #将python项目依赖包文件添加到镜像
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #安装依赖包
CMD ["python3", "main.py"] #设置容器执行后自动执行的命令,这里main.py是我们自动化框架的执行入口文件

5、在 app 目录下执行镜像构建命令

      docker build -t python3.9:haili .
     -t:镜像名称
     点(.):点表示 Dockerfile 文件所在的目录,我现在在 app 目录下,点表示当前目录

6.构建成功后会看到一个新的镜像(docker images)

在这里插入图片描述

完成 build.sh

build.sh 内容如下

echo "运行容器python执行自动化" #输出日志
#-w=$WORKSPACE:指定workspace
#--volumes-from=jenkins_save01:将jenkins容器中的workspace映射到python容器中,此时jenkins中git拉下来的代码就会被映射进去
docker run --rm -w=$WORKSPACE --volumes-from=jenkins_save01 python3.9:haili
echo "python执行自动化执行成功"

将 build.sh 复制到你的项目根目录下

提交代码到 Git 仓库
Git add .
Git commit -am’update’
Git push

去构建 jenkins 任务

回到 jenkins 首页,找到项目点构建

在这里插入图片描述

查看构建过程

在这里插入图片描述

点构建记录

在这里插入图片描述

查看构建过程(python 自动化项目的输出日志也在这里可以看到)

在这里插入图片描述

构建过程如下图

在这里插入图片描述

查看测试报告

图片

此时的测试报告会没有样式,因为被 Jenkins 禁用了 CSS 样式,需要我们手动解决

在这里插入图片描述

解决测试报告没有样式的问题

图片

图片

把这个代码放进去执行:System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”,“”)

图片

执行成功返回是空,说明没问题

图片

重新构建可以看到有样式的测试报告

在这里插入图片描述

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DockerJenkins和GitLab都是用于实现高效部署和管理应用程序的开源工具。 首先,Docker是一种容器化技术,它可以将应用程序及其依赖打包成一个独立的运行环境,被称为容器。通过Docker,我们可以轻松地将Python应用程序及其相关依赖包装成一个镜像,然后在任何支持Docker的环境中进行部署。使用Docker进行Python应用程序的部署可以避免环境配置和依赖安装的问题,确保应用程序在不同的环境中的一致性。 其次,Jenkins是一种持续集成和持续交付工具,它可以自动化构建、测试和部署应用程序。在Jenkins中,我们可以配置一个针对Python应用程序的构建和部署流水线。例如,我们可以设置Jenkins在每次代码提交到GitLab时自动触发构建,然后运行单元测试,最后将应用程序部署到Docker容器中。 最后,GitLab是一个Git仓库管理系统,可以帮助团队进行代码版本控制和协作开发。我们可以使用GitLab作为代码仓库,将Python应用程序的源代码存储在其中,并结合Jenkins进行自动化构建和部署。GitLab的特点是具有良好的代码管理和协作功能,可以方便地进行多人开发和代码版本控制。 综上所述,使用DockerJenkins和GitLab可以实现Python应用程序的自动化部署和持续交付。通过将应用程序打包成Docker镜像,结合Jenkins的构建和部署流水线,以及GitLab的代码管理和协作功能,可以大大简化部署过程和团队合作,并提高开发和发布的效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值