使用数据模板生成随机数据
由于作者水平有限,失误在所难免,如有任何意见或建议,请不吝指正。
使用 Kafka Assistant、RabbitMQ Assistant、Pulsar Assistant 或 MQTT Assistant 发送消息时,通过数据模板,您可以为任何开发、测试或演示目的生成大量、异构、真实的数据。 以下是数据模板的详细介绍。
数据模板是JavaScript中的直接量,包括字符串直接量、数字直接量、布尔值直接量、对象直接量等。
-
字符串直接量
//模板: "MQTT is a lightweight network protocol" //生成: "MQTT is a lightweight network protocol"
//模板: `${1+1} = 2` //生成: "2 = 2"
其中//模板: `${Name.first()} - ${Name.last()}` //生成: "Michelle - Allen"
Name.first()
和Name.last()
是预定义的方法,可以帮助你生成常用的数据,所有预定义方法见文末表格。总之,你可以使用JavaScript允许的任何字符串直接量。 -
数字直接量
//模板: 12 //生成: 12
//模板: 1+2 //生成: 3
-
最常用的是对象直接量
//模板: { "id": Id.uuid(), "username": `${Name.first()} ${Name.last()}`, "age": Basic.int(20, 90), "address": `${Address.county()} ${Address.province()} ${Address.city()}`, "email": Web.email() } //生成: { "id": "2F5B8D59-ecEd-dDFC-98D4-aA5cd3CDC771", "username": "Karen Davis", "age": 30, "address": "渝北区 云南省 张家界市", "email": "[email protected]" }
//模板: { x: 1.0, y: 1.9, get r() { return Math.sqrt(this.x * this.x + this.y * this.y); } } //生成: { "x": 1, "y": 1.9, "r": 2.1470910553583886 }
其中//模板: { "id": Id.uuid(), "username": `${Name.first()} ${Name.last()}`, "age": Basic.int(20, 90), "address": `${Address.county()} ${Address.province()} ${Address.city()}`, "email": Web.email(), "friends": { "username": `${Name.first()} ${Name.last()}`, "age": Basic.int(20, 90), "email": Web.email(), } } //生成: { "id": "391fFBB1-Fe1B-E6Ec-929e-4A8c8c58CfdF", "username": "Lisa Lopez", "age": 43, "address": "沁水县 辽宁省 庆阳市", "email": "[email protected]", "friends": { "username": "Timothy Lee", "age": 81, "email": "[email protected]" } }
Name.first()
和Name.last()
等是预定义的方法,可以帮助你生成常用的数据,所有预定义方法见文末表格。
所有可用的预定义方法
- Basic
Basic.boolean()
返回一个随机的布尔值Basic.bool()
返回一个随机的布尔值Basic.natural()
返回一个随机的自然数Basic.integer()
返回一个随机的整数Basic.int()
返回一个随机的整数Basic.float()
返回一个随机的浮点数Basic.character()
返回一个随机字符Basic.char()
返回一个随机字符Basic.string()
返回一个随机字符串Basic.str()
返回一个随机字符串Basic.range(start, stop, step)
返回一个整型数组
- Address
Address.region()
随机生成一个大区Address.province()
随机生成一个(中国)省(或直辖市、自治区、特别行政区)Address.city()
随机生成一个(中国)市Address.county()
随机生成一个(中国)县Address.zip()
随机生成一个邮政编码(六位数字)
- Color
Color.color()
随机生成一个颜色,格式为 #RRGGBBColor.hex()
随机生成一个颜色,格式为#DAC0DEColor.rgb()
随机生成一个颜色,格式为rgb(128,255,255)Color.rgba()
随机生成一个颜色,格式为rgba(128,255,255,0.3)Color.hsl()
随机生成一个颜色,格式为hsl(300,80%,90%)
- DateTime
DateTime.date()
返回一个随机的日期字符串DateTime.time()
返回一个随机的时间字符串DateTime.datetime()
返回一个随机的日期和时间字符串DateTime.now()
返回当前的日期和时间字符串
- Id
Id.d4()
投掷一枚4个面的骰子Id.d6()
6个面Id.d8()
8个面Id.d12()
12个面Id.d20()
20个面Id.d100()
100个面Id.guid()
随机生成一个 GUIDId.uuid()
随机生成一个 UUIDId.id()
随机生成一个 18 位身份证
- Name
Name.first()
随机生成一个常见的英文名Name.last()
随机生成一个常见的英文姓Name.name()
随机生成一个常见的英文姓名Name.cfirst()
随机生成一个常见的中文姓Name.clast()
随机生成一个常见的中文名Name.cname()
随机生成一个常见的中文姓名
- Text
Text.paragraph()
随机生成一段英文文本Text.cparagraph()
随机生成一段中文文本Text.sentence()
随机生成一个句子,第一个单词的首字母大写Text.csentence()
随机生成一个中文句子Text.word()
随机生成一个单词Text.cword()
随机生成一个或多个汉字Text.title()
随机生成一句标题,其中每个单词的首字母大写Text.ctitle()
随机生成一句中文标题
- Web
Web.url()
随机生成一个 URLWeb.protocol()
随机生成一个 URL 协议Web.domain()
随机生成一个域名Web.tld()
随机生成一个顶级域名Web.email()
随机生成一个邮件地址Web.ip()
随机生成一个 IP 地址