使用数据模板生成随机数据
使用 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": "w.uwkdyny@ghursbw.hn" }
//模板: { 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": "o.piipuc@mwtsykaq.si", "friends": { "username": "Timothy Lee", "age": 81, "email": "d.fuwnwshjd@ppyhmlb.info" } }
Name.first()和Name.last()等是预定义的方法,可以帮助你生成常用的数据,所有预定义方法见文末表格。 -
计数器
软件内部定义了一个名为
__COUNTER的计数器,如果您需要对消息进行计数,可使用此变量,例如://模板: { "id": Id.uuid(), "count": __COUNTER } //生成: { "id": "2F5B8D59-ecEd-dDFC-98D4-aA5cd3CDC771", "count": 0 }
所有可用的预定义方法
- 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 地址