实现方式

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. jenkins+stf+airtest实现移动端自动化测试平台

    背景: 公司android测试机比较多没有统一的管理: app自动化测试时获取设备的状态比较麻烦,通过STF可以轻松获取: 自动化异常场景时.可远程操控设备: 需要随时了解设备情况: 装逼 前提: 已 ...

  2. Java除法运算精度问题

    结论:不要将两个int类型的变量直接相除,会出现精度丢失问题,最好将其中一个变量强制转化成浮点型 现象: 两个int类型相除的结果要取整,如果相除得到0.53,那么结果会变成0,出现精度丢失的问题 D ...

  3. 解决sqlplus中方向键和退格键乱码问题

    centos7 1.安装rlwrap软件包 yum install rlwrap -y 2.编辑环境变量 su - oracle vim ~/.bash_profile alias sqlplus=' ...

  4. Cadence Allegro创建盲埋孔

    1.首先创建两个常规过孔,文件名分别为Via10d4.Via16d8. 2.打开PCB Editor,然后选择菜单Setup -> B/B ViaDefinitions -> Define ...

  5. HFS~HTTP File Server 2.4rc2 20191231

    后台,打卡,这有的 电脑 PC   浏览器 打开 安卓平台,浏览器,打开,界面

  6. centos6根分区扩容,非lvm

    1.关闭虚拟机,删除里面的快照,将磁盘扩容 2.根分区为sda3,开机后输入fdisk /dev/sda,d,3删除sda3,然后n,p,3,w创建sda3,扇区的开始位置要一致 3.growpart ...

  7. 看K线学炒股(0803)

    高位板块的高位个股要回避,即便走反抽行情也要慎重.像容捷股份. 同是房地产行业的荣盛发展和西藏城投,差别怎么这么大?荣盛发展市净率0.4,西藏城投是4.8,市盈率更是一个天上一个地下,但股价呢?所以股 ...

  8. Unity Shader实现《死亡搁浅》扫描效果!

    https://mp.weixin.qq.com/s/4YwjxScnU0zprjGekAyvsw

  9. ComPiler200003:Story-Oriented Programming

    Story-Oriented Programming MAY 25TH, 2018 http://www.brandonkeown.com/2018/05/story-oriented-program ...

  10. vim超级替换

    vim实现变量替换, 检测代码中#0-F0-FH替换为0x0-F0-F,例如#09FH替换为0x09F :%s/#\(\w\)\(\w\)\(\w\)H/0x\1\2\3/g 注: 标准格式 :s/p ...