Skip to content

weilanhanf/db-agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dbfaker

介绍说明 效果 多种格式 使用方式 1、下载依赖 2、安装 3、两种方式 4、卸载 支持数据库,数据量测试 展望 感谢 友情链接

方便简洁,提供两种生成方式

介绍

基于数据库层面批量生成有逻辑关联的数据

star Downloads pypi version

软件架构

对于要造大量数据来讲,有几种方式,一是通过开发写的接口来模拟真实用户场景来产生数据,这种方式在某些方面来讲是比较合适的,比如因为是模拟用户场景,业务数据完整,不会丢.但不好的地方就是要处理的地方太多,接口定义,签名,加密等等,还有扩展性也很不好,一个业务场景要写一套代码.另一种方式,是已知业务产生的数据之间的依赖关系后,直接在数据库中插入相关数据,本项目就是通过这种方式来实现,好处就是生成规则通过配置文件来描述即可(yaml文件),不需要额外添加代码(对于某些字段生成规则有可能需要单独编写方法),与测试库testrunner比较类似.现在已知有些库也支持直接在数据库内造数据,但对库表之间的关联关系的处理都做得不太好.

另外对于测试人员进行自动化接口测试时,前置数据是个问题,是通过业务接口一条条跑完作为前置数据产生条件还是直接在数据库里面插入需要的数据呢?前面一种方式在业务场景复杂的时候用例的维护可能会变得极其麻烦。比如:

你要测试一个用户加入商品到购物车的一个接口;前置数据有哪些?

  1. 用户账号
  2. 商品

通过接口来造数据的流程如下:

  1. 通过用户端注册接口来创建账号
  2. 通过管理端接口登录,拿到token(预设管理端账号是已经存在了,如果不存在你还得注册管理端账号)
  3. 登陆后通过管理端接口创建商品信息

这三个步骤看起来简单,但实际上针对某些业务场景还有接口加密、签名、而且几乎每一条测试用例都需要用到N个前置条件,这些通过接口来调用的前置条件只要有一个失败就会影响你真正要测试的接口。做过接口测试的同学应该深有体会;

实际上实现上述接口测试,真正要测的只是商品是否能正常加入到购物车;真正依赖的就只有两个数据,用户账号和商品信息。我们只需要在用户表和商品表里面各插入一条数据就可以了。通过本工具,只需要描述两个表的每个字段的生成规则就可以直接在数据库中插入两条“十分真实”的数据。用这种方式来解决测试用例前置条件的问题不说是最好的方式,但肯定是比上面的前置用例的方式好很多。

本项目数据处理流程如下: 处理流程

安装

git clone https://gitee.com/guojongg/dbfaker.git
cd dbfaker
# 可先创建虚拟环境后再安装
python3 setup.py install
# 使用pip直接安装
pip3 install dbfaker

# 卸载
pip uninstall dbfaker

使用说明

方便快捷,快速生成。

数据库支持 oceanbase/mysql

两种使用方式 1、命令行直接生成(不推荐) 指定数据库版本类型,数据库连接串,及数据文件类型,数据文件目录 dbdoc -db mysql -i --connect mysql+mysqldb://pdmsadmin:system001@cpcs.homelabs.in/pdms_hospital -o --output ./dbdoc.html

2、yml配置文件生成(推荐) dbdoc -db mysql --output conf.yml 编辑conf.yml文件,文件格式如下

database:               # 数据库配置项
  type: MySQL           # 需要备份的数据库类型:MySQL Oceanbase
  host: 192.168.200.130       # 数据库的地址
  port: 3306            # 数据库端口
  username: root        # 数据库用户名
  password: root        # 数据库密码
  dbname: xxl_job  # 需要备份的数据库名称
  charset: utf8
  table:
    regEx:          # 备份符合正则表达式的表名
    unRegEx:         # 过滤符合正则表达式的表名
    ignored:          # 忽略的表名
  column:
    ignored:           # 忽略的列名

dbdoc:
  title:    # 数据库表结构文档, default: 数据库表结构文档
  version:  # 1.0.1, default: 1.0.1
  desc:     # 数据库文档描述  default:数据库表结构文档描述
  filename:   # 自定义文件名, default: title_dbname_version.type
  path:   # 自定义文件输出目录 default: ./
  type:    # excel/word/markdown/html default: html

包括数据库链接,表自定义数据及文件类型等信息,一次配置,永久使用。 dbfaker ./conf.yml

更多例子

usage example(使用举例)

内置方法一览

dbfaker内置方法速览

自定义方法使用说明

dbfaker自定义方法使用说明

yaml文件版本转换说明

yaml文件版本转换说明

使用comment字段来描述生成规则

使用comment字段来描述生成规则

更新说明

dbfaker更新说明

觉得还可以,帮忙点个赞!!!

如果有意见或建议或者遇到相关问题需要探讨解决方案欢迎给我提:Issue

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published