一、实现思路
  1. 在 Linux 服务器安装 docker
  2. 创建 jenkins 容器
  3. 根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境)
  4. 运行新的 python 容器,执行 jenkins 从仓库中拉下来的自动化项目
  5. 执行完成之后删除容器
二、 环境准备
  1. Linux 服务器一台(我的是 CentOS7)
    1、有云服务器的同学直接用云服务器
  2. 在服务器上正确安装 docker
    1、拉取 jenkins 镜像
    jenkins/jenkins:alpine
    2、拉取 python3 镜像
    docker pull python:3-alpine
三、创建 jenkins 容器
  1. 命令
    docker run -dit --name=jenkins_dxl -p 1111: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 1111: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.x.xx:1111,来到 jenkins 解锁页面
    1、http://192.168.x.xx为自己安装docker的linux环境ip地址
    2、1111为宿主机映射端

    2.在 Linux 服务器执行命令获取管理员密码
            1、执行命令:docker logs jenkins_dxl

      

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

    

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

    

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

    

  6.配置实例

    

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

    

五、 jenkins 安装插件
  1. 点上一步骤开始使用 jenkins,来到如下界面

  2. 点 Manage Jenkins 来到如下页面

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

  

  2、Docker 插件安装

  

  3、HTML Publisher 插件安装

    

  4、安装完成后重启 jenkins 容器
    docker restart jenkins_dxl

六. 创建jenkins任务

   1、重新登陆jenkins,点New Item

    

  2、创建自由风格的项目

    

七. 配置jenkins任务

  1、配置构建记录保留规则

    

  2、Git仓库配置

       

    

  3、配置构建后操作

    1)添加构建后操作模块

    

    2)配置运行脚本

    

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

    

    

        

    4)保存项目所有配置

    

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

  1、将项目依赖包导出来到req.txt文件中,txt文件名称可以随意写

  pip freeze > req.txt

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

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

  4、req.txt文件内容如下:

    

  1. ddt==1.4.4
  2. Faker==13.3.2
  3. jsonpath==0.82
  4. openpyxl==3.0.9
  5. pip==22.0.4
  6. PyMySQL==1.0.2
  7. requests==2.24.0
  8. unittestreport
  9. requests-toolbelt==0.9.1

  5、Dockerfile内容以及解释如下:
  

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

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

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

    

九、 完成build.sh

  1、build.sh内容如下:

  

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

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

  3、提交代码到Git仓库

    git add .

    git commit -am'update'

    git push

十、去构建jenkins任务

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

  

  2、查看构建过程

    

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

    

    

  4、查看测试报告

    

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

    

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

    

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

  

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

Docker+jenkins 运行 python 自动化的更多相关文章

  1. bat文件一键运行python自动化脚本

    目标:建立一个双击即可运行自动化脚本的机制,而不用每次运行编译器,方便测试人员用户体验. 方法: 1. 将所有代码打包成exe文件,但一旦修改,又要重新打包. 2. 将运行代码写成bat文件,双击即执 ...

  2. jenkins运行Python

    法一: 配置中构建执行Windows批处理命令如下 立即构建后,报错如下,提示python 不是内部或外部指令 修改Windows批处理指令如下: 再次“立即构建”则正常 法二: 安装Python插件 ...

  3. Jenkins运行python脚本出现 configparser.NoSectionError: No section: 'XXXXXX'

    原来的代码如下: def get_test_config(tag, key, config="config.ini"): cf = configparser.ConfigParse ...

  4. 从零搭建docker+jenkins 自动化部署环境

    从零搭建docker+jenkins+node.js自动化部署环境 本次案例基于CentOS 7系统 适合有一定docker使用经验的人阅读 适合有一定linux命令使用经验的人阅读 1.docker ...

  5. docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)

    前言 背景 最近在帮学校导师写项目,团队有4个人,项目前后端分离.如果是选择瀑布式开发:(在约定好接口的情况下)A.B同学写前端,C.D同学写后端,然后约定一个时间统一联调,最后将项目交付安装到客户机 ...

  6. Selenium+Python+jenkins搭建web自动化测测试框架

    python-3.6.2 chrome 59.0.3071.115 chromedriver 2.9 安装python https://www.python.org/downloads/  (Wind ...

  7. 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...

    原文:手把手0基础项目实战(一)--教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)... 本文你将学到什么? 本文将以原理+实战的方式,首先对& ...

  8. springboot docker jenkins 自动化部署并上传镜像

    springboot + docker + jenkins自动化部署项目,jenkins.mysql.redis都是docker运行的,并且没有使用虚拟机,就在阿里云服务器(centos7)运行 1. ...

  9. Jenkins(3)拉取git仓库代码,执行python自动化脚本

    前言 python自动化的脚本开发完成后需提交到git代码仓库,接下来就是用Jenkins拉取代码去构建自动化代码了 新建项目 打开Jenkins新建一个自由风格的项目 源码管理 Repository ...

  10. Jenkins + Docker + ASP.NET Core自动化部署

    本来没想着要写这篇博客,但是在实操过程中,一个是被网络问题搞炸了心态(真心感觉网络能把人搞疯,别人下个包.下个镜像几秒钟搞定,我看着我的几KB小水管真是有苦说不出),另一个就是这里面坑还是有一些的,写 ...

随机推荐

  1. vuex状态管理器

    vuex核心概念 // vuex中一共有五个状态 State Getter Mutation Action Module import Vue from 'vue' import Vuex from ...

  2. 互联网公司IT系统架构进化之路

    一日,与一高手在茶馆聊天.他问道:在鞋厂剑派这两年,可习的什么高深的剑法?我不由一愣,细细想来,这两年每日练习的都是简单的劈砍动作和一些简练的套路.并没有去练什么高深的剑法.不过鞋厂剑派在江湖上也算小 ...

  3. 【音视频】Qt中引入FFmpeg

    音视频有关的部分都是使用标准C++的,只有界面的部分才会使用Qt的内容.这样也是为了方便以后移植到其他系统上. 音视频开发中最常做的就是编解码的操作.以H.264为例:如果想要自己实现编码h.264, ...

  4. linux 部署python 系统服务管理命令 yum源设置 linux定时任务 python在linux的虚拟环境安装以及使用

    安装python3 三种方式 ==linux下很多脚本默认都用python2, 所以不要把python3的执行文件改为python,因为linux里默认python就是运行python2版本 == y ...

  5. 新建VUE项目操作步骤(win7)

    在win7下,新建一个VUE项目操作步骤说明 1 检查vue的相关软件环境 vue init webpack   项目名称 创建 vue 项目成功 进入到项目目录  然后  npm run dev 启 ...

  6. 获取网页数据 Qt 从客户端发起http响应

    Qt 从客户端发起http响应 获取网页数据实现代码 void Test::GetHttp(QString strServerIP,QString strUserName,QString strPas ...

  7. memoのQt自动调整窗口尺寸

    折腾了好久,好久.终于搞出一个自认为还算可以的方案: QTimer::singleShot(0, this, [this]{ this->adjustSize(); }); 这个解决方案确实有点 ...

  8. 脚本安装zabbix

    把zabbix.repo上传到 /etc/yum.repo.d/ 如果出现这种情况:yum -y remove httpdyum -y install httpdsystemctl start htt ...

  9. MySQL Atlas 读写分离软件介绍

    MySQL Atlas介绍 目录 MySQL Atlas介绍 一.MySQL Atlas介绍 1.1.1 MySQL Atlas介绍 1.1.2 Atlas基本管理 一.MySQL Atlas介绍 1 ...

  10. sonar使用

    代码质量检查工具 sonar 1. 下载,版本sonar 4.5.1 运行bin下的bat文件,浏览器中访问: http://localhost:9000 , 成功. 2. 修改数据库为mysql数据 ...