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

1.在 Linux 服务器安装 docker

2.创建 jenkins 容器

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

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

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

环境准备
  1. Linux 服务器一台(我的是 CentOS7)
    1、有云服务器的同学直接用云服务器
    2、没有云服务器的同学参考我的博客自己动手安装虚拟机吧
    VMware 安装 Centos7 步骤图解(http://testingpai.com/article/1629981536584)

  2. 在服务器上正确安装 docker
    1、拉取 jenkins 镜像
    jenkins/jenkins:alpine
    2、拉取 python3 镜像
    docker pull python:3-alpine

如果你想学习性能测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

创建 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 为宿主机映射端口

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

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

 

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

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

 配置实例

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

 

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

    图片

  2. 点 Manage Jenkins 来到如下页面

    图片

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

    图片

    2、Docker 插件安装

    图片

    3、HTML Publisher 插件安装
     

    图片

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

    docker restart jenkins_save01

图片

创建 jenkins 任务
  1. 重新登陆 jenkins,点 New Item

    图片

  2. 创建自由风格的项目

    图片

配置 jenkins 任务
  1. 配置构建记录保留规则

    图片

  2. Git 仓库配置

    图片

    图片


     

    图片


     

    图片

  3. 配置构建后操作
    1、添加构建后操作模块

    图片

     2、配置运行脚本

图片


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

图片


 

图片



 

图片

  4、保存项目所有配置

图片

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

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

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

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

  4. requirements.txt 文件内容如下

    unittestreport==1.3.2openpyxl==3.0.7ddt==1.4.2pytest==6.2.2selenium==3.141.0pymysql==1.0.2faker==8.1.0jsonpath==0.82BeautifulReport==0.1.3rsa==4.7.2pytest-html==3.1.1allure-pytest==2.9.43requests-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是我们自动化框架的执行入口文件
  6. ​​​​​​​

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

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

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

图片

完成 build.sh
  1. 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:hailiecho "python执行自动化执行成功"
  2. ​​​​​​​
  3. 将 build.sh 复制到你的项目根目录下

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

去构建 jenkins 任务
  1. 回到 jenkins 首页,找到项目点构建

    图片

  2. 查看构建过程

    图片

  3. 点构建记录

    图片

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

    图片

  5. 构建过程如下图

    图片

  6. 查看测试报告

    图片

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

    图片

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

图片

图片

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

图片

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

图片

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

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/262890.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jmeter之内置函数__property和__P的区别

1. __property函数 作用 读取 Jmeter 属性 语法格式 ${__property(key,var,default)} 参数讲解 小栗子 ${__property(key)} 读取 key 属性如果找不到 key 属性,则返回 key(属性名) ${__property(key,,default)} 读取 key 属性如果找不到 k…

PHP实现分离金额和其他内容便于统计计算

得到的结果可以粘贴到excel计算 <?php if($_GET["x"] "cha"){ $tips isset($_POST[tips]) ? $_POST[tips] : ; $pattern /(\d\.\d|\d)/; $result preg_replace($pattern, "\t\${1}\t", $tips); echo "<h2><strong>数…

Python流程控制有知道的吗?

流程控制是编程的核心概念之一&#xff0c;Python也不例外。在Python中&#xff0c;程序的流程控制结构主要包括顺序结构、选择结构和循环结构。这些结构让程序员能够更好地组织代码&#xff0c;使其按照特定的逻辑执行。 1.顺序结构 顺序结构是Python中最简单的流程控制结构&…

ELK介绍以及搭建

基础环境 hostnamectl set-hostname els01 hostnamectl set-hostname els02 hostnamectl set-hostname els03 hostnamectl set-hostname kbased -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config systemctl stop firewalld & systemctl disable firewalld# 安…

Unity数据持久化之PlayerPrefs

这里写目录标题 PlayerPrefs概述基本方法PlayerPrefs存储位置实践小项目反射知识补充数据管理类的创建反射存储数据----常用成员反射存储数据----List成员反射存储数据----Dictionary成员反射存储数据----自定义类成员反射读取数据----常用成员反射读取数据----List成员反射读取…

Sora-OpenAI 的 Text-to-Video 模型:制作逼真的 60s 视频片段

OpenAI 推出的人工智能功能曾经只存在于科幻小说中。 2022年&#xff0c;Openai 发布了 ChatGPT&#xff0c;展示了先进的语言模型如何实现自然对话。 随后&#xff0c;DALL-E 问世&#xff0c;它利用文字提示生成令人惊叹的合成图像。 现在&#xff0c;他们又推出了 Text-t…

选择适合你的编程语言

引言 在当今瞬息万变的技术领域中&#xff0c;选择一门合适的编程语言对于个人职业发展和技术成长至关重要。每种语言都拥有独特的设计哲学、应用场景和市场需求&#xff0c;因此&#xff0c;在决定投入时间和精力去学习哪种编程语言时&#xff0c;我们需要综合分析多个因素&a…

在 Jupyter Notebook 中查看所使用的 Python 版本和 Python 解释器路径

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 我们在做 Python 开发时&#xff0c;有时在我们的服务器上可能安装了多个 Python 版本。 使用 conda info --envs 可以列出所有的 conda 环境。当在 Linux 服务器上使用 which python 命令时&#xff0…

绿盾限制终端网络访问权限会恢复后,别的网站访问正常就是无法访问钉钉网站和下载东西

环境&#xff1a; Win10 专业版 钉钉7.5.5 绿盾7.0 问题描述&#xff1a; 绿盾限制终端网络访问权限会恢复后&#xff0c;别的网站访问正常就是无法访问钉钉网站和下载东西 解决方案&#xff1a; 排查方法 1.重置浏览器或者更换浏览器测试&#xff08;未解决&#xff09…

游戏行业洞察:分布式开源爬虫项目在数据采集与分析中的应用案例介绍

前言 我在领导一个为游戏行业巨头提供数据采集服务的项目中&#xff0c;我们面临着实时数据需求和大规模数据处理的挑战。我们构建了一个基于开源分布式爬虫技术的自动化平台&#xff0c;实现了高效、准确的数据采集。通过自然语言处理技术&#xff0c;我们确保了数据的质量和…

Flutter插件开发指南02: 事件订阅 EventChannel

Flutter插件开发指南02: 事件订阅 EventChannel 视频 https://www.bilibili.com/video/BV1zj411d7k4/ 前言 上一节我们讲了 Channel 通道&#xff0c;但是如果你是卫星定位业务&#xff0c;原生端主动推消息给 Flutter 这时候就要用到 EventChannel 通道了。 本节会写一个 1~…

Maven setting.xml 配置

目的&#xff1a;可以把我们书写的jar包发布到maven私有仓库&#xff0c;简称私仓 1. 打开云效 2.点击 非生产库-snapshot mave release仓库与snapshot仓库区别&#xff1f; 在软件开发中&#xff0c;"Maven release 仓库"和"Maven snapshot 仓库"是两种…

[极客大挑战2019]upload

该题考点&#xff1a;后缀黑名单文件内容过滤php木马的几种书写方法 phtml可以解析php代码&#xff1b;<script language"php">eval($_POST[cmd]);</script> 犯蠢的点儿&#xff1a;利用html、php空格和php.不解析<script language"php"&…

AI文生图网站测评

主要测评文章配图生成效果、绘制logo等效果 测评关键点&#xff1a;生成效果、网站易用度、是否免费 测评prompt&#xff1a;请生成一个文章内容配图&#xff0c;图片比例是3&#xff1a;2&#xff0c;文章主旨是AI既是机遇&#xff0c;也存在挑战和风险&#xff0c;要求图片…

PyTorch概述(二)---MNIST

NIST Special Database3 具体指的是一个更大的特殊数据库3&#xff1b;该数据库的内容为手写数字黑白图片&#xff1b;该数据库由美国人口普查局的雇员手写 NIST Special Database1 特殊数据库1&#xff1b;该数据库的内容为手写数字黑白图片&#xff1b;该数据库的图片由高…

Jetson Xavier NX 与笔记本网线连接 ,网络共享,ssh连接到vscode

Jetson Xavier NX 与笔记本网线连接 &#xff0c;网络共享&#xff0c;ssh连接到vscode Jetson Xavier NX桌面版需要连接显示屏、鼠标和键盘&#xff0c;操作起来并不方便&#xff0c;因此常常需要ssh远程连接到本地笔记本电脑&#xff0c;这里介绍一种连接方式&#xff0c;通过…

linux安装sqoop

目录 下载配置 下载 本地下载好上传&#xff0c;解压&#xff0c;重命名&#xff0c;注意路径 tar -zxvf /opt/sqoop/sqoop-1.4.6.tar.gz -C /opt/ mv /opt/sqoop-1.4.6.bin__hadoop-2.0.4-alpha /opt/sqoop配置 环境变量 echo export SQOOP_HOME/opt/sqoop/ >> /etc…

Ubuntu18.04有线连接后,无法设置ip地址以及显示网口设置

前提&#xff1a;首先测试过网线是完全没问题的 桌面端找不到设置网口 终端输入&#xff1a; ifconfig 没有找到网口设置和对应IP 然后查询网口驱动是否正常安装&#xff0c;输入&#xff1a; lspci | grep Ethernet 有输出说明网口驱动正常安装 然后查询电脑的ip地址&am…

图像分割标签噪声问题优化

文章目录 前言一、损失函数方面(1)t-loss(2)边缘平滑前言 在制作数据集时,标注数据时难免会存在噪声,如不同类别交界处存在模糊导致定位异常问题,训练过程梯度不稳定,网络对这部分数据的分类置信度较低(如其它中心区域的类别置信度都在0.9左右,而类别交界处的置信度…

在openEuler中通过KVM可视化安装华为FusionCompute的CNA主机

一、环境说明 在Windows物理主机上通过VMware WorkStation创建一个虚拟机&#xff08;4U4C、16GB内存&#xff0c;400GB磁盘&#xff0c;NAT网络连接&#xff09;&#xff0c;在虚拟机中安装openEuler 22.03 LTS系统&#xff0c;并将该虚拟机作为部署 FusionCompute的服务器&a…