第4章 测试环境搭建与数据准备

4.1 适用场景

本章适用于以下三类典型场景:

  • 原型首次启动验证:在全新环境中部署未发布的前端/后端原型,验证其能否按预期运行。
  • 回归测试前置准备:针对已修改的原型版本,确保本地或云端环境与上一轮测试保持一致。
  • 多用户并发测试模拟:需要独立测试账号或隔离数据集时,统一搭建基础数据环境。

4.2 前置条件

序号 前置条件项 说明与检查要点
1 原型交付物完整 包含可执行文件、配置文件、依赖清单(如 package.json、requirements.txt)
2 运行环境就绪 本地需安装 Node.js 18+/Python 3.10+ 或 Docker;云端需提供 SaaS 或虚拟机资源
3 账号与权限 测试人员拥有目标环境的部署/读写权限;必要 API Key 或服务账号密钥已申请
4 数据基线定义 已确定基础数据集范围、模拟数据格式(JSON / YAML / TOML)

4.3 操作步骤

4.3.1 本地环境搭建

  1. 克隆原型仓库或解压交付包至本地工作目录。
  2. 安装依赖:根据原型技术栈执行包管理器命令。例如:
    # 前端原型
    npm install
    
    # Python 后端原型
    pip install -r requirements.txt
  3. 检查配置文件 config.yaml 中的数据库地址、端口、日志级别,确保与本机服务一致。
  4. 启动原型并确认端口已监听(默认 3000 / 8080 / 5000):
    npm run dev
    # 或
    python app.py

4.3.2 云端环境搭建

  1. 登录云控制台,选择同地域、同规格的测试专用实例(推荐使用专用测试标签避免与生产混杂)。
  2. 安全组放行原型所需端口(TCP 3000-3005、443、8080)。
  3. 上传原型包至实例指定目录,重复本地步骤中的依赖安装与启动。
  4. 在 .env 文件中覆盖 BASE_URL 或 API_HOST 为云端内网/弹性 IP。

4.3.3 测试账号准备

  • 管理员类:1 个超级管理员 + 1 个普通管理员,具有所有资源操作权限。
  • 普通用户类:至少 3 个测试用户,具备不同角色(如编辑者、只读者、新注册未激活)。
  • 边界账号:1 个账号名称包含特殊字符,1 个账号密码超长(128 字符以上)。

4.3.4 基础数据集与模拟数据

基础数据集是原型必须预加载的“基准状态”,模拟数据则用于边界测试。以下为常见数据表及其初始行数要求:

数据实体 最小行数 模拟数据关键字段
用户表 10 user_id, name, email, status, created_at
订单表(若适用) 20 order_id, customer_id, total_amount, order_status, payment_time
配置表 5 config_key, config_value, env, updated_by

模拟数据推荐通过 SQL 脚本或 Python Faker 生成,并导出为 JSON 文件供测试反复导入:

// sample_users.json
[
  {
    "user_id": 10001,
    "name": "test_user_a",
    "email": "user_a@example.com",
    "status": "active"
  },
  {
    "user_id": 10002,
    "name": "test_user_b",
    "email": "user_b@example.com",
    "status": "locked"
  }
]

4.4 输入输出物

类别 输入物 输出物
环境 原型交付包、配置文件模板 可运行的本地/云端原型实例(URL + 存活检测结果)
账号 账号申请表、权限矩阵 测试账号清单(含用户名/密码/角色)
数据 基准 SQL / JSON 模拟脚本 数据库已导入的初始数据集 + 模拟数据快照文件

4.5 责任边界

责任矩阵(RACI)

  • 测试工程师:负责执行环境搭建、数据导入、编写模拟数据(R);输出环境检查清单(A)。
  • 开发工程师:提供配置模板、修复环境兼容问题(C);协助排查启动失败异常(I)。
  • 测试经理:审批环境资源申请、验收环境准备是否满足用例执行条件(R / A)。

4.6 记录材料

测试环境搭建完成后,必须归档以下记录:

  1. 环境配置快照:包含原型版本号、部署路径、端口映射、依赖版本锁文件(如 package-lock.json、pdm.lock)。
  2. 数据准备日志:导入数据条数、失败记录行数、SQL 执行时间。
  3. 账号清单:加密存储的账号密码表(仅测试组可访问)。

4.7 异常处理

异常现象 可能原因 解决措施
端口被占用 本地其他服务使用了相同端口 修改 config.yaml 中的 server.port 或使用 kill -9 $(lsof -ti:3000) 释放
数据库连接失败 连接串用户名/密码错误,或数据库未启动 验证 .env 中的 DB_URL;检查 MySQL/PostgreSQL 服务状态
模拟数据导入后原型报错 数据格式不匹配(字段缺失、类型错误) 对照数据库 schema 校验 JSON 字段类型,修正后重新导入

重要提醒:本地与云端环境所使用的基础数据集必须逐字段核对,避免因字符集、时区或精度差异导致原型行为不一致。建议在数据导入后执行一次 select count(*) + 样本验证。

4.8 验收标准

环境准备完成后,需依次通过以下检查项方可开始用例执行:

  • 连通性:可通过浏览器或 curl 访问原型首页,返回 HTTP 200 且页面无明显报错。
  • 用户登录:使用预置管理的账号成功登录,无密码错误或 token 失效提示。
  • 数据完整性:在原型界面上可查看到基础数据集的记录(如用户列表、订单列表),数据条数 > 0。
  • 配置生效:业务配置项(如订单审核开关、日志级别)与控制台/API 返回一致。

4.9 环境搭建与数据准备流程图

下图展示了测试环境搭建与数据准备的整体流程,从环境规划到验收通过共分为 5 个主要阶段。

测试环境搭建与数据准备流程图 测试环境搭建与数据准备流程图 环境规划 确认技术栈 / 端口 本地环境搭建 安装依赖 / 启动原型 云端环境搭建 上传包 / 配置安全组 数据准备 基础数据 / 模拟数据 本地数据需与云端数据基线对齐 使用同一份 SQL / JSON 导入脚本 验收通过 连通 / 账号 / 数据完整性 不合格(回退) 说明 本地/云端可独立搭建,但数据基线必须共用同一套脚本;验收不通过则回退到环境搭建阶段。