数据管理DMS的测试数据构建功能拥有强大的算法引擎,支持批量生成各类随机值、地区名、虚拟IP地址等信息,可以大大减轻准备测试数据的负担。本文介绍构建测试数据的方法。

前提条件

支持的数据库类型:
  • MySQL:RDS MySQLPolarDB MySQL版MyBase MySQLPolarDB分布式版AnalyticDB MySQL版、其他来源MySQL
  • SQL Server:RDS SQL ServerMyBase SQL Server、其他来源SQL Server
  • PostgreSQL:RDS PostgreSQLPolarDB PostgreSQL版MyBase PostgreSQLAnalyticDB PostgreSQL版、其他来源PostgreSQL
  • MariaDB:RDS MariaDB、其他来源MariaDB
  • OceanBase MySQL模式
  • PolarDB PostgreSQL版(兼容Oracle)

背景信息

功能测试或者性能测试时,往往需要准备测试数据,通常有以下几种方法:

  • 手工编写:效率低,不适用于大数据量场景。
  • 维护生成测试数据脚本:成本高,且不通用每次都需要修改,数据离散性不足。
  • 生产环境数据导出后写入测试环境:数据不安全,存在泄露风险。

实际开发过程中可能伴随频繁的数据准备过程,同时需要保障数据安全、数据的离散性特征可控、高效率。DMS提供的测试数据构建,能够满足您的需求。

注意事项

  • 当前仅支持按需操作单个表,如需多个表生成需要多次处理。
  • 单次生成上限阈值为100万条。
  • 性能数据参考(进行了流量控制,避免瞬时生成过多数据造成数据库负载的影响):
    • 4个字段生成100万条数据约60s。
    • 40个字段生成100万条数据约120s-180s之间。

操作步骤

  1. 登录数据管理DMS 5.0
  2. 在顶部菜单栏中,选择数据库开发 > 环境构建 > 测试数据构建
  3. 测试数据构建工单列表页,单击右上角的测试数据构建
    说明 您还可以在目标数据库的SQL窗口中,右键单击目标表,在弹出的窗口中选择数据方案 > 测试数据构建
  4. 测试数据构建工单申请页,根据下表填写工单信息,并单击提交申请
    参数名说明
    任务名称(必填)便于后续检索,并提供给审批人员清晰的操作意图。
    库名(必填)指定数据库实例上某个具体数据库(需要在产品内有数据库的操作权限,输入库名前缀后可出现联想提示)。
    表名(必填)在指定的目标表中进行检索,支持添加多张表(需要输入表名前缀后可出现联想提示)。
    配置算法(必填)您在选择表名后,才会出现此配置项。您可编辑各字段的生成方式,详情信息请参见配置算法介绍
    生成行数(必填)测试数据生成的行数。
    冲突处理(必填)请选择冲突处理模式,当前支持:
    • 遇到数据冲突则跳过:遇到主键、唯一键的数据写入冲突则跳过冲突记录继续往下写入其他数据。
    • 遇到数据冲突则替换:遇到主键、唯一键的数据写入冲突则更新原记录行的数据并继续往下写入其他数据。
    变更相关人(选填)您在选择库名后,才会出现此配置项。您可按需选择变更相关人,非工单参与人、审批人,均不可见工单详情。
    提交工单后进入审批环节,审批通过后,系统会自动进行数据构建,并直接写入目标数据库中。
    说明 目前,测试数据构建的默认安全审批规则为:数据库对应的DBA进行审批。更多信息,请参见测试数据构建安全规则

配置算法介绍

测试数据生成算法配置目前支持3种生成方式,分别是随机自定义枚举

  • 随机
    • 数值类型:支持自增序列(指定起始值步长)与区间数字(在指定区间生成随机值)两种生成方式。
    • 文本类型:支持变长字符串(在指定字符长度与指定字符范围中生成随机值)与不重复字符串(随机生成)两种生成方式。
    • 日期与时间类型:支持在指定日期或时间内生成随机数值。
  • 自定义

    目前仅文本类型支持自定义生成方式,提供个人信息、地理位置、以及多个行业的标准数据类型。

  • 枚举
    您需要主动添加若干枚举值,DMS会在您输入的枚举值在随机选择。
    说明 数值、文本、日期与时间类型均支持枚举生成方式。