全部产品
云市场

测试数据构建

更新时间:2020-07-10 15:01:55

DMS提供丰富的测试数据构建功能,拥有强大算法引擎,支持批量生成各类随机值、地区名、虚拟IP地址等信息,能大大减轻您准备测试数据的负担。本文将介绍测试数据构建的功能与操作步骤。

需求背景

功能测试或者性能测试时,往往伴随测试数据的准备。在以往的方案中可能会选择以下几种方式:

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

实际开发过程中可能伴随着频繁的数据准备过程,需要保障数据安全、保障数据的离散性特征可控、同时保障效率节省时间做更多其他有意义的事情。那么DMS提供的测试数据构建,将能很好的满足您的需求。

前提条件

  • 需提前建好相应环境的数据库、表,以及其中对应的字段(该功能会直接将生产的数据写入目标数据库)。

    推荐使用数据库克隆将生产环境数据库克隆至测试环境,再使用文本介绍的测试数据构建将测试数据丰富起来。

  • 当前支持以下几种数据库类型使用:

    • MySQL
    • PolarDB-MySQL
    • ADB3.0-MySQL
    • ADB2.0
    • DRDS
    • Oceanbase2.0-MySQL
    • Oceanbase1.0

注意事项

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

操作步骤

  1. 登录DMS控制台
  2. 在顶部导航栏,单击数据方案 > 测试数据构建
  3. 测试数据构建工单列表页,单击右上角的测试数据构建

    其他访问入口:在目标SQLConsole中,右键单击目标表,在弹出的窗口中单击数据方案 > 测试数据构建
    1

  4. 测试数据构建工单申请页,根据下表填写工单信息,并单击提交申请
    1

    参数名 说明
    任务名称(必填) 便于后续检索,并提供给审批人员清晰的操作意图。
    库名(必填) 指定数据库实例上某个具体数据库(需要在产品内有数据库的操作权限,输入库名前缀后可出现联想提示)。
    表名(必填) 在指定的目标表中进行检索,支持添加多张表(需要输入表名前缀后可出现联想提示)。
    配置算法(必填) 可编辑各字段的生成方式,详情信息请参见配置算法介绍
    生成行数(必填) 测试数据生成的行数。
    冲突处理(必填) 请选择冲突处理模式,当前支持:
    • 遇到数据冲突则跳过:遇到主键、唯一键的数据写入冲突则跳过冲突记录继续往下写入其他数据。
    • 遇到数据冲突则替换:遇到主键、唯一键的数据写入冲突则更新原记录行的数据并继续往下写入其他数据。
    变更相关人(选填) 可按需选择。非工单参与人、审批人,均不可见工单详情。
  5. 提交工单后即会进入审批环节。

    目前,测试数据构建的默认安全审批规则为:数据库对应的DBA进行审批。更多关于测试数据构建的审批规则请参见*测试数据构建安全规则

  6. 审批通过后,系统会自动进行数据构建,并直接写入目标数据库中。

配置算法介绍

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

  • 随机

    • 数值类型:支持自增序列(指定起始值步长)与区间数字(在指定区间生成随机值)两种生成方式。
      4

    • 文本类型:支持变长字符串(在指定字符长度与指定字符范围中生成随机值)与不重复字符串(随机生成)两种生成方式。
      5

    • 日期与时间类型:支持在指定日期或时间内生成随机数值。

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

  • 枚举
    您需要主动添加若干枚举值,DMS会在您输入的枚举值在随机选择。

    数值、文本、日期与时间类型均支持枚举生成方式。

    8