第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 本地环境搭建
- 克隆原型仓库或解压交付包至本地工作目录。
- 安装依赖:根据原型技术栈执行包管理器命令。例如:
# 前端原型 npm install # Python 后端原型 pip install -r requirements.txt - 检查配置文件
config.yaml中的数据库地址、端口、日志级别,确保与本机服务一致。 - 启动原型并确认端口已监听(默认 3000 / 8080 / 5000):
npm run dev # 或 python app.py
4.3.2 云端环境搭建
- 登录云控制台,选择同地域、同规格的测试专用实例(推荐使用专用测试标签避免与生产混杂)。
- 安全组放行原型所需端口(TCP 3000-3005、443、8080)。
- 上传原型包至实例指定目录,重复本地步骤中的依赖安装与启动。
- 在
.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 记录材料
测试环境搭建完成后,必须归档以下记录:
- 环境配置快照:包含原型版本号、部署路径、端口映射、依赖版本锁文件(如
package-lock.json、pdm.lock)。 - 数据准备日志:导入数据条数、失败记录行数、SQL 执行时间。
- 账号清单:加密存储的账号密码表(仅测试组可访问)。
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 个主要阶段。