接口自动化持续集成
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报告:


浙公网安备 33010602011771号