1、工具使用场景

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

1.1 后端开发
新建表后,需要构造数据库测试数据,生成接口数据提供给前端使用。

1.2数据库性能测试
生成大量测试数据,测试数据库性能

1.3流数据测试
针对kafka流数据,需要不断定时生成测试数据写入kafka

2、安装流程

  • 安装python
  • 安装pip install datafaker
  • 更新到最新版本:pip install datafaker --upgrade
  • 卸载工具:pip uninstall datafaker

如果是python2,需要安装MySQLdb

如果是python3,则安装pymysql,并在datafaker目录下init.py中添加以下两行

import pymysql
pymysql.install_as_MySQLdb()

3、datafaker使用

3.1 新建meta.txt文件,将对应的表元数据写入

id||int||自增id[:inc(id,1)]
name||varchar(20)||学生名字
school||varchar(20)||学校名字[:enum(file://names.txt)]
nickname||varchar(20)||学生小名[:enum(鬼泣, 高小王子, 歌神, 逗比)]
age||int||学生年龄[:age]
class_num||int||班级人数[:int(10, 100)]
score||decimal(4,2)||成绩[:decimal(4,2,1)]
phone||bigint||电话号码[:phone_number]
email||varchar(64)||家庭网络邮箱[:email]
ip||varchar(32)||IP地址[:ipv4]
address||text||家庭地址[:address]

3.2命令行输入

datafaker rdb mysql+mysqldb://user:password@localhost:3306/dw?charset=utf8 user 500  --meta meta.txt
#user是测试数据导入的表 需事先创建好
#500是测试数据生成量,可配置

3.3从本地文件meta.txt中读取元数据,以,分隔符构造10条数据,打印在屏幕上不会在数据插入

$ datafaker rdb mysql+mysqldb://root:root@localhost:3600/test?charset=utf8 stu 10 --outprint --meta meta.txt --outspliter ,,

3.4 写hive:产生1000条数据写入hive的test库,stu表中

其中yarn为用户名,需要hive版本支持acid,不然请生成本地文件,然后上传到hdfs

datafaker hive hive://yarn@localhost:10000/test stu 1000 --meta data/hive_meta.txt

3.5 写文件:产生10条json格式数据写入到/home目录out.txt中


datafaker file /home out.txt 10 --meta meta.txt --format json

3.6 写kafka:从本地meta.txt参数数据,以1秒间隔输出到kafka的topic hello中


$ datafaker kafka localhost:9092 hello 1 --meta meta.txt --interval 1
{"school": "\u4eba\u548c\u4e2d\u5fc3", "name": "\u5218\u91d1\u51e4", "ip": "192.20.103.235", "age": 9, "email": "chaokang@gang.cn", "phone": "13256316424", "score": 3.45, "address": "\u5e7f\u4e1c\u7701\u5b81\u5fb7\u5e02\u6d54\u9633\u5468\u8defu\u5ea7 990262", "class_num": 24, "nickname": "\u9017\u6bd4", "id": 1}
{"school": "\u4eba\u548c\u4e2d\u5fc3", "name": "\u6768\u4e3d", "ip": "101.129.18.230", "age": 3, "email": "min60@hv.net", "phone": "18183286767", "score": 22.16, "address": "\u8fbd\u5b81\u7701\u592a\u539f\u5e02\u53cb\u597d\u6c55\u5c3e\u8defG\u5ea7 382777", "class_num": 30, "nickname": "\u6b4c\u795e", "id": 2}
{"school": "\u6e05\u534e\u4e2d\u5b66", "name": "\u8d75\u7ea2", "ip": "192.0.3.34", "age": 9, "email": "fxiao@gmail.com", "phone": "18002235094", "score": 48.32, "address": "\u5e7f\u897f\u58ee\u65cf\u81ea\u6cbb\u533a\u65ed\u5e02\u6c88\u5317\u65b0\u6731\u8defc\u5ea7 684262", "class_num": 63, "nickname": "\u6b4c\u795e", "id": 3}
{"school": "\u6e05\u534e\u4e2d\u5b66", "name": "\u5f20\u7389\u6885", "ip": "198.20.50.222", "age": 3, "email": "xiulanlei@cw.net", "phone": "15518698519", "score": 85.96, "address": "\u5b81\u590f\u56de\u65cf\u81ea\u6cbb\u533a\u6d69\u53bf\u767d\u4e91\u4e4c\u9c81\u6728\u9f50\u8857s\u5ea7 184967", "class_num": 18, "nickname": "\u9017\u6bd4", "id": 4}
{"school": "\u732a\u573a", "name": "\u674e\u6842\u5170", "ip": "192.52.195.184", "age": 8, "email": "fxiao@konggu.cn", "phone": "18051928254", "score": 97.87, "address": "\u9ed1\u9f8d\u6c5f\u7701\u54c8\u5c14\u6ee8\u53bf\u6c38\u5ddd\u6d2a\u8857E\u5ea7 335135", "class_num": 46, "nickname": "\u9ad8\u5c0f\u738b\u5b50", "id": 5}
{"school": "\u4eba\u548c\u4e2d\u5fc3", "name": "\u5434\u60f3", "ip": "192.42.234.178", "age": 3, "email": "uliang@yahoo.com", "phone": "14560810465", "score": 6.32, "address": "\u5b81\u590f\u56de\u65cf\u81ea\u6cbb\u533a\u516d\u76d8\u6c34\u5e02\u5357\u6eaa\u7f57\u8857M\u5ea7 852408", "class_num": 12, "nickname": "\u9b3c\u6ce3", "id": 6}
^Cgenerated records : 6
insert records : 6
time used: 6.285 s

json嵌套或任意数据结构(可不是jon)

datafaker kafka localhost:9092 hello 10 --metaj meta.txt

请使用–metaj指定元数据文件meta.txt:

{"name": [:name],"age": [:age],"school": {"sch_name": [:enum(file://../data/names.txt)],"sch_address": [:address],"scores": [{"class": [:enum(Math, English)],"score": [:decimal(4,2,1)]},{"class": [:enum(Chinese, Computer)],"score": [:decimal(4,2,1)]}]}
}

datafaker会替换meta.txt内容中带标记的字符串,并保留原格式,包括tab和空格,产生如下结果:

{"name": 驷俊,"age": 95,"school": {"sch_name": 旧大院,"sch_address": 湖北省济南市上街宁德路I座 557270,"scores": [{"class": Math,"score": 83.28},{"class": Computer,"score": 52.37}]}
}

如果要使用正确格式的json,将元数据文件内容压缩

{"name":[:name],"age":[:age],"school":{"sch_name":[:enum(file://../data/names.txt)],"sch_address":[:address],"scores":[{"class":[:enum(Math,English)],"score":[:decimal(4,2,1)]},{"class":[:enum(Chinese,Computer)],"score":[:decimal(4,2,1)]}]}}

3.7 写hbase


datafaker hbase localhost:9090 test-table 10 --meta data/hbase.txt

需要开启hbase thrift服务,不能为thrift2
例子中,创建一张表test-table, 列族为Cf
元数据文件hbase.txt内容为

rowkey||varchar(20)||sdflll
Cf:name||varchar(20)||学生名字
Cf:age||int||学生年龄[:age]

其中第一行必须为rowkey, 可带参数,rowkey(0,1,4)表示将rowkey值和后面第一列,第五列值用_连接

后面行为列族中的列名,可以创建多个列族

3.8 写入ES


datafaker es localhost:9200 example1/tp1 100 --auth elastic:elastic --meta meta.txt

其中localhost:9200为es的连接方式,多个host用逗号分隔。如host1:9200,host2:9200

example1/tp1为index和type,以/分隔

elastic:elastic为账号和密码,若没有,则可不带该参数

3.9 数据写入oracle


datafaker rdb oracle://root:root@127.0.0.1:1521/helowin stu 10 --meta meta.txt

sqlalchemy连接串必须为oracle:形式

测试数据生成工具datafaker使用相关推荐

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

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

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

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

  3. 数据生成工具——datafaker

    说明:确保本机安装了python环境,本案例为mysql数据库造数据,其他数据库请参考此种方法即可 第一步:在cmd命令下,运行 pip install datafaker ,安装datafaker包 ...

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

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

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

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

  6. 论文: 基于智能优化算法的测试数据生成综述

    缘由: 最近一直在看智能算法,然后进行了在测试函数上的实验,遇到问题. (1)测试函数 不是现实的问题,单纯的在测试函数 上进行一遍遍的比较,看不到具体的用途, 他的结果在我看来反应的 只是一个指标值 ...

  7. Web 开发人员必备的随机 JSON 数据生成工具

    在 Web 开发中,经常会需要一些测试数据来测试接口或者功能时候正确.JSON Generator 就是这样一款生成随机 JSON 数据的在线工具,Web 开发人员必备,记得收藏和分享啊. 您可能感兴 ...

  8. 数据库 测试数据生成_我们的测试数据生成器如何使假数据看起来真实

    数据库 测试数据生成 by Tom Winter 汤姆·温特(Tom Winter) 我们的测试数据生成器如何使假数据看起来真实 (How our test data generator makes ...

  9. 代码生成工具随笔(2) ---我的生成工具

    目前有很多代码生成工具,很多做得很好,我在上一篇关于代码生成工具的随笔(代码生成工具随笔(1) ---关于代码生成器 )中,大概介绍了一些代码生成工具的现状,也得到很多人的关注. 由于本人很早就在代码 ...

最新文章

  1. 《游戏设计师修炼之道:数据驱动的游戏设计》一2.8小结
  2. linux网络编程之socket(十一):套接字I/O超时设置方法和用select实现超时
  3. 2×3卡方检验prism_分类变量的相关性:五分钟掌握卡方检验「从理论到Python实战」...
  4. Flowable 6.4.1数据库自动建表错误 SQLSyntaxErrorException: Table 'flowable.act_id_property' doesn't exist
  5. 用 less 自制 bs 栅格布局
  6. Flask模板参数传值的方法
  7. vscode运行html的插件_vscode前端常用插件推荐,搭建JQuery、Vue等开发环境
  8. [原]防火墙安装配置(日志)
  9. for循环的使用—打印输出各种图形
  10. 项目服务器装系统,项目1服务器系统的安装.ppt
  11. 世界CEO薪酬排行榜第一位高达690 亿元
  12. 基于VB.Net的FTP操作的类(可以显示进度条)
  13. Linux系统Anaconda下载安装教程
  14. 基于单片机的导盲拐杖设计
  15. 荣耀pro无线路由器配置成无线交换机
  16. matlab图论软件包,MATLAB_bgl_toolbox 图论通用工具箱总汇:GraphTheory for St 247万源代码下载- www.pudn.com...
  17. No Matter What
  18. 微软服务器dda,Windows 10 版本2004 微软官方原版镜像
  19. (修订)准备互联网校招,你需要知道的一些事
  20. 安装Ubuntu 16.04后的系统设置和软件安装(搜狗输入法、Chrome、网易云音乐等)

热门文章

  1. 黑牛外汇交易系统简介-------稳定盈利的外汇交易系统
  2. IntelliJ IDEA 2020.2 稳定版发布
  3. python五子棋_python 五子棋
  4. 强大视频分割软件:Boilsoft Video Splitter绿色便携版
  5. 分享一个免费获取图片外链的经验
  6. 10-Mar-2021 17:31日期怎么转换
  7. TMS320C6678开发笔记1-3---Rebuilding The PDK
  8. 全球主流智能手环传感器模块拆解大揭秘
  9. android圆形波纹按钮,android自定义View——圆形波纹扫描效果
  10. 第二章、URL与资源