实现方式

docker+jenkins+python 执行自动化框架,生成allure报告
1、服务器上安装docker(略)
2、创建jenkins容器
3、使用Dockerfile创建有接口自动化框架执行环境的python镜像
4、根据python镜像创建容器,拉取git上的代码,使用python执行接口自动化框架,生成allure报告
5、执行完成之后自动删除容器

一、创建jenkins容器

1、拉取jenkins镜像

  1. docker pull jenkins/jenkins:latest

2、创建本地目录,后续挂载jenkins的工作目录

  1. mkdir /home/jenkins_home

3、创建jenkins容器

  1. docker run -itd --name=myjenkins -p 1111:8080 -u=root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /home/jenkins_home:/var/jenkins_home jenkins/jenkins:latest
-i 运行容器
-t 登录容器
-d 后台运行,使用exit退出容器之后,容器不会被停止
-p 端口映射,1111:8080 docker的8080端口映射为宿主机的1111
-u=root 指定root用户进行访问
-v 目录映射 将宿主机的目录/文件共享给容器
-v /etc/localtime:/etc/localtime:让容器使用和服务器同样的时间设置
-v /usr/local/jenkins:/var/jenkins_home:将容器中 Jenkins 的工作目录挂载到服务器的 /usr/local/jenkins
-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容器中
 
创建完成之后,使用docker ps查看运行的容器

4、访问jenkins:当前服务器ip:jenkin的映射端口

jenkins入口页显示密码文件为:/var/jenkins_home/secrets/initialAdminPassword,/var/jenkins_home目录我们在宿主机上做了映射,因此可直接在服务器上的/home/jenkins_home/secrets/initialAdminPassword去查看密码

建议先不安装jenkins的默认插件,后续有需要自己安装

设置jenkins的用户

二、本次项目需要的插件安装

git、allure

安装成功

三、创建流水线,关联git仓库地址

Source Code Management:选择Git,首次需要添加git账号

输入git账号密码,添加

输入要拉取的git仓库地址,选择刚刚添加的账号

流水线创建完成之后,可构建一次进行验证,拉取的git代码到容器中的/var/jenkins_home/workspace/,或者容器挂载的宿主机目录下去查看

四、使用Dockfile创建python镜像

1、服务器上创建文件my_lib.txt(文件名称自定义),存放python要安装的依赖包内容

my_lib.txt

Faker==13.3.2
PyMySQL==0.9.3
PyYAML==5.3
adbutils==0.7.3
allure-pytest==2.8.12
ddt==1.2.2
httprunner==3.0.12
mock==4.0.1
openpyxl==3.0.2
pytest==5.4.2
pytest-html==2.1.1
jsonpath==0.82
requests==2.22.0
requests-toolbelt==0.9.1

2、创建Dockerfile文件

书写规则:Dockerfile 文件名称首字母大写,名称固定
文件内容:第一行必须是镜像文件的来源信息,若本地没有该镜像,会自动拉取dockerhub上面的
第二行,镜像维护人,自定义
第三行,登录容器之后的默认目录(若没有该目录会自动创建)
第四行,镜像中需要添加的文件\依赖。ADD ./my_lib.txt /app 将当前目录的my_lib.txt文件添加容器的/app目录下
第五行,RUN,镜像构建过程中执行的命令
第六行,CMD,创建容器之后执行的命令
tips:docker run创建容器之后,若传了执行命令,会把cmd的命令覆盖
  1. FROM python:3.7.15
  2. MAINTAINER Tester
  3. WORKDIR /app
  4. ADD my_lib.txt /app
  5. RUN pip install -r my_lib.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
  6. CMD ["python","pytest_run.py"]

3、执行Dockerfile

docker build -t ImageName:TagName dir
ImageName - 镜像名称
agName - 镜像的标签
dir - Dockerfile所在的目录
  1. docker build -t python:3.7.15 .

出现success表示成功

五、jenkins项目配置:构建执行shell代码,生成python容器

docker run --rm -w=$WORKSPACE --volumes-from=jenkins容器名称 python镜像名称:TAG

docker run --rm -w=$WORKSPACE --volumes-from=myjenkins python:3.7.15

通过--volumes-from将jenkins工作空间的代码映射到python容器,会生成匿名容器卷,--rm 容器停止时,容器被自动删除,匿名卷也删除

1、找到jenkins上刚刚创建的流水线,configure,选择用shell脚本来构建

六、配置allure报告

tips:Jenkins上需要有jdk环境,才能生成allure报告

Jenkins:Manage Jenkins的Global Tool Configuration,配置jdk和allure

在项目的configure中,Post-build Actions选择Allure Report

七、构建流水线

构建成功,可点击allure报告查看结果

 

基于docker搭建Jenkins+git+python+allure的更多相关文章

  1. 基于Docker 搭建 Jenkins

    ⒈下载镜像 要使用最新的LTS: docker pull jenkins/jenkins:lts 要使用最新的每周 docker pull jenkins/jenkins ⒉运行 docker run ...

  2. 基于docker搭建jenkins

    一.概述 Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎.Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.Jenkins 支持各 ...

  3. 基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作

    一.各个组件的功能描述: Docker 是一个开源的应用容器引擎. Jenkis 是一个开源自动化服务器. (1).负责监控gitlab代码.gitlab中配置文件的变动: (2).负责执行镜像文件的 ...

  4. 基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作(续)---Harbor的安装

    前期安装文档:https://www.cnblogs.com/lq-93/p/11828626.html Harbor的作用:     开发提交代码至gitlab容器中,Jenkins拉取代码构建镜像 ...

  5. 基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作(续)

    说明:前期的安装,请转向https://www.cnblogs.com/lq-93/p/11824039.html (4).查看gitlab镜像是否启动成功 docker inspect  容器id  ...

  6. Docker搭建Jenkins+Maven/Gradle——代码自动化运维部署平台(二)

    一.简介 1.Jenkins 概述: Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins ...

  7. Jenkins +git +python 进行持续集成进行接口测试(接口测试jenkins持续集成篇)

    使用jenkins+git+python脚本进行持续集成的接口测试,在jenkins平台,利用插件等,把管理代码的git仓库的代码更新下来进行持续接口测试,python进行开发测试脚本,git进行远程 ...

  8. 基于docker搭建开源扫描器——伏羲

    基于docker搭建开源扫描器——伏羲 1.简介 项目地址 伏羲是一款开源的安全检测工具,适用于中小型企业对企业内部进行安全检测和资产统计. 功能一览: 基于插件的漏洞扫描功能(类似于巡风) 漏洞管理 ...

  9. [转帖]基于docker 搭建Prometheus+Grafana

    基于docker 搭建Prometheus+Grafana https://www.cnblogs.com/xiao987334176/p/9930517.html need good study 一 ...

  10. 基于Docker搭建大数据集群(六)Hive搭建

    基于Docker搭建大数据集群(六)Hive搭建 前言 之前搭建的都是1.x版本,这次搭建的是hive3.1.2版本的..还是有一点细节不一样的 Hive现在解析引擎可以选择spark,我是用spar ...

随机推荐

  1. python 操作 ES 二、mappings

    环境 python:3.8 es:7.8.0 环境安装 pip install elasticsearch==7.8.0 from elasticsearch import Elasticsearch ...

  2. GoLand 和 Pycharm的 快捷键设置与常用插件

    GoLand 插件 Gopher 美化进度条,让等待更优雅. CodeGlance pro 旁边浏览框. 快捷键设置 删除行: ctrl + L 重新格式化代码 ctrl + K 开始新行 ctrl ...

  3. window向linux传递文件

    1.需要在window建一个ftp的server 2.在linux的指定目录下输入: curl ftp://192.168.98.90/libalgorithm.so -u "embftp: ...

  4. DevExpress 动态换肤

    我们都知道Devexpress内置了很多themes,那要怎么在使用时动态更改呢. 下面是方法以: 1.如果你们已经有主题了,那就在XAML中删除类似下下面的语句. dx:ThemeManager.T ...

  5. vue super flow 多种形状

    1 <template> 2 <v-container class="workflow-container" grid-list-xl fluid> 3 & ...

  6. linux内核源码编译加制作rpm包

    本章主要讲解实际操作步骤,具体理论知识可以自行百度 linux内核官网下载:https://cdn.kernel.org/pub/linux/kernel/   (如图) 根据官网发布的信息分析,目前 ...

  7. ubuntu20.04系统openjdk11变更openjdk-8-jdk

    ubuntu20.04系统openjdk11变更openjdk-8-jdk一.卸载openjdk11先检查是否安装,命令:dpkg --list | grep -i jdk移除openjdk包,命令: ...

  8. Spark之详解及性能优化

    一.spark简介 Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架. Spark是用Scala程序设计语言编写而成,运行于Java虚拟机(JVM)环境之上.目前支持如下程 ...

  9. PR / PO审批

    PR审批的BAPI 1.单个项目PR审批 CALL FUNCTION 'BAPI_REQUISITION_RELEASE' EXPORTING number = l_banfn rel_code = ...

  10. mqtt安装和使用

    linux下 下载: wget https://www.emqx.io/downloads/broker/v3.2.1/emqx-centos7-v3.2.1.zip 解压:unzip emqx-ce ...