DataReader
插件是专门提供用于开发和测试环境中,生产满足一定规则要求的数据的插件。
在实际开发和测试中,我们需要按照一定的业务规则来生产测试数据,而不仅仅是随机内容,比如身份证号码,银行账号,股票代码等。
诚然,网络上有相当多的专门的数据生产工具,其中不乏功能强大、性能也强悍。 但这些工具大部分是考虑到了数据生成这一段,而忽略了数据写入到目标端的问题,或者说有些考虑到了,但仅仅只考虑了一种或有限的几种数据库。
恰好 Addax 工具能够提供足够多的目标端写入能力,加上之前的已有的 streamReader 已经算是一个简单版的数据生成工具,因此在此功能上 增加一些特定规则,再利用写入端多样性的能力,自然就成为了一个较好的数据生成工具。
这里我把目前插件支持的规则全部列举到下面的例子中
=== "datareader2stream.json"
--8<-- "jobs/datareader.json"
保存上述内容到 job/datareader2stream.json
然后执行该任务,其输出结果类似如下:
--8<-- "output/datareader.txt"
column
的配置和其他插件的配置稍有不同,一个字段由以下配置项组成
配置项 | 是否必须 | 默认值 | 示例 | 说明 |
---|---|---|---|---|
value | 否 | 无 | Addax |
数据值,在某些情况下为必选项 |
rule | 否 | constant |
idCard |
数据生产规则,详细下面的描述 |
type | 否 | string |
double |
数据值类型 |
dateFormat | 否 | yyyy-MM-dd HH:mm:ss |
yyyy/MM/dd HH:mm:ss |
日期格式,仅在 type 为 date 时有效 |
该插件的字段配置核心是 rule
字段,它用来指示应该生成什么样的数据,并依据不同规则,配合其他配置选项来生产满足期望的数据。 当前 rule
的配置均为内置支持的规则,暂不支持自定义,以下详细说明
constant
是 rule
的默认配置,该规则意味着要生成的数据值由 value
配置项决定,其不做任何变更。比如
{
"value": "Addax",
"type": "string",
"rule": "constant"
}
表示该字段生产的数据值均为 Addax
incr
配置项的含义和 streamreader
插件中的 incr
含义一致,表示这是一个递增的数据生产规则,比如
{
"value": "1,2",
"rule": "incr",
"type": "long"
}
表示该字段的数据是一个长整形,数值从 1 开始,每次递增 2,也就是形成 1 开始,步长为 2 的递增数列。
该字段更详细的配置规则和注意事项,可以参考 streamreader 中的 incr
说明。
random
配置项的含义和 streamreader
插件中的 random
含义一致,表示这是一个递增的数据生产规则,比如
{
"value": "1,10",
"rule": "random",
"type": "string"
}
表示该字段的数据是一个长度为 1 到 10 (1 和 10 都包括)随机字符串。
该字段更详细的配置规则和注意事项,可以参考 streamreader 中的 random
说明。
规则名称 | 含义 | 示例 | 数据类型 | 说明 |
---|---|---|---|---|
address |
随机生成一条基本满足国内实际情况的地址信息 | 辽宁省兰州市徐汇区东山街176号 |
string | |
bank |
随机生成一个国内银行名称 | 华夏银行 |
string | |
company |
随机生成一个公司的名称 | 万迅电脑科技有限公司 |
string | |
creditCard |
随机生成一个信用卡卡号 | 430405198908214042 |
string | 16 位 |
debitCard |
随机生成一个储蓄卡卡号 | 6227894836568607 |
string | 19 位 |
email |
随机生成一个电子邮件地址 | ok2a@gmail.com |
string | ||
idCard |
随机生成一个国内身份证号码 | 350600198508222018 |
string | 18 位,负责校验规则,头 6 位编码满足行政区划要求 |
lat |
随机生成维度数据 | 48.6648764 |
double | 固定 7 位小数 ,也可以用latitude 表示 |
lng |
随机生成经度数据 | 120.6018163 |
double | 固定 7 位小数,也可以使用longitude 表示 |
name |
随机生成一个国内名字 | 池浩 |
string | 暂没考虑姓氏在国内的占比度 |
job |
随机生成一个国内岗位名称 | 系统工程师 |
string | 数据来源于招聘网站 |
phone |
随机生成一个国内手机号码 | 15292600492 |
string | 暂不考虑虚拟手机号 |
stockCode |
随机生成一个 6 位的股票代码 | 687461 |
string | 前两位满足国内股票代码编号规范 |
stockAccount |
随机生成一个 10 位的股票交易账户 | 0692522928 |
string | 完全随机,不满足账户规范 |
uuid |
随机生成一个 UUID 字符串 | bc1cf125-929b-43b7-b324-d7c4cc5a75d2 |
string | 完全随机,不满足账户规范 |
zipCode |
随机生产一个国内邮政编号 | 411105 |
long | 不完全满足国内邮政编号规范 |
注意:上述表格中的规则返回的数据类型是固定的,且不支持修改,因此 type
无需配置,配置的类型也会被忽略,因为数据生成来自内部规则,所以 value
也无需配置,配置的内容也会被忽略。