第2章 验收前置条件:环境就绪、账号准备、测试数据初始化、工具安装
【本章定位】
在正式开始B2B权限验收之前,必须将所有依赖的基础设施、测试账号、模拟数据以及自动化测试工具部署到位。本章定义四项前置工作的标准流程与验收标准,确保后续验收活动可在受控、可复现的环境中执行。
适用场景
- 新项目首次启动权限验收,或已有环境发生重大变更后需要重新验收。
- 验收团队与开发、运维、数据组之间的交接节点。
- 自动化脚本尚未配置CI/CD流水线,需人工执行一次初始化。
前置条件(执行本章操作前必须完成)
- 已完成权限验收方案设计,明确验收范围、角色矩阵及测试用例清单。
- 获得目标环境(开发/测试/预发)的网络访问权限与SSH/SSO接入方式。
- 从架构文档中获取服务组件清单、API端点地址、数据库连接字符串。
- 安全组已开放必要的端口(如22、443、3306、6379等)。
- 验收组长已分配各模块负责人(环境、账号、数据、工具)。
操作步骤
步骤一:环境就绪
- 确认目标环境的服务器状态(CPU/内存/磁盘),执行健康检查脚本。
- 验证数据库、缓存、消息队列等中间件是否正常运行。
- 记录环境版本信息(操作系统、内核、数据库版本、中间件版本)。
- 设置环境变量,确保API网关、OAuth服务端点可访问。
export API_BASE_URL="https://api.test.example.com"
export AUTH_URL="https://auth.test.example.com/token"
export DB_CONNECTION_STRING="mysql://test_user:pass@10.0.0.5:3306/permission_test"
cd service-check && ./health_check.sh
步骤二:账号准备
- 根据角色矩阵,创建测试用户(管理员、部门经理、普通员工、外部访客)。
- 为每个测试用户分配对应的权限组,并记录userId、token。
- 创建专用服务账号(用于API调用)并授予最小必要权限。
- 验证所有账号可正常登录、token可刷新。
# 示例:创建测试用户并导出token
curl -s -X POST "$API_BASE_URL/users" \
-H "Authorization: Bearer ${ADMIN_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"username":"tester_low","role":"employee"}' | jq '.userId'
步骤三:测试数据初始化
- 从数据组获取匿名化的业务数据快照,并导入测试数据库。
- 运行数据初始化脚本,生成资源、角色、权限记录,确保与验收用例匹配。
- 验证数据完整性:资源数、角色数、权限绑定数符合预期。
- 对敏感数据进行脱敏标记(如手机号、邮箱)。
# 初始化脚本片段
mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME < init_permission_data.sql
echo "共插入角色:$(mysql -N -e 'select count(*) from roles;' -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME)"
echo "共插入权限绑定:$(mysql -N -e 'select count(*) from role_permissions;' -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME)"
步骤四:工具安装
- 安装Python 3.10+、pip、git、jq。
- 创建虚拟环境并安装自动化测试框架(pytest + requests + allure-pytest)。
- 将验收脚本仓库clone到本地,并切换到指定tag/分支。
- 安装数据库客户端(mysql-cli、redis-cli)以辅助数据验证。
- 验证工具版本正确,可执行基础用例(hello-world式测试)。
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install pytest requests allure-pytest
git clone https://git.internal.company.com/permission/acceptance-tests.git
cd acceptance-tests && git checkout tags/v1.2.0
pytest --version
输入输出物
| 类别 | 输入物 | 输出物 |
| 环境 | 环境拓扑图、IP白名单、端口列表 | 环境健康检查报告、版本快照 |
| 账号 | 角色矩阵表、账号命名规范 | 测试账号列表(含userId、token、角色) |
| 数据 | 业务数据快照、脱敏规则 | 初始化后的数据库dump、数据完整性校验表 |
| 工具 | 工具清单、依赖版本约束 | 安装日志、工具版本清单、冒烟测试通过报告 |
责任边界
| 角色 | 职责 |
| 环境责任人(运维/基础架构) | 确保环境可用、中间件正常运行、网络连通 |
| 账号责任人(安全/IT支持) | 批量创建用户、分配权限组、记录凭证 |
| 数据责任人(DBA/数据组) | 提供脱敏数据快照、执行初始化脚本、验证数据完整性 |
| 工具责任人(测试开发/自动化组) | 安装并配置测试框架、clone仓库、执行冒烟测试 |
| 验收组长 | 整体协调、审批前置条件通过,签署就绪确认单 |
记录材料
使用以下Checklist逐一确认,所有项状态为✅方可进入正式验收阶段。
| 检查项 | 是否已验收 | 备注 |
| 环境健康检查通过 | □是 □否 | |
| 所有测试账号可登录 | □是 □否 | |
| 测试数据初始化完成并校验通过 | □是 □否 | |
| 自动化测试工具已安装并冒烟通过 | □是 □否 | |
| 责任方均已签字确认 | □是 □否 | |
异常处理
常见异常与应对措施:
| 异常现象 | 可能原因 | 处理建议 |
| 环境服务响应超时 | 端口未开放、防火墙拦截、服务未启动 | 联系运维检查安全组策略,登录目标机器 `systemctl status` 确认服务状态 |
| 账号登录返回403 | 权限未同步、密码策略过期、账号被锁定 | 刷新权限缓存(如LDAP同步),重置密码或解锁账号 |
| 测试数据导入时外键冲突 | 数据快照版本不一致、表结构变更 | 使用 `SET FOREIGN_KEY_CHECKS=0` 临时跳过,后续与DBA比对表结构 |
| pip安装失败 | 内部PyPI镜像不可用、依赖冲突 | 临时使用官方源 `-i https://pypi.org/simple` 或指定兼容版本 |
| 验证脚本运行报错 'ModuleNotFoundError' | 虚拟环境未激活、缺少依赖 | 执行 `source venv/bin/activate && pip list | grep -i 缺失包` 重新安装 |
验收标准
- 环境健康检查报告显示所有组件状态为绿色,延迟 < 100ms。
- 每个测试账号均可成功获取有效token(JWT),且token中包含正确的角色声明。
- 测试数据库中资源记录数 ≥ 验收用例所需资源数的 2 倍(预留边缘数据)。
- 自动化测试工具安装后,冒烟测试(例如单条PASS用例)100%通过。
- 所有责任人在“前置条件就绪确认单”上签署同意。
- Checklist全部项勾选为“是”,并归档至验收工作记录。