当前位置: 首页 > article >正文

NineData快速生成大量有意义的测试数据

如何获取 MySQL 的测试数据,这是个很经典的问题,在开发、测试和性能优化的各个环节中,获取合适的测试数据都是必不可少的。MySQL 官方还特地提供了示例库 employees,用于测试用途,但 employees 并不是万能的,在某些情况下,生成更接近自己业务场景的测试数据才更加有效。

笔者以前生成测试数据,都是用的 sysbench,又快又好用,在性能测试场景下非常有效。但它也有缺点,那就是 sysbench 生成的都是【无意义】的字符与数字的组合,基本上只适合做性能压测。

那么测试数据为什么需要【有意义】呢?我们一起来看看:

  • 性能测试不仅仅是读写速度:在真实的业务环境中,数据库的性能不仅和数据量、查询速度有关,还和数据的分布、索引的使用密切相关。如果测试数据和真实数据相差太远,比如 sysbench 生成的随机字符串和实际业务中有逻辑规律的数据,性能测试的结果可能会与实际使用场景不符。

  • 功能测试和业务逻辑验证需要真实感:许多系统测试需要验证业务逻辑的正确性。无意义的数据无法全面验证系统在各种输入情况下的表现。

  • 数据关联性:许多业务系统中的数据存在关联性,比如一个电商平台的用户表和订单表之间的关系。生成测试数据时,如果只用随机数据,那么这些关联性会很难得到体现,测试时也无法验证系统是否能正确处理这些数据之间的关系。

长篇大论总结为一句话:根据自身业务逻辑创建的有意义的测试数据才能让测试结果更加可靠。这样一来,从网上获取开源数据集,或者用 sysbench 创建随机字符串就都无法满足了,我们需要一种可以根据自身业务逻辑,来自动生成真实测试数据的方法,那就不得不提一提 NineData 最新推出的数据生成功能了。

NineData 数据生成介绍

NineData 支持在数据库中自动生成符合特定业务场景的随机数据,用于模拟实际生产环境中的数据情况,帮助用户在不使用真实数据的情况下,进行功能测试、压力测试以及其他验证工作。

预定义的仿真规则:内置了 42 条预定义仿真规则,覆盖大部分业务场景。除此之外,支持创建自定义仿真规则。

 

生成数据量可控:支持 1 ~ 1000万条测试数据生成,可通过 SQL 开发规范进行限制。

添加图片注释,不超过 140 字(可选)

自动关联相关字段:通过识别规则,仿真规则将自动关联对应的数据库字段,无需手动关联。

实操示例

那么我们就直接来试一下,为 account 表增加 1000 条测试数据。

1. 在数据生成任务页面,选择需要生成测试数据的数据源、库,以及表,然后为每个字段配置仿真规则

2. 单击右侧的配置算法可以为仿真规则配置更加细节的选项。

3. 左侧的生成数据量中可以配置需要生成多少条数据。单击右侧的预览还可以预览数据生成效果,确认配置算法是否符合预期。

4. 如果需要配置外键逻辑,为有业务关联性的两张表创建测试数据,可以使用外键约束规则,为外键列设置关联的主键值,这样,程序会从关联表的主键中随机获取数据作为当前表外键列的值。

 

5. 提交后就可以执行了。

 

6.执行完成后直接看效果。

 

总结

可以看到通过 NineData 数据生成功能生成的测试数据非常符合真实场景,乍一眼根本难辨真假。有了这个法宝,企业能够快速生成大量真实、有意义的测试数据,从而加速开发进程,优化系统测试效果。


http://www.kler.cn/a/370503.html

相关文章:

  • 嵌入式知识点总结 C/C++ 专题提升(一)-关键字
  • Chapter5.4 Loading and saving model weights in PyTorch
  • opencv_KDTree_搜索介绍及示例
  • Git:问题解决办法 及 Tips 总结
  • 如何下载对应城市的地理json文件
  • 快速搭建深度学习环境(Linux:miniconda+pytorch+jupyter notebook)
  • 数据清洗与分析工具详解:Pandas 和 NumPy 的全面教程
  • 《掌握 Java:从基础到高级概念的综合指南》(5/15)
  • 线程同步(互斥锁条件变量)
  • Phpwind GET型CSRF任意代码执行
  • UE5 喷射背包
  • Flink CDC系列之:理解学习YARN模式
  • 威胁 Windows 和 Linux 系统的新型跨平台勒索软件:Cicada3301
  • Armstrong‘s axiom
  • lvs知识点归纳
  • 什么,NGINX无法正向代理HTTPS?
  • fastGpt
  • 计算机网络——开放系统互连参考模型
  • selenium的环境搭建
  • 记录element-ui改造select显示为table,并支持多查询条件
  • 【MATLAB源码-第193期】基于matlab的网络覆盖率NOA优化算法仿真对比VFINOA,VFPSO,VFNGO,VFWOA等算法。
  • JavaEE 多线程第三节 (lambda方法实现多线程/Thread属性和方法/前台线程后台线程)
  • 面试经典 150 题.P88. 合并两个有序数组(001)
  • UE4_Niagara基础实例—10、位置事件
  • 算法的学习笔记—滑动窗口的最大值(牛客JZ59)
  • Unity SpriteEditor 中的图集处理功能