一、工具说明

datafaker是一个大批量测试数据和流测试数据生成工具,兼容python2.7和python3.4+。

架构图完整的画出了工具的执行过程,从图可知工具经历了5个模块:

  • 参数解析器。解析用户从终端命令行输入的命令。
  • 元数据解析器。用户可以指定元数据来自本地文件或者远程数据库表。解析器获取到文件内容后按照规则将文本内容解析成表字段元数据和数据构造规则。
  • 数据构造引擎。构造引擎根据元数据解析器产生的数据构造规则,模拟产生不同类型的数据。
  • 数据路由。根据不同的数据输出类型,分成批量数据和流数据生成。流数据可指定产生频率。然后将数据转换成用户指定的格式输出到不同数据源中。
  • 数据源适配器。适配不同数据源,将数据导入到数据源中。

二、工具功能

软件开发测试过程,经常需要测试数据。这些场景包括:

  • 后端开发新建表后,需要构造数据库测试数据,生成接口数据提供给前端使用--开发mock数据
  • 数据库性能测试生成大量测试数据,测试数据库性能--性能mock数据
  • 流数据测试针对kafka流数据,需要不断定时生成测试数据写入kafka--kafka流式数据mock

常用方法是人工手动造几条数据写入数据库,这种方法带来的弊端是

  • 浪费工时

针对表的不同数据类型的字段,需要构造不同数据

  • 数据量小

如果需要构造大量数据,手动造数据无能为力

  • 不够准确

比如需要构造邮箱(满足一定格式),电话号码(确定的数字位数),ip地址(固定格式),年龄(不能为负数,有大小范围)等。这些测试数据有一定的限制或规律,手工构造可能不能满足数据范围或一些格式要求而导致后端程序报错

  • 多表关联

手动造的数据量较小,在多个表中用主键不一定能关联上,或者关联出来没数据

  • 动态随机写入

比如针对流数据,需要随机每隔几秒钟写入kafka。或者动态随机插入mysql,手工操作相对麻烦,而且不好统计写入数据条数

datafaker是一个多数据源测试数据构造工具,可以模拟产生大部分常用数据类型,具有以下功能

  • 多种数据类型:包括常见数据库字段类型(整型、浮点型、字符型)、自定义类型(IP地址,邮箱,身份证号码等)
  • 模拟多表关联数据:通过制定某些字段为枚举类型(从指定的数据列表里面随机选择),这样在数据量多的情况下能保证多表Join能关联上,查询到数据
  • 支持批数据和流数据生成,可指定数据产生间隔时间;
  • 支持多种数据输出方式,包括屏幕打印、文件和远程数据源;
  • 支持多种数据源。目前支持关系型数据库、Hive、Kafka、Hbase、ES。后面将扩展到Mongo,Kudu等数据源;
  • 可指定输出格式,目前支持text,json。

三、安装说明

依赖python和pip

  • 方法1 下载安装

下载源码压缩包,解压后,到datafaker目录执行:python setup. py install

  • 方法2:直接安装

pip install datafaker

安装是否成功,可直接运行datafaker --version是否显示正确,无其他报错

不同数据库需要安装不同python包,见GitHub。

四、使用示例

参考GitHub:gangly/datafaker

  • 版本信息及帮助参考
>datafaker --version
>datafaker --help

  • 直接从本地mysql的test数据库的stu表中读取元数据,并构造10条数据写入stu表
datafaker mysql+mysqldb://root:root@localhost:3600/test stu 10

  • 从本地文件meta.txt中读取元数据,以,,分隔符构造10条数据,打印在屏幕上
datafaker rdb mysql+mysqldb://root:root@localhost:3600/test stu 10 --outprint --meta.txt --outspliter ',,'

  • 从本地data/hive_meta.txt文件中读取元数据,产生1000条数据写入hive的test库,stu表中
datafaker hive hive://yarn@localhost:10000/test stu 1000 --meta data/hive_meta.txt

  • 从meta.txt中读取元数据,产生10条json格式数据写入到/home目录out.txt
datafaker file /home out.txt 10 --meta meta.txt --format json

  • 从本地meta.txt参数数据,以1s间隔输出到kafka的topic hello中
datafaker kafka localhost:9092 hello 1 -meta meta.txt --outprint

  • 数据写入hbase
datafaker hbase localhost:9090 test-table 10 --meta data/hbase.txt

  • 数据写入es
datafaker es localhost:9200 example1/tp1 100 --auth elastic:elastic --meta meta.txt

五、命令参数

参考GitHub

六、其他说明及参考文档

数据构造规则

注意事项(大批量构造数据、Python与系统支持情况、关系型数据库支持情况)

参考github

https://toutiao.io/k/ui1tbgc

verilog将像素数据写入txt_【测试工具】测试数据生成工具datafaker相关推荐

  1. verilog将像素数据写入txt_FPGA仿真必备(1)——Matlab生成.mif文件/.txt文件

    1. mif 文件 MIF(Memory Initialization File),内存初始化文件,用于 Altera / Intel 的 FPGA 器件的 RAM 或 ROM 配置. 例如: (1) ...

  2. datafactory生成mysql数据_测试数据生成工具DataFactory的使用

    DATA FACTORY的使用 Data Factor y是一个数据库测试数据生成工具. Data Factory主要可以利用在以下两个方面:1.按照数据表中要求数据的格式,快速产生标准或不标准的测试 ...

  3. 测试数据生成工具datafaker使用

    1.工具使用场景 在软件开发测试过程,经常需要测试数据.这些场景包括: 1.1 后端开发 新建表后,需要构造数据库测试数据,生成接口数据提供给前端使用. 1.2数据库性能测试 生成大量测试数据,测试数 ...

  4. 测试账号在线生成工具

    工具来由: 前段时间有朋友给我邮件发消息能不能写一个在线测试账号生成工具,因为他们的工作当中经常要使用测试账号去测试或者是开发功能,当我收到邮件后,我回复了这位朋友,当然可以啊,我做完这个工具后也第一 ...

  5. 大数据测试数据生成工具v1.0 --百万级别一键导出TXT,JSON,MYSQL 。---HIVE专属工具

    目录 生成演示生成5百万条记录(4个字段): 一次最大最好在5百万以内,在多就分开生成,主键可以接上上一个 总共生成了3次,一共400MB的txt 使用教程: 1:先安装python环境(有pytho ...

  6. 亲测可用:两个在线的测试数据生成工具

    文章目录 generatedata4.com onlinedatagenerator.com 大家好!我是只谈技术不剪发的 Tony 老师. 我们在进行软件开发和数据库性能测试时,经常需要使用到大量的 ...

  7. 将列表(含字典)数据写入Excel

    将Excel数据写入字典 cmd小测试 打开cmd 转入Excel所在文件夹下再打开python,步骤如下: F:进入F盘 cd 打开F盘下子目录 导入所需要的库pandas df = pd.read ...

  8. datafaker-测试数据生成工具使用

    参考文章 一.前言 1.什么是datafaker? datafaker是一个大批量测试数据和流测试数据生成工具,兼容python2.7和python3.4+,欢迎下载使用.github地址为: htt ...

  9. 千兆以太网PHY芯片调试-88E1111(RGMII接口-数据收发ECHO测试) Verilog实现python测试

    千兆以太网PHY芯片调试-基于RGMII接口的88E1111(数据收发ECHO测试) 先放结果: Py测试代码: import socket #网络通信 TCP,UDP DST_IP = '192.1 ...

  10. 【Java-IO】File、搜索删除剪切、字符集、字符编码、字节流、将内存中的数据写入文件、字符流、缓冲流、Scanner、格式化输出、数据流、对象流、序列化与反序列化、Files工具类

    IO 文章目录 IO 简介 File 分隔符.大小写 常用方法 练习:搜索.删除.剪切 字符集(Character Set) 字符编码(Character Encoding) 字符编码比较 乱码 字节 ...

最新文章

  1. c语言既适合于开发,C语言试题及答案 (1)
  2. 完全图解RNN、RNN变体、Seq2Seq、Attention机制
  3. 探访火车票“守护者”:一卷票据值百万 压力大到失眠
  4. DCMTK:搜索助手类的测试程序
  5. python英文字符串排序_Python根据内嵌的数字将字符串排序(sort by numbers embedded in strings)...
  6. 【Git、GitHub、GitLab】二 Git基本命令之建立Git仓库
  7. 信息学奥赛C++语言:数字反转
  8. matlab经典例题及答案,matLAB经典例题及答案.pdf
  9. 服务器能不能用普通硬盘,服务器硬盘与普通硬盘之间的区别
  10. 科创人·优锘科技COO孙岗:错误问题找不到正确答案,求索万物可视的大美未来
  11. 生成数据库结构字段SQL语句
  12. LED发光二极管限流电阻的计算
  13. 想进国企央企,一定要保存好所有工作履历证明材料,包括劳动合同、离职证明、社保记录等!...
  14. Python 1~500 求和(循环遍历求和,高斯求和,定义函数求和)
  15. 从破解虫脑到攻克人脑:一条“永生之路”的新赛道?
  16. 1024Byte(字节)=1KB
  17. 8421码,5421码,2421码,余三码之间的区别
  18. 汽车转向角度和转向半径的关系
  19. 关于echarts数据二次渲染不成功
  20. 锐捷VSU配置实例(附拓扑图)

热门文章

  1. iOS比较当前日期与指定日期大小
  2. 《企业软件交付:敏捷与高效管理精要》——2.5 项目执行结果
  3. git拉取代码报错:Permission denied (publickey) 解决方案
  4. PHP语言 -- 封装连接数据库类
  5. leetcode day7
  6. 微软工程师主讲的SqlServer2005视频教程
  7. Java网络编程之实现HTTP断点续传下载工具(附源代码)
  8. java的ArrayList分析
  9. 华为桌面云中怎么安装mysql8_安装MySQL8.0.18步骤以及可视化工具的连接问题。
  10. 微信小程序微商城(二):电商首页轮播、分类导航和新品特卖实现