Files
testing-tool/docs/test-data-generator/generators.md
T
雨霖铃 27c1cf37e3 chore: update .gitignore with common ignore patterns
- Add environment variable files (.env, .env.local, .env.*.local)
- Add build output directories (dist/, build/)
- Add test coverage directory (coverage/)
- Add IDE workspace files (*.code-workspace)
- Add TypeScript build info files (*.tsbuildinfo, *.tsxbuildinfo)
- Remove docs/* to track documentation files
2026-06-05 22:53:39 +08:00

12 KiB

生成器库

分类概览

分类 生成器数量 说明
👤 个人信息 5 个 中文姓名、邮箱、手机号等
💼 业务数据 4 个 订单号、价格、日期等
🔧 技术数据 3 个 UUID、IP地址、URL
📝 基础类型 4 个 整数、浮点数、字符串等
总计 16 个

👤 个人信息生成器

1. 中文姓名 (chineseName)

说明: 生成中文姓名,如张三、李四

参数:

参数名 类型 必填 默认值 说明
surnamePool string | string[] 百家姓前100个 姓氏池
givenNameLength { min: number, max: number } { min: 1, max: 2 } 名字长度范围

示例:

{
  "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' 用户名风格

示例:

{
  "name": "email",
  "generator": "email",
  "params": {
    "domains": ["qq.com", "163.com"],
    "nameStyle": "pinyin"
  }
}

生成结果: zhangwei@qq.com, lina@163.com


3. 中国手机号 (chinesePhone)

说明: 生成 11 位中国手机号

参数:

参数名 类型 必填 默认值 说明
prefix string[] 常见手机号前缀 手机号前缀

示例:

{
  "name": "phone",
  "generator": "chinesePhone",
  "params": {
    "prefix": ["138", "139", "150", "151"]
  }
}

生成结果: 13812345678, 15087654321


4. 身份证号 (idCard)

说明: 生成 18 位中国身份证号

参数:

参数名 类型 必填 默认值 说明
region string 随机 地区码

示例:

{
  "name": "idCard",
  "generator": "idCard",
  "params": {
    "region": "110101"
  }
}

生成结果: 110101199001011234


5. 中文地址 (chineseAddress)

说明: 生成中国地址

参数:

参数名 类型 必填 默认值 说明
level 'full' | 'province' | 'city' 'full' 详细程度

示例:

{
  "name": "address",
  "generator": "chineseAddress",
  "params": {
    "level": "full"
  }
}

生成结果: 北京市朝阳区建国路88号


💼 业务数据生成器

1. 订单号 (orderId)

说明: 生成订单号

参数:

参数名 类型 必填 默认值 说明
prefix string 'ORD' 前缀
dateIncluded boolean true 是否包含日期

示例:

{
  "name": "orderId",
  "generator": "orderId",
  "params": {
    "prefix": "ORD",
    "dateIncluded": true
  }
}

生成结果: ORD20240115001, ORD20240115002


2. 价格 (price)

说明: 生成价格,保留 2 位小数

参数:

参数名 类型 必填 默认值 说明
min number 0.01 最小值
max number 9999.99 最大值
currency 'CNY' | 'USD' | 'EUR' 'CNY' 货币类型

示例:

{
  "name": "amount",
  "generator": "price",
  "params": {
    "min": 10,
    "max": 5000,
    "currency": "CNY"
  }
}

生成结果: 299.00, 1599.50, 0.01


3. 日期时间 (date)

说明: 生成日期时间

参数:

参数名 类型 必填 默认值 说明
format string 'YYYY-MM-DD HH:mm:ss' 日期格式
min string '2020-01-01' 最早日期
max string 当前日期 最晚日期

示例:

{
  "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[] 均匀分布 各选项权重

示例:

{
  "name": "status",
  "generator": "status",
  "params": {
    "options": ["pending", "paid", "shipped", "completed"],
    "weights": [30, 40, 20, 10]
  }
}

生成结果: pending, paid, shipped, completed


🔧 技术数据生成器

1. UUID (uuid)

说明: 生成 UUID

参数:

参数名 类型 必填 默认值 说明
version 'v4' | 'v1' 'v4' UUID 版本

示例:

{
  "name": "id",
  "generator": "uuid",
  "params": {
    "version": "v4"
  }
}

生成结果: 550e8400-e29b-41d4-a716-446655440000


2. IPv4 地址 (ipv4)

说明: 生成 IPv4 地址

参数:

参数名 类型 必填 默认值 说明
private boolean false 是否私有地址

示例:

{
  "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' 域名

示例:

{
  "name": "website",
  "generator": "url",
  "params": {
    "protocol": "https",
    "domain": "shop.com"
  }
}

生成结果: https://shop.com/product/123


📝 基础类型生成器

1. 随机整数 (randomInt)

说明: 生成指定范围的随机整数

参数:

参数名 类型 必填 默认值 说明
min number - 最小值
max number - 最大值

示例:

{
  "name": "age",
  "generator": "randomInt",
  "params": {
    "min": 18,
    "max": 60
  }
}

生成结果: 25, 42, 18, 60


2. 随机浮点数 (randomFloat)

说明: 生成指定范围的随机浮点数

参数:

参数名 类型 必填 默认值 说明
min number - 最小值
max number - 最大值
decimals number 2 小数位数

示例:

{
  "name": "score",
  "generator": "randomFloat",
  "params": {
    "min": 0,
    "max": 100,
    "decimals": 1
  }
}

生成结果: 85.3, 42.7, 99.9


3. 随机字符串 (randomString)

说明: 生成指定长度的随机字符串

参数:

参数名 类型 必填 默认值 说明
length number - 字符串长度
charset string 'alphanumeric' 字符集

示例:

{
  "name": "code",
  "generator": "randomString",
  "params": {
    "length": 8,
    "charset": "alphanumeric"
  }
}

生成结果: aB3kL9mN, xY7zW2pQ


4. 从列表选择 (fromList)

说明: 从选项列表中随机选择

参数:

参数名 类型 必填 默认值 说明
options any[] - 选项列表
weights number[] 均匀分布 权重

示例:

{
  "name": "category",
  "generator": "fromList",
  "params": {
    "options": ["电子产品", "服装", "食品", "图书"],
    "weights": [40, 30, 20, 10]
  }
}

生成结果: 电子产品, 服装, 食品


生成器选择界面

界面设计

┌─────────────────────────────────────────────────────────────────────┐
│  🔧 选择生成器                                                       │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  🔍 搜索: [搜索生成器...                                          ] │
│                                                                     │
│  📁 分类筛选                                                        │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐      │
│  │ 全部    │ │ 个人信息 │ │ 业务数据 │ │ 技术数据 │ │ 基础类型 │      │
│  └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘      │
│                                                                     │
│  📋 生成器列表                                                       │
│  ┌───────────────────────────────────────────────────────────────┐ │
│  │  👤 个人信息                                                   │ │
│  │  ┌─────────────────────────────────────────────────────────┐ │ │
│  │  │ 👤 中文姓名        生成中文姓名,如张三                   │ │ │
│  │  │ 📧 邮箱地址        生成邮箱地址                          │ │ │
│  │  │ 📱 中国手机号      生成11位手机号                        │ │ │
│  │  │ 🆔 身份证号        生成18位身份证号                      │ │ │
│  │  │ 🏠 中文地址        生成中国地址                          │ │ │
│  │  └─────────────────────────────────────────────────────────┘ │ │
│  │                                                               │ │
│  └───────────────────────────────────────────────────────────────┘ │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘