用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/zhaoxuya520/AI-Fullstack-Delivery-Workflow --skill test-data-management命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | test-data-management |
| description | 准备测试数据 / 数据隔离 / 脱敏时使用。适用于功能测试数据准备、性能测试数据生成、生产数据脱敏复制。融合 GDPR 合规、合成数据、数据隔离三层防护。 |
参考来源:GDPR / CCPA 数据保护、Google Test Data Best Practices、合成数据生成(Faker / Mockaroo)、Stripe Test Mode。
1. 测试数据要可重复创建
不能"手工造一次,丢了重造"
2. 测试数据必须隔离
不能污染生产 / 不能跨用例污染
3. 不能用真实 PII 做测试
GDPR / CCPA 红线
4. 数据要"真实但假"
足够真实能触发真 Bug,但不是真用户
5. 自动清理
测试结束后状态可恢复
代码定义 + 参数化 + 默认值
示例(Python factory_boy):
class OrderFactory:
user = SubFactory(UserFactory)
amount = 100
status = 'draft'
created_at = LazyFunction(now)
# 使用:
OrderFactory() # 默认订单
OrderFactory(amount=999) # 自定义金额
OrderFactory.create_batch(100) # 批量
优势:可重复、参数化、可组合 适用:单元测试、集成测试
固定测试数据,提交到版本控制
适用:API 测试、UI 测试、回归套件
工具:Faker / Mockaroo / Synthetic Data Vault
特点:随机但符合分布
适用:性能测试、机器学习、Demo
流程:
生产 DB → 脱敏脚本 → 测试 DB
脱敏方式:
- 哈希:邮箱 → MD5(邮箱) + @test.com
- 随机化:电话号码替换
- 通用化:精确地址 → 城市
- 加噪:金额 ± 10%
- 删除:身份证、密码、token
适用:性能测试、UAT、复杂业务场景
1. 物理隔离
- 独立数据库 / Schema
- 独立实例
2. 逻辑隔离
- tenant_id / env 字段
- WHERE env='test' 强制过滤
3. 命名隔离
- 前缀:test_user_xxx, _test_order_xxx
- 标记 metadata: {"test": true}
绝对不能用真实数据:
- 身份证 / 护照
- 银行卡 / CVV
- 真实姓名 + 真实手机号
- 真实邮箱
- 健康记录
- 地理位置精确坐标
替代方案:
- 测试身份证号(11000019900307XXXX 区间)
- 测试银行卡(4242 4242 4242 4242 - Stripe 测试卡)
- 假人姓名(Faker 库)
- test@example.com 这类专用邮箱
- 城市级地址(北京市,不到具体街道)
角色矩阵:
- guest_01:未登录访客
- user_01_a:普通用户,租户 A
- user_02_a:普通用户,租户 A(用于测协作)
- user_03_b:普通用户,租户 B(用于测租户隔离)
- manager_01_a:管理者,租户 A
- admin_01_a:管理员,租户 A
- admin_global:超管
每个账号:
- 固定密码(仅测试环境)
- 固定邮箱
- 完整业务数据(不同状态)
- 文档化(README)
1. 创建(Setup)
- 用例开始前
- 工厂模式生成
- 标记 _test_xxx
2. 使用(Test Body)
- 不被其他用例污染
- 修改后只影响本用例
3. 验证(Assert)
- 检查数据库状态
- 不留中间状态
4. 清理(Teardown)
- 删除 / 重置
- 异步清理脏数据脚本兜底
5. 归档(Optional)
- 失败用例数据保留 24h 以排查
1. 列数据需求
- 用例需要什么数据
- 多少条
- 什么状态分布
↓
2. 选择策略
- 单元测试 → Factory
- API 测试 → Fixture / Factory
- E2E 测试 → 预置账号 + Factory
- 性能测试 → 合成生成
- UAT → 脱敏生产数据
↓
3. 实现数据生成
- 工厂代码 / 脚本
↓
4. 隔离机制
- 标记 / 命名 / 独立 DB
↓
5. 清理机制
- Teardown / 定时清理
↓
6. 文档化
- 测试账号清单
- 数据规模
- 使用说明
目标:百万级数据,< 1 小时生成
技术:
- 数据库批量插入(COPY / INSERT batch)
- 关闭索引 → 插入 → 重建索引
- 关闭外键约束 → 插入 → 启用
- 直接生成 SQL 文件再 LOAD
示例(PostgreSQL):
COPY orders FROM '/data/orders.csv' WITH CSV;
→ 100 万条 < 30 秒
症状:
- 用例顺序变了就失败
- 周一过、周五挂
- CI 不稳定
排查:
- 是否清理了?
- 是否有共享状态(缓存 / 静态变量)?
- 是否依赖测试顺序?
防御:
- 每个用例独立 transaction,结束 rollback
- 用 unique 后缀(timestamp / uuid)
- 测试容器(每跑一次新建 DB)
- 异步清理脚本兜底
□ 测试数据可程序化生成
□ 测试数据隔离三层防护
□ 不使用真实 PII
□ 测试账号文档化
□ 数据清理机制完备
□ 性能测试数据规模接近生产
□ 脱敏脚本无可逆性
□ 测试数据进版本控制
□ 数据规模有上限(防爆磁盘)
□ 跨环境数据迁移有审计
templates/test-data-strategy-template.md — 数据策略 + 隔离方案 + 清理机制 + 测试账号矩阵 + 脱敏规则上游:
数据库工程师工作流 → 数据模型 / Schema
test-strategy → 数据规模需求
下游:
test-case-design → 用例使用数据
api-testing → API 测试数据
performance-testing → 大规模数据
acceptance-testing → UAT 数据
自动化测试工作流 → 自动化数据准备
基于 SOC 职业分类