QUICK_DEPLOY.md 11.1 KB

:rocket: 傻瓜式部署指南

目标:从零开始,把项目部署到Linux服务器,使用Docker运行,集成到Jenkins,代码托管在Git仓库

预计时间:30-60分钟

难度:star::star:(超简单)


:clipboard: 前置条件(必须有)

在开始之前,请确保你有:

  • 一个GitHub/GitLab账户(用于托管代码)
  • 一台Linux服务器(Ubuntu 20+ 或 CentOS 8+)
  • Linux服务器可以上网
  • 一个Jenkins服务器(已安装)
  • 本地电脑有Git命令行工具

第一步:初始化本地Git仓库(5分钟)

1.1 在项目目录初始化Git

cd "D:\百音引擎项目\interface_test"

# Windows PowerShell 执行
git init
git config user.name "你的名字"
git config user.email "你的邮箱@example.com"

1.2 创建 .gitignore 文件

在项目根目录创建 .gitignore 文件(排除不需要的文件):

# 创建文件
cat > .gitignore << 'EOF'
# Python
__pycache__/
*.py[cod]
*$py.class
.venv/
venv/
ENV/

# IDE
.vscode/
.idea/
*.swp
*.swo

# Reports
api_test_report_*.html
api_test_report_*.xlsx

# OS
.DS_Store
Thumbs.db

# Logs
*.log
EOF

1.3 添加所有文件到Git

git add .
git commit -m "Initial commit: API自动化测试框架

- 多环境支持(test/uat/prod)
- Docker容器化
- Jenkins集成
- 详细文档"

第二步:创建远程Git仓库(5分钟)

2.1 在GitHub/GitLab创建新仓库

GitHub步骤

  1. 访问 https://github.com/new
  2. 输入仓库名:api-test-framework
  3. 描述:API自动化测试框架 - 支持多环境、Docker、Jenkins
  4. 选择 Public(如果是私有项目选Private)
  5. 点击 Create repository

获取仓库URL

  • HTTPS: https://github.com/你的用户名/api-test-framework.git
  • SSH: git@github.com:你的用户名/api-test-framework.git

2.2 推送代码到远程仓库

# 添加远程仓库地址
git remote add origin https://github.com/你的用户名/api-test-framework.git

# 推送到远程(第一次)
git branch -M main
git push -u origin main

# 后续推送只需要
git push

第三步:Linux服务器准备(10分钟)

3.1 连接到Linux服务器

# 从本地电脑连接到服务器
ssh root@你的服务器IP
# 或
ssh ubuntu@你的服务器IP

3.2 检查并安装Docker

# 检查Docker是否已安装
docker --version

# 如果未安装,执行以下命令(Ubuntu)
sudo apt update
sudo apt install -y docker.io docker-compose

# 如果是CentOS
sudo yum install -y docker docker-compose

# 启动Docker
sudo systemctl start docker
sudo systemctl enable docker

# 验证安装
docker run hello-world

3.3 检查并安装Git

# 检查Git是否已安装
git --version

# 如果未安装
sudo apt install -y git  # Ubuntu
# 或
sudo yum install -y git  # CentOS

3.4 创建项目目录

# 创建项目目录
sudo mkdir -p /opt/api-test
sudo chown -R $USER:$USER /opt/api-test

cd /opt/api-test

第四步:克隆项目到服务器(5分钟)

cd /opt/api-test

# 克隆代码
git clone https://github.com/你的用户名/api-test-framework.git .

# 验证文件是否齐全
ls -la

应该看到

Dockerfile
docker-compose.yml
api_test.py
env_config.py
requirements.txt
README.md
等...

第五步:在Linux上测试Docker运行(10分钟)

5.1 构建Docker镜像

cd /opt/api-test

# 构建镜像(第一次会很慢,10-15分钟)
docker-compose build

5.2 运行第一次测试

# 创建报告目录
mkdir -p reports

# 测试环境运行
DEPLOY_ENV=test docker-compose run --rm api-test-runner

# 查看报告
ls -la reports/

预期输出

✅ 所有测试用例运行成功!
HTML测试报告已生成:api_test_report_api_cases_test_*.html

第六步:配置Jenkins(15分钟)

6.1 进入Jenkins Web界面

打开浏览器访问:

http://你的Jenkins服务器IP:8080

6.2 创建新Pipeline任务

  1. 点击 + 新建Item
  2. 输入任务名称:api-test-framework
  3. 选择 Pipeline
  4. 点击 OK

6.3 配置Pipeline

第一部分:General

  • 描述:API自动化测试框架 - 多环境支持

第二部分:Parameters

  1. 点击 Add Parameter
  2. 选择 Choice Parameter
  3. 配置:
    • Name: DEPLOY_ENV
    • Choices: test uat prod

第三部分:Pipeline

  1. Definition: 选择 Pipeline script from SCM
  2. SCM: 选择 Git
  3. 配置Git:

    • Repository URL: https://github.com/你的用户名/api-test-framework.git
    • Credentials: 如需认证,点击 Add 添加用户名/密码
    • Branch: */main
    • Script Path: Jenkinsfile
  4. 点击 Save

6.4 首次运行Pipeline

  1. 点击 Build with Parameters
  2. 选择 DEPLOY_ENV: test
  3. 点击 Build

查看构建日志

  • 点击左侧 #1 查看构建进度
  • 点击 Console Output 查看详细日志

第七步:验证完整流程(5分钟)

7.1 验证Git仓库

# 确认远程仓库有代码
git remote -v
git log --oneline

7.2 验证Docker运行

cd /opt/api-test

# 再次运行测试
DEPLOY_ENV=uat docker-compose run --rm api-test-runner

# 检查报告
ls -la reports/api_test_report_*uat*

7.3 验证Jenkins任务

  1. 打开Jenkins Web界面
  2. 点击你创建的任务 api-test-framework
  3. 点击 Build History 查看构建记录
  4. 点击最新的构建号查看详情
  5. 点击 Console Output 确认执行成功

第八步:配置定时任务(可选,5分钟)

8.1 在Jenkins中设置定时执行

  1. 进入任务配置页面
  2. 找到 Build Triggers
  3. 勾选 Poll SCM
  4. 输入 Cron 表达式(每天上午10点执行): 0 10 * * *

8.2 定时任务含义

分钟 小时 日 月 周几

0 10 * * *     每天上午10点执行
0 10 * * 1-5   工作日上午10点执行
0 */6 * * *    每6小时执行一次
0 2 * * *      每天凌晨2点执行

:white_check_mark: 检查清单

完成以下所有步骤,确保部署成功:

  • Git仓库已初始化,代码已推送到GitHub/GitLab
  • Linux服务器已安装Docker和Git
  • 项目代码已克隆到 /opt/api-test
  • Docker镜像已成功构建
  • 本地Docker测试已通过(能生成报告文件)
  • Jenkins任务已创建
  • Jenkins能够参数化执行(Build with Parameters)
  • 至少成功运行过一次Pipeline
  • 报告文件已生成并包含环境标识

:rocket: 快速命令参考

本地操作

# Git初始化和提交
git init
git add .
git commit -m "message"
git remote add origin <url>
git push -u origin main

# 后续更新
git add .
git commit -m "message"
git push

服务器操作

# 连接服务器
ssh root@IP

# Docker操作
docker-compose build
DEPLOY_ENV=test docker-compose run --rm api-test-runner

# Git更新代码
cd /opt/api-test
git pull

Jenkins操作

Build with Parameters → 选择环境 → Build

:sos: 常见问题速解

Q1: Git提交报错"fatal: not a git repository"

解决

cd 到项目目录
git init

Q2: Docker镜像构建失败

解决

# 检查网络
ping 8.8.8.8

# 重试构建
docker-compose build --no-cache

Q3: Jenkins连接Git仓库失败

解决

  1. 检查仓库URL是否正确
  2. 如果是私有仓库,需要添加SSH密钥或用户名/密码
  3. 在Jenkins系统设置中配置凭证

Q4: 报告文件找不到

解决

# 检查reports目录
ls -la /opt/api-test/reports/

# 检查容器日志
docker logs <container-id>

Q5: Jenkins无法访问

解决

# 检查Jenkins是否运行
ps aux | grep jenkins

# 检查端口8080是否打开
netstat -tlnp | grep 8080

# 检查防火墙
sudo ufw allow 8080

:telephone_receiver: 需要帮助?

  1. 查看详细文档

    • README.md - 项目介绍
    • DEPLOYMENT_GUIDE.md - 部署详情
    • DOCKER_GUIDE.md - Docker详情
    • USER_GUIDE.md - 使用指南
  2. 查看日志

    • Docker日志:docker logs <container-id>
    • Jenkins日志:Jenkins Web界面 → Console Output
    • 服务器日志:/var/log/
  3. 测试连通性

    # 测试Git连接
    git clone <url>
    

# 测试Docker运行 docker run hello-world

# 测试Jenkins API curl http://localhost:8080


---

## 📊 部署架构

┌─────────────────────────────────────────────┐ │ GitHub/GitLab 仓库 │ │ (代码托管) │ └─────────────────────────────────────────────┘ ↓ git clone/pull ┌─────────────────────────────────────────────┐ │ Linux 服务器 /opt/api-test │ │ ┌─────────────────────────────────────┐ │ │ │ Docker 容器 │ │ │ │ ┌───────────────────────────────┐ │ │ │ │ │ Python 环境 │ │ │ │ │ │ - api_test.py │ │ │ │ │ │ - env_config.py │ │ │ │ │ │ - requirements.txt │ │ │ │ │ └───────────────────────────────┘ │ │ │ └─────────────────────────────────────┘ │ └─────────────────────────────────────────────┘ ↑ 触发 ┌─────────────────────────────────────────────┐ │ Jenkins (CI/CD) │ │ - 参数化Build(环境选择) │ │ - 定时执行(Cron) │ │ - 报告发布 │ └─────────────────────────────────────────────┘


---

## ✨ 下一步

部署完成后,你可以:

1. **配置邮件通知**:当测试失败时,Jenkins自动发送邮件
2. **集成钉钉通知**:实时推送测试结果
3. **配置测试报告展示**:在Jenkins界面展示HTML报告
4. **设置性能监控**:监控测试响应时间趋势

详见各个技术文档。

---

**🎉 恭喜!你已经完成了完整的CI/CD部署!**

现在你可以:
- ✅ 本地开发,推送代码到Git
- ✅ Git自动触发Jenkins构建
- ✅ Jenkins自动构建Docker镜像
- ✅ Docker自动运行测试
- ✅ 自动生成并展示测试报告

**Happy Testing! 🚀**