Docker+jenkinsPipeline运行实现python自动化测试(超详细)

一、实现思路

  1. 在 Linux 服务器安装 docker
  2. 创建 jenkins 容器
  3. jenkins 中创建 pipeline 项目
  4. 根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境)
  5. 运行新的 python 容器,执行 jenkins 从仓库中拉下来的自动化项目
  6. 执行完成之后删除容器

二、环境准备

  • Linux 服务器一台(我的是 CentOS7)
    1、有云服务器的同学直接用云服务器2、没有云服务器的同学参考我的博客自己动手安装虚拟机吧
  • 在服务器上正确安装 docker
    1、拉取 jenkins 镜像jenkins/jenkins:alpine2、拉取 python3 镜像docker pull python:3-alpine

同时,我也为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接点击文末小卡片免费领取资料文档

软件测试视频教程观看处:

字节大佬教你逼自己如何在15天内掌握自动化测试(接口自动化/APP自动化/Web自动化/性能测试),内含项目实战

三、创建 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 容器

  1. 浏览器访问 http://192.168.1.66:9999,来到 jenkins 解锁页面
    1、http://192.168.1.66 为 Linux 服务器 IP 地址2、9999 为宿主机映射端口

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第1张图片

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

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第2张图片

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

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第3张图片  

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

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第4张图片

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

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第5张图片

配置实例

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第6张图片

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

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第7张图片

五。 jenkins 安装插件

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

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第8张图片

点 Manage Jenkins 来到如下页面

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第9张图片

点 Manage Plugins 安装插件
1.Git 插件安装

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第10张图片

2、Docker 插件安装

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第11张图片
 

3、HTML Publisher 插件安装

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第12张图片
 

4、安装 Pipeline 插件

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第13张图片 
5、安装完成后重启 jenkins 容器
docker restart jenkins_save01

六。 创建 jenkins 任务

重新登陆 jenkins,点 New Item

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第14张图片

选择创建 Pipeline 项目

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第15张图片

配置构建记录保留规则

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第16张图片

配置 Git 仓库

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第17张图片 添加 Git 凭证

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第18张图片

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第19张图片

配置 Jenkinsfile 路径

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第20张图片

配置完成直接点保存即可

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第21张图片

七。 构建有项目执行环境的 python 镜像

  1. 将项目依赖包导出来到 requirements.txt 文件中,txt 文件名称可以随意写
    pip freeze > requirements.txt
  2. 在宿主机(安装 docker 的机子)上新建一个目录(我的目录在/app),将 requirements.txt 文件复制进去
  3. 在 app 目录下创建 Dockerfile 文件(文件名必须是 Dockerfile,没有后缀)
  4. requirement.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

5.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是我们自动化框架的执行入口文件

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

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

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第22张图片

八、创建 build.sh 文件并放到项目根目录下

  echo "运行容器python执行自动化"
docker run --rm -w=$WORKSPACE --volumes-from=jenkins_save01 python3.9:haili
echo "python执行自动化执行成功"

九、写 Jenkinsfile 文件并将放到项目根目录下

  pipeline{
    //配置执行环境
    agent any
    //配置构建过程
	stages{
		stage('build'){
			steps{
			    echo '开始执行shell脚本'
				sh 'sh build.sh'
			}
		}//stage
	}//stages

   //配置构建后操作
	post{
        always{
          echo 'Pipeline 构建成功'
                   		publishHTML(target:[allowMissing: false,
					 alwaysLinkToLastBuild: true,
					 keepAll: true,
					 reportDir: 'reports',
					 reportFiles: '*.html',
					 reportName: 'My Reports',
					 reportTitles: 'The Report'])
        }
    }//post
}//pipeline

十、提交代码到远程仓库

Git add .

Git commit -am'update'

Git push

十一、构建你 jenkins 任务

点构建

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第23张图片

查看构建日志

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第24张图片

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第25张图片

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第26张图片

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

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第27张图片

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第28张图片  

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

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第29张图片

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第30张图片  

把这个代码放进去执行:System.setProperty("

hudson.model.DirectoryBrowserSupport.CSP","")

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第31张图片

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

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第32张图片

重新构建就可以看到漂亮的测试报告了

Docker+jenkinsPipeline运行实现python自动化测试(超详细)_第33张图片


都看到这了,点个赞再走呗!

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助,有需要的朋友你可以dd我。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近100个G。

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

 

你可能感兴趣的:(python,docker,容器,软件测试,职场和发展,测试用例,自动化测试)