前提

在开发项目时候,前期测试期间,总需要或多或少的添加一些测试数据,测试程序运行是否正常。这个时候往往我们是手动添加数据,一条一条的数据添加,更多的时候总觉得这个测试数据不够用,手动添加测试数据也是一个很繁琐的过程。

产品构想

我自己也是一名工作十年只会造轮子的后端菜鸟程序员,工作十年测试数据都是手动一条一条的添加上去,数据用了,不想在添加数据就把之前的数据改个状态重新来。但为了更好的测试,我们需要一个业务上不同时期上都有自己的数据,这样更能反应测试过程。

百度了一下,发现这类工具几乎没有,几乎空白,倒是发现了鱼皮开发的一个工具也开源了,但我自己想自己开发一个小工具,黑鸣SQL数据生成

产品架构

后端:springboot+mybatis-plus+mysql

前端:layui

自己偏向后端开发,是初衷就是给后端程序员设计的前端框架,一个人独立开发前后端觉得完全没必要进行完全的前后端分离,现在一些小应用,采用,前端一些数据驱动,一个数据项的展示都是配置化的,在公司内和前端进行数据对接时,发现之前一个人在指定时间内可以开发完的,采用前后端一起开发,需要沟通,对数据结构,联调测试,反而开发时间长。又来一个数据层级也不能分级。实在觉得一个简单的开发搞得太复杂了。感觉独立开发会是未来的趋势。

当然不同应用不同业务场景情况下,优缺点不同。不可否认前后端分离的优点。

工具的基本操作

生成数据,为了通用,根据具体的数据库来生成对应的sql最为合适,mysql又是中小企业用的最多的一个数据库,有免费的自然用免费的,而且能满足绝大数需求,何乐而不为。

生成的结果决定了,那就是生成的过程问题,无非是,数据库,数据表,数据字段。数据库让用户自己新建一个名称,数据表和数据字典直接通过ddl建表语句解析得到相关数据,也是很方便

数据的生成方式

那最后一个问题就是如何生成具体的数据问题了。也就是生成方式

随机,我想这是最普遍的最能想到的一个数据生成方式了,支持雪花唯一ID、姓名、手机号码、电话号码、身份证、邮箱、布尔、UUID、省区域值、市区域值、区县区域值、省名称、市名称、区县名称、IPV4、银行卡号、银行名称、、公司名称、日期、时间、详细地址

自增,这个也比较常用,很多业务数据库的id可能是用的自增方式,但不推荐使用,除非有具体业务需要,但相同的数据权限要控制好

固定,在一些字段上,我们可能需要特定的标识,例如字段,比较固定,比如给一个用户member_id赋值,等等

正则,为了满足一些情况,我想使用简单的正则反向解析,可以更轻松的生成数据结果,比如一个业务有一个类型具有多个值,可以写个正则,将值写进去,就可以在这些值内随机出具体一个类型

外键,一个项目业务上是有多个表组成的,表与表之间有一对多,一对一,多对一,多对多的关系存在,为了更好的测试一个完成的业务数据,我们需要在生成数据的时候将不同表的数据进行挂钩起来。

生成教程

1>注册登录

2>新建数据库

3>导入DDL建表语句

4>设置表数据项生成规则

5>导出数据SQL