接口自动化持续集成

docker+jenkins+python+allure自动化持续集成

一、实现思路

1,在linux服务器安装docker
2,创建jenkins容器
3,根据自动化项目依赖包构建python镜像(构建自动化python环境)
4,运行新的python容器,执行jenkins从仓库拉下来的自动化项目

二、环境准备

1,Linux 服务器一台(我的是 阿里云服务器)

  • 有云服务器的同学直接用云服务器
  • 没有云服务器自己动手安装虚拟机

2,在服务器上安装docker

  • 1、拉取jenkins镜像:docker pull jenkins/jenkins:alpine

三、创建jenkins容器

  • 1、命令:
    docker run -dit --name=jenkins_save01 -p 9090: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 9090: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、运行效果

    • 输入docker ps 能看到容器正在运行,代表容器启动成功

四、配置

1、浏览器访问:http://服务器地址:9090,来到jenkins页面

  • 服务器地址为你搭建jenkins的服务器地址
  • 9090:linux宿主机地址,不能访问的情况下看是否开通了防火墙

2,在linux服务器执行命令获取管理员密码

  • 执行命令: docker logs 启动容器的名称

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

  • 进入下载插件页面

  • 选左侧安装推荐的插件,自动安装就可以了
  • Jenkins插件下载速度慢、安装失败:进入下面的链接https://www.cnblogs.com/yoyoketang/p/12115569.htm

  • 插件下载完成后,设置账号密码

  • 配置实例

  • 启动就绪

五、jenkins安装插件

1、点上一步骤开始使用 jenkins,来到如下界面

2、点 Manage Jenkins 来到如下页面

3、点 Manage Plugins 安装插件

  • HTML Publisher plugin插件安装

  • Allure Jenkins Plugin 安装插件(已安装)

  • 安装插件后重启jenkins
  • 命令行重启:docker restart 容器名称

六、创建jenkins任务

  • 1、重新登陆 jenkins,点 New Item

  • 2、创建自由风格的项目

七、jenkins任务配置

  • 源码管理:git仓库配置

  • 构建触发器(定时构建)

  • 构建环境(这里选择linux)

  • 构建后操作(可以选择allure 和 html报告,这里选择了allure)

八、全局工具配置

进入系统管理-全局工具配置页面:选择allure, 默认就好,不需要改动

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

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

  • 2、pip freeze > requirements.txt在宿主机(安装 docker 的机子)上新建一个目录(root/docker-run),将 requirements.txt 文件复制进去(requirements.txt文件必须在linux中生成,使用windows生成的文件会报错)

  • 3、在 docker-run 目录下创建 Dockerfile 文件(文件名必须是 Dockerfile,没有后缀)

  • 4、Dockerfile内容及解释如下:

FROM python:3.6.8  #基于python:3.6.8这个基础镜像镜像构建镜像(没有这个镜像会从官网自动下载一个)
MAINTAINER xhb<1269357308@qq.com>
RUN pip install --upgrade pip --index-url https://pypi.douban.com/simple # 更新pip
WORKDIR /code # 切换工作空间目录(没有会创建)
ADD . /code
RUN pip install -r requirements.txt --index-url https://pypi.douban.com/simple  #安装依赖包
CMD ["python", "json_main.py"]  #设置容器执行后自动执行的命令,这里main.py是我们自动化框架的执行入口文件
  • 5、在docker-run目录下执行镜像构建命令
    • docker build -t python:3.6 .
    • -t:镜像名称(重新定义的镜像名称)
    • 点(.):点表示 Dockerfile 文件所在的目录,我现在在 app 目录下,点表示当前目录

十、完成build.sh

  • 1、build.sh内容如下
echo "运行容器python执行自动化"  #输出日志
#-w=$WORKSPACE:指定workspace
#--volumes-from=jenkins:将jenkins容器中的workspace映射到python容器中,此时jenkins中git拉下来的代码就会被映射进去
docker run --rm -w=$WORKSPACE --volumes-from=jenkins python3.6
echo "python执行自动化执行成功"

  • 2、将 build.sh 复制到你的项目根目录下

  • 3、提交到gitee上,在项目根目录下

十一、执行构建任务

结果如下:

控制台输出:


allure报告:

posted @ 2022-04-19 10:58  测试-小熊  阅读(50)  评论(0)    收藏  举报