生成测试数据
NineData 支持在数据库中自动生成符合特定业务场景的随机数据,用于模拟实际生产环境中的数据情况,帮助用户在不使用真实数据的情况下,进行功能测试、压力测试以及其他验证工作。
功能说明
自定义数据生成:支持根据具体业务需求,自由定义每个字段数据的生成规则和算法,确保生成数据符合实际业务逻辑。例如,姓名字段可以生成特定格式的姓名,日期字段可以生成特定范围内的日期。
数据量控制:可以控制生成数据的数量,支持小规模数据到千万级数据的生成,满足不同的测试需求。
字段关联与依赖:数据可以基于字段之间的关联关系自动生成,确保表与表之间、字段与字段之间的数据一致性,例如外键关系的维护。
数据分布设置:用户可以设置生成数据的分布比例,包括 NULL 值比例、唯一值、重复值等,帮助模拟生产环境中的数据分布特征。
使用场景
- 功能测试:在开发过程中,生成测试数据用于验证系统的功能是否按预期运行。例如,在用户注册功能测试中,可以生成一批模拟用户数据,用来验证用户注册、登录和数据存储的操作过程。
- 性能测试:通过生成大量数据,模拟系统在高负载下的运行情况,测试系统的响应速度、资源消耗和扩展能力。例如,生成百万级别的订单数据进行性能测试,检查数据库的查询和插入性能。
- 迁移功能测试:在进行数据迁移或版本升级时,可以通过生成测试数据对数据迁移的过程进行验证,确保在迁移或升级后的环境中数据保持完整和一致。
前提条件
- 已将需要生成测试数据的数据源添加到 NineData。如何添加,请参见添加数据源。
- 支持的数据源类型为 MySQL、Oracle、OceanBase for Oracle、OceanBase for MySQL、TiDB、GreatSQL、ClickHouse、Doris、StarRocks、TDSQL MySQL 版。
创建数据生成任务
登录 NineData 控制台。
- 在左侧导航栏单击 > 。
在页签下,单击右上角的,然后根据下表配置各项参数,单击。
参数 说明 输入数据生成任务的名称。 选择数据生成任务的目标数据源和库(Schema)。 单击,选择数据生成任务的目标表。在右侧,可以单击仿真模板的名称,更换仿真模板。仿真模板支持自定义配置,请参见管理仿真模板。
表添加完成后,页面中将自动列出该表以及其中所有字段。- :在左侧表名区域中的文本框中,可以配置生成的数据量。该数据量受规则影响,最大为 1000 万条。规则配置方法请参见编辑规范。
- :在右侧字段名区域,可以手动为每个字段配置仿真规则,单击各字段右侧列下的可以为每个列配置仿真算法。
选择生成数据时遇到重复对象的处理策略,支持、、三种策略。 【个人模式下不显示】当前数据生成任务审批通过后的任务执行人。
说明:下拉列表中的可选项取决于如下两种情况:(可选) 【个人模式下不显示】用于记录和说明创建数据生成任务的目的和背景,尤其在团队合作、任务审计和审批流程中,生成原因的记录有助于任务合理性的验证和任务流的推进。 进入节点,系统将基于当前数据源关联的 SQL 开发规范对任务进行预审,会有如下几个结果:
- 预审通过:根据审批流程的配置情况,任务状态会更改为或,如果是前者,请继续下一步,如果是后者,本流程结束。
- 预审不通过:任务状态会更改为,您可以撤回数据生成任务重新编辑并提交。
撤回数据生成任务
任务的状态处于、、或时,您可以撤回该任务的申请,撤回后,任务不再执行,您可以重新编辑该任务单再次提交。
前提条件
- 任务的状态为、、或。
- 您是目标任务的或。
操作步骤
登录 NineData 控制台。
- 在左侧导航栏单击 > 。
在页签,找到目标任务,单击任务 ID 或任务右侧列的。在页右上角单击。
在弹出的确认窗口中,单击或。
- :任务状态变更为。如需重新编辑任务,可以在 列表找到该任务,单击右侧列下的,重新提交任务单。
- :任务状态变更为并自动跳转至任务的编辑页面。
审批数据生成任务
前提条件
- 任务的状态为。
- 您是目标任务的或。
操作步骤
登录 NineData 控制台。
- 在左侧导航栏单击 > 。
在页签,找到目标任务,单击任务 ID 或任务右侧列的。
在页面,审批任务,根据实际情况选择、或。
操作 说明 将任务单转交给其他用户审批。 批准申请,单击后,您可以按需输入,并单击。 驳回申请,不执行该任务。单击后,您还需要输入,并单击。
执行数据生成任务
任务的状态处于时,您可以执行该任务。
前提条件
- 任务的状态为。
- 您是目标任务的或。
操作步骤
登录 NineData 控制台。
- 在左侧导航栏单击 > 。
在页签,单击目标状态为的任务 ID。
在页面,单击右上角的。
在弹出的窗口中,选择,单击,然后等待任务状态变更为即可。
- :马上执行 SQL 语句。
- :选择一个时间执行 SQL 语句。
执行成功后,您可以打开 SQL 窗口验证生成的数据。