怎么从0到1使用 Docker + Jenkins + Git + Pytest + Allure 搭建项目自动化框架
时间: 2024-01-24 17:04:07 浏览: 216
搭建项目自动化框架需要以下步骤:
## 1. 安装 Docker 和 Docker Compose
Docker 是一种容器化技术,可以轻松部署和管理应用程序。Docker Compose 是 Docker 的一个工具,可以通过 YAML 文件定义和运行多个容器。
## 2. 安装 Jenkins
Jenkins 是一个流行的开源持续集成和持续交付工具,可以自动化构建、测试和部署应用程序。
可以使用 Docker 安装 Jenkins,具体步骤如下:
```bash
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts
```
其中,`-d` 参数表示以后台模式运行容器,`--name` 参数指定容器名称,`-p` 参数指定宿主机和容器之间的端口映射,`jenkins/jenkins:lts` 表示使用最新的 Jenkins 长期支持版本。
## 3. 安装 Git
Git 是一个流行的分布式版本控制系统,可以管理代码变更历史记录。
可以使用以下命令安装 Git:
```bash
sudo apt-get install git
```
## 4. 安装 Pytest
Pytest 是一个 Python 测试框架,可以用于编写单元测试和集成测试。
可以使用以下命令安装 Pytest:
```bash
pip install pytest
```
## 5. 安装 Allure
Allure 是一个用于生成漂亮测试报告的开源框架,支持多种语言和测试框架。
可以使用以下命令安装 Allure:
```bash
sudo apt-add-repository ppa:qameta/allure
sudo apt-get update
sudo apt-get install allure
```
## 6. 编写 Docker Compose 文件
在项目根目录下创建一个名为 `docker-compose.yml` 的文件,并添加以下内容:
```yaml
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
ports:
- "8080:8080"
- "50000:50000"
volumes:
- "./jenkins_home:/var/jenkins_home"
restart: always
app:
build: .
command: pytest
volumes:
- "./:/app"
depends_on:
- jenkins
environment:
- ALLURE_RESULTS_DIR=allure-results
restart: always
```
其中,`jenkins` 服务使用 Jenkins 镜像启动一个容器,并映射宿主机的 `8080` 和 `50000` 端口到容器的同名端口上。`volumes` 参数指定将 Jenkins 主目录挂载到宿主机的 `./jenkins_home` 目录上,以便持久化存储 Jenkins 配置和数据。
`app` 服务使用当前目录的 Dockerfile 构建一个容器,并运行 Pytest 命令。`volumes` 参数将当前目录挂载到容器的 `/app` 目录上,以便容器内部可以访问测试代码和配置文件。`depends_on` 参数指定 `app` 服务依赖 `jenkins` 服务。`environment` 参数指定测试结果将存储在 `allure-results` 目录中。
## 7. 编写 Jenkinsfile
在项目根目录下创建一个名为 `Jenkinsfile` 的文件,并添加以下内容:
```groovy
pipeline {
agent {
docker {
image 'python:3.8-slim'
}
}
stages {
stage('Build') {
steps {
sh 'pip install -r requirements.txt'
}
}
stage('Test') {
steps {
sh 'pytest --alluredir allure-results'
}
post {
always {
allure([
includeProperties: false,
jdk: '',
properties: [],
reportBuildPolicy: 'ALWAYS',
results: [[path: 'allure-results']]
])
}
}
}
}
}
```
其中,`agent` 参数指定使用 Docker 容器运行 Jenkins Pipeline。`stages` 参数指定多个阶段,包括 `Build` 和 `Test`。
在 `Build` 阶段中,使用 `pip` 命令安装测试依赖。在 `Test` 阶段中,使用 `pytest` 命令运行测试,并将测试结果存储在 `allure-results` 目录中。
`post` 参数指定后置动作,使用 Allure 插件生成测试报告。
## 8. 启动 Jenkins 和应用程序
使用以下命令启动 Jenkins 和应用程序:
```bash
docker-compose up
```
## 9. 在 Jenkins 中创建 Pipeline
访问 `http://localhost:8080`,使用初始密码登录 Jenkins。在首页中选择“新建 Item”,创建一个名为 `my-pipeline` 的 Pipeline 项目。
在配置页面中,选择“Pipeline script from SCM”,并指定 Git 仓库地址和 Jenkinsfile 所在的分支。
保存配置后,点击“Build Now”按钮,即可开始构建项目。在项目构建完成后,可以在 Allure 报告中查看测试结果。
阅读全文