2b84eda24f
- 移除所有文档中的 SQL 和 TypeScript 导出格式引用 - 统一数据导出格式为 JSON 和 CSV - 移除 GeneratorDefinition 中的 icon 字段 - 更新 generatorCategories 配置,包含所有 21 个生成器 - 统一 rule-management.md 和 technical-implementation.md 中的接口名称为 DataRule - 更新 ui-design.md 中的界面设计,移除 SQL/TypeScript 相关元素
703 lines
18 KiB
Markdown
703 lines
18 KiB
Markdown
# 生成器库
|
|
|
|
## 分类概览
|
|
|
|
| 分类 | 生成器数量 | 说明 |
|
|
| -------- | ---------- | ------------------------------------------------ |
|
|
| 个人信息 | 6 个 | 中文姓名、邮箱、手机号、年龄等 |
|
|
| 业务数据 | 8 个 | 订单号、价格、日期、状态、数量、评分、折扣、库存 |
|
|
| 技术数据 | 3 个 | UUID、IP地址、URL |
|
|
| 基础类型 | 4 个 | 整数、浮点数、字符串等 |
|
|
| **总计** | **21 个** | |
|
|
|
|
---
|
|
|
|
## 个人信息生成器
|
|
|
|
### 1. 中文姓名 (chineseName)
|
|
|
|
**说明**: 生成中文姓名,如张三、李四
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| --------------- | ---------------------------- | ---- | ------------------ | ------------ |
|
|
| surnamePool | string \| string[] | 否 | 百家姓前100个 | 姓氏池 |
|
|
| givenNameLength | { min: number, max: number } | 否 | { min: 1, max: 2 } | 名字长度范围 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "name",
|
|
"generator": "chineseName",
|
|
"params": {
|
|
"surnamePool": ["张", "王", "李", "赵"],
|
|
"givenNameLength": { "min": 1, "max": 2 }
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 张伟, 李娜, 王强, 赵敏
|
|
|
|
---
|
|
|
|
### 2. 邮箱地址 (email)
|
|
|
|
**说明**: 生成邮箱地址
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| --------- | -------------------- | ---- | ------------------------------------------------------------ | ---------- |
|
|
| domains | string[] | 否 | ['qq.com', '163.com', '126.com', 'gmail.com', 'outlook.com'] | 域名列表 |
|
|
| nameStyle | 'pinyin' \| 'random' | 否 | 'pinyin' | 用户名风格 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "email",
|
|
"generator": "email",
|
|
"params": {
|
|
"domains": ["qq.com", "163.com"],
|
|
"nameStyle": "pinyin"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: zhangwei@qq.com, lina@163.com
|
|
|
|
---
|
|
|
|
### 3. 中国手机号 (chinesePhone)
|
|
|
|
**说明**: 生成 11 位中国手机号
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| ------ | -------- | ---- | -------------- | ---------- |
|
|
| prefix | string[] | 否 | 常见手机号前缀 | 手机号前缀 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "phone",
|
|
"generator": "chinesePhone",
|
|
"params": {
|
|
"prefix": ["138", "139", "150", "151"]
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 13812345678, 15087654321
|
|
|
|
---
|
|
|
|
### 4. 身份证号 (idCard)
|
|
|
|
**说明**: 生成 18 位中国身份证号
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| ------ | ------ | ---- | ------ | ------ |
|
|
| region | string | 否 | 随机 | 地区码 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "idCard",
|
|
"generator": "idCard",
|
|
"params": {
|
|
"region": "110101"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 110101199001011234
|
|
|
|
---
|
|
|
|
### 5. 中文地址 (chineseAddress)
|
|
|
|
**说明**: 生成中国地址
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| ------ | ------------------------------ | ---- | ------ | -------- |
|
|
| level | 'full' \| 'province' \| 'city' | 否 | 'full' | 详细程度 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "address",
|
|
"generator": "chineseAddress",
|
|
"params": {
|
|
"level": "full"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 北京市朝阳区建国路88号
|
|
|
|
---
|
|
|
|
### 6. 年龄 (age)
|
|
|
|
**说明**: 生成真实分布的年龄数据
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| -------- | ----------------------------------------- | ---- | ----------- | -------- |
|
|
| min | number | 否 | 1 | 最小年龄 |
|
|
| max | number | 否 | 100 | 最大年龄 |
|
|
| strategy | 'realistic' \| 'demographic' \| 'uniform' | 否 | 'realistic' | 生成策略 |
|
|
|
|
**策略说明**:
|
|
|
|
| 策略 | 说明 | 适用场景 |
|
|
| ----------- | ---------------------------- | ------------ |
|
|
| realistic | 正态分布,均值 35,标准差 10 | 通用用户数据 |
|
|
| demographic | 按中国人口年龄比例分布 | 市场调研数据 |
|
|
| uniform | 均匀随机 | 测试数据 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "age",
|
|
"generator": "age",
|
|
"params": {
|
|
"min": 18,
|
|
"max": 65,
|
|
"strategy": "realistic"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 28, 42, 35, 51, 23
|
|
|
|
---
|
|
|
|
## 业务数据生成器
|
|
|
|
### 1. 订单号 (orderId)
|
|
|
|
**说明**: 生成订单号
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| ------------ | ------- | ---- | ------ | ------------ |
|
|
| prefix | string | 否 | 'ORD' | 前缀 |
|
|
| dateIncluded | boolean | 否 | true | 是否包含日期 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "orderId",
|
|
"generator": "orderId",
|
|
"params": {
|
|
"prefix": "ORD",
|
|
"dateIncluded": true
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: ORD20240115001, ORD20240115002
|
|
|
|
---
|
|
|
|
### 2. 价格 (price)
|
|
|
|
**说明**: 生成真实的价格数据,支持多种分布策略
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| -------- | ------------------------------------------- | ---- | ----------- | -------- |
|
|
| min | number | 是 | 1 | 最低价 |
|
|
| max | number | 是 | 9999 | 最高价 |
|
|
| decimals | 0 \| 1 \| 2 | 否 | 2 | 小数位数 |
|
|
| strategy | 'realistic' \| 'uniform' \| 'psychological' | 否 | 'realistic' | 生成策略 |
|
|
|
|
**生成策略说明**:
|
|
|
|
| 策略 | 说明 | 适用场景 |
|
|
| ------------- | ------------------------------ | ------------ |
|
|
| realistic | 对数正态分布,模拟真实商品价格 | 通用电商场景 |
|
|
| uniform | 均匀随机,所有价格等概率 | 测试数据 |
|
|
| psychological | 心理定价,.99/.98/.95 结尾 | 营销场景 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "price",
|
|
"generator": "price",
|
|
"params": {
|
|
"min": 10,
|
|
"max": 5000,
|
|
"decimals": 2,
|
|
"strategy": "realistic"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**:
|
|
|
|
- 真实分布: 299.00, 1599.50, 49.99, 1299.00
|
|
- 心理定价: 299.99, 1599.98, 49.95, 1299.99
|
|
- 均匀随机: 1234.56, 5678.90, 890.12
|
|
|
|
---
|
|
|
|
### 3. 日期时间 (date)
|
|
|
|
**说明**: 生成日期时间
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| ------ | ------ | ---- | --------------------- | -------- |
|
|
| format | string | 否 | 'YYYY-MM-DD HH:mm:ss' | 日期格式 |
|
|
| min | string | 否 | '2020-01-01' | 最早日期 |
|
|
| max | string | 否 | 当前日期 | 最晚日期 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "createdAt",
|
|
"generator": "date",
|
|
"params": {
|
|
"format": "YYYY-MM-DD HH:mm:ss",
|
|
"min": "2024-01-01"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 2024-01-15 14:30:22
|
|
|
|
---
|
|
|
|
### 4. 状态 (status)
|
|
|
|
**说明**: 从选项中随机选择
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| ------- | -------- | ---- | -------- | ------------ |
|
|
| options | string[] | 是 | - | 状态选项列表 |
|
|
| weights | number[] | 否 | 均匀分布 | 各选项权重 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "status",
|
|
"generator": "status",
|
|
"params": {
|
|
"options": ["pending", "paid", "shipped", "completed"],
|
|
"weights": [30, 40, 20, 10]
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: pending, paid, shipped, completed
|
|
|
|
---
|
|
|
|
### 5. 数量 (quantity)
|
|
|
|
**说明**: 生成真实分布的数量数据
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| -------- | ---------------------------------- | ---- | ----------- | -------- |
|
|
| min | number | 否 | 1 | 最小值 |
|
|
| max | number | 否 | 100 | 最大值 |
|
|
| strategy | 'realistic' \| 'bulk' \| 'uniform' | 否 | 'realistic' | 生成策略 |
|
|
|
|
**策略说明**:
|
|
|
|
| 策略 | 说明 | 适用场景 |
|
|
| --------- | --------------------------- | -------- |
|
|
| realistic | 泊松分布,大多数购买 1-3 件 | 零售订单 |
|
|
| bulk | 10-100 之间均匀分布 | 批发订单 |
|
|
| uniform | 均匀随机 | 测试数据 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "quantity",
|
|
"generator": "quantity",
|
|
"params": {
|
|
"min": 1,
|
|
"max": 50,
|
|
"strategy": "realistic"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 2, 1, 5, 3, 1
|
|
|
|
---
|
|
|
|
### 6. 评分 (rating)
|
|
|
|
**说明**: 生成真实分布的评分数据
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| -------- | ------------------------------------ | ---- | ----------- | -------- |
|
|
| min | number | 否 | 1 | 最低分 |
|
|
| max | number | 否 | 5 | 最高分 |
|
|
| decimals | number | 否 | 1 | 小数位数 |
|
|
| strategy | 'realistic' \| 'strict' \| 'uniform' | 否 | 'realistic' | 生成策略 |
|
|
|
|
**策略说明**:
|
|
|
|
| 策略 | 说明 | 适用场景 |
|
|
| --------- | ------------------ | -------- |
|
|
| realistic | 偏态分布,偏向高分 | 电商平台 |
|
|
| strict | 偏态分布,偏向低分 | 严格评审 |
|
|
| uniform | 均匀随机 | 测试数据 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "rating",
|
|
"generator": "rating",
|
|
"params": {
|
|
"min": 1,
|
|
"max": 5,
|
|
"decimals": 1,
|
|
"strategy": "realistic"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 4.5, 4.8, 3.9, 5.0, 4.2
|
|
|
|
---
|
|
|
|
### 7. 折扣 (discount)
|
|
|
|
**说明**: 生成真实分布的折扣数据
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| -------- | ------------------------------------------- | ---- | --------------- | -------- |
|
|
| min | number | 否 | 0.1 | 最低折扣 |
|
|
| max | number | 否 | 0.9 | 最高折扣 |
|
|
| strategy | 'psychological' \| 'clearance' \| 'uniform' | 否 | 'psychological' | 生成策略 |
|
|
|
|
**策略说明**:
|
|
|
|
| 策略 | 说明 | 适用场景 |
|
|
| ------------- | ------------------------ | -------- |
|
|
| psychological | 常见折扣点(8折、9折等) | 电商促销 |
|
|
| clearance | 大折扣区间(3-7折) | 清仓处理 |
|
|
| uniform | 均匀随机 | 测试数据 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "discount",
|
|
"generator": "discount",
|
|
"params": {
|
|
"min": 0.1,
|
|
"max": 0.9,
|
|
"strategy": "psychological"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 0.80, 0.90, 0.85, 0.95, 0.70
|
|
|
|
---
|
|
|
|
### 8. 库存 (stock)
|
|
|
|
**说明**: 生成真实分布的库存数据
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| -------- | --------------------------------- | ---- | ----------- | -------- |
|
|
| min | number | 否 | 0 | 最小库存 |
|
|
| max | number | 否 | 1000 | 最大库存 |
|
|
| strategy | 'realistic' \| 'hot' \| 'uniform' | 否 | 'realistic' | 生成策略 |
|
|
|
|
**策略说明**:
|
|
|
|
| 策略 | 说明 | 适用场景 |
|
|
| --------- | ------------------------ | -------- |
|
|
| realistic | 指数分布,大多数库存较少 | 通用商品 |
|
|
| hot | 低库存区间(0-50) | 热销商品 |
|
|
| uniform | 均匀随机 | 测试数据 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "stock",
|
|
"generator": "stock",
|
|
"params": {
|
|
"min": 0,
|
|
"max": 500,
|
|
"strategy": "realistic"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 23, 8, 156, 45, 12
|
|
|
|
---
|
|
|
|
## 技术数据生成器
|
|
|
|
### 1. UUID (uuid)
|
|
|
|
**说明**: 生成 UUID
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| ------- | ------------ | ---- | ------ | --------- |
|
|
| version | 'v4' \| 'v1' | 否 | 'v4' | UUID 版本 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "id",
|
|
"generator": "uuid",
|
|
"params": {
|
|
"version": "v4"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 550e8400-e29b-41d4-a716-446655440000
|
|
|
|
---
|
|
|
|
### 2. IPv4 地址 (ipv4)
|
|
|
|
**说明**: 生成 IPv4 地址
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| ------- | ------- | ---- | ------ | ------------ |
|
|
| private | boolean | 否 | false | 是否私有地址 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "ip",
|
|
"generator": "ipv4",
|
|
"params": {
|
|
"private": true
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 192.168.1.1, 10.0.0.1
|
|
|
|
---
|
|
|
|
### 3. URL (url)
|
|
|
|
**说明**: 生成 URL
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| -------- | ----------------- | ---- | ------------- | ---- |
|
|
| protocol | 'http' \| 'https' | 否 | 'https' | 协议 |
|
|
| domain | string | 否 | 'example.com' | 域名 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "website",
|
|
"generator": "url",
|
|
"params": {
|
|
"protocol": "https",
|
|
"domain": "shop.com"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: https://shop.com/product/123
|
|
|
|
---
|
|
|
|
## 基础类型生成器
|
|
|
|
### 1. 随机整数 (randomInt)
|
|
|
|
**说明**: 生成指定范围的随机整数
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| ------ | ------ | ---- | ------ | ------ |
|
|
| min | number | 是 | - | 最小值 |
|
|
| max | number | 是 | - | 最大值 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "age",
|
|
"generator": "randomInt",
|
|
"params": {
|
|
"min": 18,
|
|
"max": 60
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 25, 42, 18, 60
|
|
|
|
---
|
|
|
|
### 2. 随机浮点数 (randomFloat)
|
|
|
|
**说明**: 生成指定范围的随机浮点数
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| -------- | ------ | ---- | ------ | -------- |
|
|
| min | number | 是 | - | 最小值 |
|
|
| max | number | 是 | - | 最大值 |
|
|
| decimals | number | 否 | 2 | 小数位数 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "score",
|
|
"generator": "randomFloat",
|
|
"params": {
|
|
"min": 0,
|
|
"max": 100,
|
|
"decimals": 1
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 85.3, 42.7, 99.9
|
|
|
|
---
|
|
|
|
### 3. 随机字符串 (randomString)
|
|
|
|
**说明**: 生成指定长度的随机字符串
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| ------- | ------ | ---- | -------------- | ---------- |
|
|
| length | number | 是 | - | 字符串长度 |
|
|
| charset | string | 否 | 'alphanumeric' | 字符集 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "code",
|
|
"generator": "randomString",
|
|
"params": {
|
|
"length": 8,
|
|
"charset": "alphanumeric"
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: aB3kL9mN, xY7zW2pQ
|
|
|
|
---
|
|
|
|
### 4. 从列表选择 (fromList)
|
|
|
|
**说明**: 从选项列表中随机选择
|
|
|
|
**参数**:
|
|
|
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
| ------- | -------- | ---- | -------- | -------- |
|
|
| options | any[] | 是 | - | 选项列表 |
|
|
| weights | number[] | 否 | 均匀分布 | 权重 |
|
|
|
|
**示例**:
|
|
|
|
```json
|
|
{
|
|
"name": "category",
|
|
"generator": "fromList",
|
|
"params": {
|
|
"options": ["电子产品", "服装", "食品", "图书"],
|
|
"weights": [40, 30, 20, 10]
|
|
}
|
|
}
|
|
```
|
|
|
|
**生成结果**: 电子产品, 服装, 食品
|
|
|
|
---
|
|
|
|
## 生成器选择界面
|
|
|
|
### 界面设计
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────────┐
|
|
│ 选择生成器 │
|
|
├─────────────────────────────────────────────────────────────────────┤
|
|
│ │
|
|
│ 搜索: [搜索生成器... ] │
|
|
│ │
|
|
│ 分类筛选 │
|
|
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
|
│ │ 全部 │ │ 个人信息 │ │ 业务数据 │ │ 技术数据 │ │ 基础类型 │ │
|
|
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
|
|
│ │
|
|
│ 生成器列表 │
|
|
│ ┌───────────────────────────────────────────────────────────────┐ │
|
|
│ │ 个人信息 │ │
|
|
│ │ ┌─────────────────────────────────────────────────────────┐ │ │
|
|
│ │ │ 中文姓名 生成中文姓名,如张三 │ │ │
|
|
│ │ │ 邮箱地址 生成邮箱地址 │ │ │
|
|
│ │ │ 中国手机号 生成11位手机号 │ │ │
|
|
│ │ │ 身份证号 生成18位身份证号 │ │ │
|
|
│ │ │ 中文地址 生成中国地址 │ │ │
|
|
│ │ └─────────────────────────────────────────────────────────┘ │ │
|
|
│ │ │ │
|
|
│ └───────────────────────────────────────────────────────────────┘ │
|
|
│ │
|
|
└─────────────────────────────────────────────────────────────────────┘
|
|
```
|