实现方式

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

一、创建jenkins容器

1、拉取jenkins镜像

docker pull jenkins/jenkins:latest

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

mkdir /home/jenkins_home

3、创建jenkins容器

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的命令覆盖
FROM python:3.7.15
MAINTAINER Tester
WORKDIR /app
ADD my_lib.txt /app
RUN pip install -r my_lib.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
CMD ["python","pytest_run.py"]

3、执行Dockerfile

docker build -t ImageName:TagName dir
ImageName - 镜像名称
agName - 镜像的标签
dir - Dockerfile所在的目录
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. 安卓app的签名打包

    今天学习了什么是Android程序的签名打包. Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到Android手机上的,平时我们调试运行时到手机上时, 是AS会自动用 ...

  2. Linux常用的操作指令01

    关键字: linux 查进程.杀进程.起进程1.查进程    ps命令查找与进程相关的PID号:    ps a 显示现行终端机下的所有程序,包括其他用户的程序.    ps -A 显示所有程序.   ...

  3. EMQX Cloud Serverless 正式上线:三秒部署、按量计费的 MQTT Serverless 云服务

    近日,全球领先的开源物联网数据基础设施软件供应商 EMQ 正式发布了 MQTT Serverless 云服务 -- EMQX Cloud Serverless 的 Beta 版本,开创性地采用弹性多租 ...

  4. 1168 Prime Day(20)

    The above picture is from Sina Weibo, showing May 23rd, 2019 as a very cool "Prime Day". T ...

  5. py06

    元祖tuple 与列表类似可以存多个值,但是不同的是元祖本身不能被修改 #一:基本使用:tuple# 1 用途:记录多个值,当多个值没有改的需求,此时用元组更合适 # 2 定义方式:在()内用逗号分隔 ...

  6. 查询正在执行的SQL的数据库名和表名

    创建限制0.5个CPU和0.5G内存的MySQL容器 docker run -itd --name mysql --cpu-quota=50000 --memory 512M --rm -p 3306 ...

  7. windows平台下软件最小化后无法打开的解决方法

    今天打开电脑后,双击桌面软件图标,软件启动画面出现,等了几秒后直接最小化窗口,感觉有点奇怪.点击任务栏图标后没有反应,软件界面没出现. 以为软件是不是安装破损什么的,重新安装后问题依旧,奇怪,究竟是什 ...

  8. 关于osqp

    看了osqp的英文概要,记录如下: 1.采用交替方向乘子法 2.通过因式分解高速缓冲和热启动可以减少运算时间 3.适合嵌入式系统,实测mpc在10ms之内,路径规划在20ms左右(少障碍物),障碍物多 ...

  9. python pip的使用

    1.导出安装包 pip freeze > requirements.txt 2.安装requirements.txt文件中指定的扩展库:pip install -r requirement.tx ...

  10. CGAL求最小外包矩形

    有两种所谓的最小外包矩形,第一种通过求所有节点的最小与最大xy来求的,这种叫与坐标轴平行的最小外包矩形:另外一种则是本文说的这种,与范围的形状与走势有关的,叫非坐标轴平行的最小外包矩形,效果如下图所示 ...