第2章 验收前置条件:环境就绪、账号准备、测试数据初始化、工具安装

【本章定位】

在正式开始B2B权限验收之前,必须将所有依赖的基础设施、测试账号、模拟数据以及自动化测试工具部署到位。本章定义四项前置工作的标准流程与验收标准,确保后续验收活动可在受控、可复现的环境中执行。

适用场景

  • 新项目首次启动权限验收,或已有环境发生重大变更后需要重新验收。
  • 验收团队与开发、运维、数据组之间的交接节点。
  • 自动化脚本尚未配置CI/CD流水线,需人工执行一次初始化。

前置条件(执行本章操作前必须完成)

  1. 已完成权限验收方案设计,明确验收范围、角色矩阵及测试用例清单。
  2. 获得目标环境(开发/测试/预发)的网络访问权限与SSH/SSO接入方式。
  3. 从架构文档中获取服务组件清单、API端点地址、数据库连接字符串。
  4. 安全组已开放必要的端口(如22、443、3306、6379等)。
  5. 验收组长已分配各模块负责人(环境、账号、数据、工具)。

操作步骤

步骤一:环境就绪

  1. 确认目标环境的服务器状态(CPU/内存/磁盘),执行健康检查脚本。
  2. 验证数据库、缓存、消息队列等中间件是否正常运行。
  3. 记录环境版本信息(操作系统、内核、数据库版本、中间件版本)。
  4. 设置环境变量,确保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

步骤二:账号准备

  1. 根据角色矩阵,创建测试用户(管理员、部门经理、普通员工、外部访客)。
  2. 为每个测试用户分配对应的权限组,并记录userId、token。
  3. 创建专用服务账号(用于API调用)并授予最小必要权限。
  4. 验证所有账号可正常登录、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'

步骤三:测试数据初始化

  1. 从数据组获取匿名化的业务数据快照,并导入测试数据库。
  2. 运行数据初始化脚本,生成资源、角色、权限记录,确保与验收用例匹配。
  3. 验证数据完整性:资源数、角色数、权限绑定数符合预期。
  4. 对敏感数据进行脱敏标记(如手机号、邮箱)。
# 初始化脚本片段
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)"

步骤四:工具安装

  1. 安装Python 3.10+、pip、git、jq。
  2. 创建虚拟环境并安装自动化测试框架(pytest + requests + allure-pytest)。
  3. 将验收脚本仓库clone到本地,并切换到指定tag/分支。
  4. 安装数据库客户端(mysql-cli、redis-cli)以辅助数据验证。
  5. 验证工具版本正确,可执行基础用例(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全部项勾选为“是”,并归档至验收工作记录。
验收前置条件就绪流程 环境就绪 健康检查 / 网络连通 账号准备 角色创建 / Token生成 测试数据初始化 脱敏快照 / 导入校验 工具安装 框架 / 脚本克隆 前置条件就绪确认单 责任方签字 · Checklist归档 所有项并行推进,最终汇聚确认