一、准备工作
Pyhton接口自动化的脚本,自行编写(不是本章重点)…
# Python脚本中包含的文件有:
* apt: 我这边存放的是镜像库
* common:各个公用接口的封装
* conf:存在配置文件(如:路径地址啦、读取配置文件啦....)
* ddt:存放了接口文件所需要的参数及变量(由于我是用yaml来存放接口的参数,所有这里有参数化的ddt)
* HtmlTestRunner_PY:这个是最后生成测试报告的模板
* logs:存放生成的日志
* test_case:存在测试用例
* Dockerfile:利用Dockerfile来生产docker镜像
* Jenkinsfile:存放jenkins部署的配置文件
* requirement.txt:所需要的第三方库及插件
* run.py:主要运行的文件
Dockerfile文件说明
# dockerfile
# dockerfile的Form 定制的镜像都是基于 FROM 的镜像,我这里是Python3.8
FROM python:3.8
WORKDIR /app
ADD apt/sources.list /etc/apt/
ADD requirements.txt /app
# 安装所需库
RUN pip3 install -i http://mirrors.aliyun.com/pypi/simple \
--trusted-host mirrors.aliyun.com -r requirements.txt
ADD . /app
# 运行的命令
CMD ["python3","/app/run.py"]
# 可以在本地先调试一下代码,Windows可以下载桌面版
# 打开cmd输入:
cd 到项目的根目录
docker image build -t apitest:v0.1 .
docker images # 可以查看是否生产apitest:v0.1镜像
docker run apitest:v0.1 # 运行镜像
# 本地docker运行成功后,部署项目到服务器上面就不会因为 版本、缺少xxx库等现象
Jenkinsfile文件说明
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'echo "正在build......."'
}
}
stage('Test') {
steps {
sh 'echo "正在test......."'
}
}
stage('Deploy') {
steps {
script {
remote = [:]
remote.name = 'Dev Server'
remote.host = 'xxx.xxx.xxx.xxx'
remote.port = xx
remote.user = xxxxxx
remote.password = xxxxxxxx
remote.allowAnyHosts = true
}
sh 'docker build --pull --rm -f "Dockerfile" -t apitest:v0.1 "."'
# # docker save -o 目标地址 镜像标签
sh 'docker save -o ./apitest.tar apitest:v0.1'
}
}
}
}
二、Jenkinsfile部署
# 新建一个分支流水项目
分支源:所运行代码的仓库地址,需要仓库地址和密钥
可以把你的代码从仓库拉取下来即可
Scan 多分支流水线-触发器
可以设置多久检查一下代码是否更新了,若有更新的就拉取最新的代码到jenkins中
其他无需设置,因为jenkinsfile已经都配置了
Jenkinsblue设置
这里就是jenkinsfile里面所配置的命令
三、Jenkins部署
# 设置自由风格的job,里面只设置一行代码
可以设置具体运行代码的时间间隔
Build periodically:
TZ=Asia/Shanghai
H 23 * * *
构建
Exec command:docker run --rm testapi:v0.1
这里的docker run 是根据项目中的jenkinsfile中生成的docker镜像