实现方式

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. java使用apache-commons-lang3生成随机字符串(可自定义规则)

    在日常开发中,我们经常会遇到生成随机字符串的需求.可能是大小写字母+数字,也可能是其他各种字符.作为一个常用功能,我们完全没必要自己实现,有很多优质的类库已经做的很完善了.本文介绍的就是apache- ...

  2. inux配置PATH路径

    查看PATH:echo $PATH以添加python3为列 修改方法一:export PATH=P A T H : PATH:PATH:HOME/bin:export PATH=P A T H : P ...

  3. C#消息泵探索(二)

    ​ 引言: 上篇文章里简单的解释了C#的消息泵原理,这里我们以winform为例详细地了解一下实现代码. 底层实现 [DllImport(ExternDll.User32, ExactSpelling ...

  4. Kotlin属性委托

    业务定义 对于属性,我们可以读取(get)和赋值(set),在Java中会定义get和set方法来操作属性,Kotlin的属性建议直接操作,一些业务的要求会对属性有额外的功能需求,在Java中会在ge ...

  5. 增加网络位置CMD脚本

    创建.bat脚本 net use Z: \\192.168.X.X\Share /user:用户名 /persistent:YES 密码 persistent:YES是保存密码.下次开机也生效.

  6. 【Ubuntu】设置桌面文件夹路径

    Ubuntu 系统会将桌面文件夹路径默认设置为 $HOME/Desktop,包括文档.下载.图片等文件夹路径都有各自的默认路径.若想更改这些文件夹路径,可参考『此链接』. 首先到希望更改的路径下建立桌 ...

  7. SAP日志表 CDHDR和CDPOS

    1. 标准日志表CDHDR 和 CDPOS OBJECTCLAS = 'INFOSATZ' 信息记录 OBJECTCLAS = 'BANF' 采购申请 OBJECTCLAS = 'EINKBELEG' ...

  8. Vue v-once指令 和 v-pre指令

    v-once指令: 1.v-once 所在节点在初始化动态渲染后,就视为静态内容了 2.以后数据的改变不会引起v-once所在结构的更新,可用于优化性能 v-pre指令: 1.跳过其所在节点的编译过程 ...

  9. chfs共享系统搭建

    手机电脑文件共享搭建(http://iscute.cn/chfs) 1.下载wget http://iscute.cn/tar/chfs/2.0/chfs-linux-amd64-2.0.zip 2. ...

  10. js实现字符串得填充

    方法一: //填充截取法 function padding4(str, length) { //这里用slice和substr均可 return (Array(length).join("0 ...