Files
testing-tool/docs/test-data-generator/core-features.md
T
雨霖铃 2b84eda24f docs: 统一测试数据生成器文档,移除 SQL/TypeScript 导出,修复接口命名不一致
- 移除所有文档中的 SQL 和 TypeScript 导出格式引用
- 统一数据导出格式为 JSON 和 CSV
- 移除 GeneratorDefinition 中的 icon 字段
- 更新 generatorCategories 配置,包含所有 21 个生成器
- 统一 rule-management.md 和 technical-implementation.md 中的接口名称为 DataRule
- 更新 ui-design.md 中的界面设计,移除 SQL/TypeScript 相关元素
2026-06-06 09:04:53 +08:00

239 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 核心功能
## 功能概览
| 功能模块 | 功能点 | 说明 | 优先级 |
| -------------- | ------------- | ------------------ | ------ |
| **字段配置** | 添加字段 | 可视化添加数据字段 | P0 |
| | 删除字段 | 删除不需要的字段 | P0 |
| | 字段排序 | 拖拽调整字段顺序 | P1 |
| | 字段命名 | 自定义字段名称 | P0 |
| | 必填/选填设置 | 控制字段是否必填 | P0 |
| | 空值率配置 | 选填字段空值概率 | P1 |
| **生成器系统** | 生成器选择 | 从生成器库中选择 | P0 |
| | 参数配置 | 配置生成器参数 | P0 |
| | 实时预览 | 配置时查看生成结果 | P1 |
| **数据生成** | 批量生成 | 支持 10000+ 条数据 | P0 |
| | 唯一性约束 | 保证字段值唯一 | P1 |
| | 组合策略 | 自动选择生成策略 | P1 |
| | 数据预览 | 生成前预览数据 | P1 |
| **数据导出** | JSON 导出 | 导出为 JSON 格式 | P0 |
| | CSV 导出 | 导出为 CSV 格式 | P0 |
## 功能详情
### 1. 字段配置
#### 添加字段
- 用户点击"添加字段"按钮
- 弹出生成器选择器
- 选择生成器后,自动创建新字段
- 字段默认名称为生成器名称
#### 删除字段
- 每个字段右侧有删除按钮
- 点击后弹出确认对话框
- 确认后删除该字段
#### 字段排序
- 支持拖拽排序
- 支持上移/下移按钮
- 排序后预览数据同步更新
#### 字段命名
- 字段名称可自定义
- 支持中英文命名
- 同一规则内字段名不可重复
#### 必填/选填设置
- 每个字段可设置为"必填"或"选填"
- **必填字段**: 100% 生成数据
- **选填字段**: 可配置空值概率(0-100%)
- 默认所有字段为必填
#### 空值率配置
- 选填字段可单独设置空值率
- 提供预设值:低(20%)、中(50%)、高(80%)
- 支持滑块精细调节(0-100%
- 未单独设置的选填字段使用全局默认空值率
---
### 2. 生成器系统
#### 生成器选择
- 以分类方式展示生成器
- 支持搜索生成器
- 点击选择后添加到字段配置
#### 价格生成器(业务数据)
生成真实的价格数据,支持多种策略:
| 策略 | 说明 | 适用场景 |
| -------- | ------------------------------ | ------------ |
| 真实分布 | 对数正态分布,模拟真实商品价格 | 通用电商场景 |
| 均匀随机 | 所有价格等概率 | 测试数据 |
| 心理定价 | .99/.98/.95 结尾 | 营销场景 |
**参数配置**
- 最低价/最高价:控制价格区间
- 小数位数:0(整数)、1、2 位
- 生成策略:选择分布类型
#### 年龄生成器(个人信息)
生成真实分布的年龄数据:
| 策略 | 说明 | 适用场景 |
| -------- | ---------------------------- | ------------ |
| 真实分布 | 正态分布,均值 35,标准差 10 | 通用用户数据 |
| 人口比例 | 按中国人口年龄比例分布 | 市场调研数据 |
| 均匀随机 | 所有年龄等概率 | 测试数据 |
**参数配置**
- 最小年龄/最大年龄:控制年龄区间
- 生成策略:选择分布类型
#### 数量生成器(业务数据)
生成真实分布的数量数据:
| 策略 | 说明 | 适用场景 |
| -------- | --------------------------- | -------- |
| 真实分布 | 泊松分布,大多数购买 1-3 件 | 零售订单 |
| 批发模式 | 10-100 之间均匀分布 | 批发订单 |
| 均匀随机 | 所有数量等概率 | 测试数据 |
**参数配置**
- 最小值/最大值:控制数量区间
- 生成策略:选择分布类型
#### 评分生成器(业务数据)
生成真实分布的评分数据:
| 策略 | 说明 | 适用场景 |
| -------- | ------------------ | -------- |
| 真实分布 | 偏态分布,偏向高分 | 电商平台 |
| 严格评价 | 偏态分布,偏向低分 | 严格评审 |
| 均匀随机 | 所有评分等概率 | 测试数据 |
**参数配置**
- 最低分/最高分:控制评分区间
- 小数位数:0、1 位
- 生成策略:选择分布类型
#### 折扣生成器(业务数据)
生成真实分布的折扣数据:
| 策略 | 说明 | 适用场景 |
| -------- | ------------------------ | -------- |
| 心理定价 | 常见折扣点(8折、9折等) | 电商促销 |
| 清仓模式 | 大折扣区间(3-7折) | 清仓处理 |
| 均匀随机 | 所有折扣等概率 | 测试数据 |
**参数配置**
- 最低折扣/最高折扣:控制折扣区间(0.1-0.9)
- 生成策略:选择分布类型
#### 库存生成器(业务数据)
生成真实分布的库存数据:
| 策略 | 说明 | 适用场景 |
| -------- | ------------------------ | -------- |
| 真实分布 | 指数分布,大多数库存较少 | 通用商品 |
| 热销商品 | 低库存区间(0-50) | 热销商品 |
| 均匀随机 | 所有库存等概率 | 测试数据 |
**参数配置**
- 最小库存/最大库存:控制库存区间
- 生成策略:选择分布类型
#### 参数配置
- 每个生成器有对应的参数配置界面
- 必填参数标记星号
- 修改参数后实时预览更新
#### 实时预览
- 配置参数时,右侧预览区实时更新
- 显示 5-10 条示例数据
- 帮助用户确认配置是否正确
---
### 3. 数据生成
#### 批量生成
- 支持配置生成数量
- 使用 Web Worker 后台生成
- 支持 10000+ 条数据
- 生成过程中显示进度条
#### 唯一性约束
- 每个字段可单独设置唯一性约束
- 启用后,该字段生成的值不会重复
- 如果无法生成唯一值,使用重试机制
#### 组合策略(唯一性生成)
系统根据数据量自动选择最优生成策略:
| 数据量 | 策略 | 说明 |
| --------- | --------------- | ---------------------- |
| ≤ 1000 条 | 随机生成 + 重试 | 保证随机性,性能可接受 |
| > 1000 条 | 索引生成 | 高性能,保证唯一性 |
**实现方式**
- 生成器提供两个方法:`generate()``generateAtIndex()`
- `generate()`: 随机生成,用于小数据量或非唯一性字段
- `generateAtIndex()`: 索引生成,用于大数据量唯一性字段
- 系统根据配置自动选择合适的方法
**示例**
- 手机号字段:`generateAtIndex(params, index)` 使用 index 生成唯一手机号
- 姓名字段:`generateAtIndex(params, index)` 使用 index 组合姓和名
#### 数据预览
- 生成前可预览数据
- 显示前 10 条数据
- 支持分页查看更多数据
---
### 4. 数据导出
#### JSON 导出
- 导出为标准 JSON 格式
- 支持压缩和格式化两种模式
- 包含字段名和数据
#### CSV 导出
- 导出为 CSV 格式
- 自动处理逗号转义
- 支持中文编码 (UTF-8 with BOM)