mysql - 使用新数据库来测试或创建模拟数据 Cloud Foundry 和 MySQL?
问题描述
我正在开发一个使用 AWS 的项目,我们将数据放入 MySQL 数据库中。该项目很长,主要处理数据库。我们的数据库结构可能会随时更改,但我们数据库中的数据会经常更改(例如每 15 天一次)。如果数据发生变化,这会导致系统集成商测试失败,因为我们在真实数据库上执行它。因此,我们提出了两个想法,一个是创建一个模拟数据并将其放入我们的数据库中并用它进行测试(大多数情况下它会起作用),但这是一项乏味的任务,因为数据库相当复杂。另一个是创建一个新数据库并从中复制当前数据(它将起作用,因为现在所有测试用例都通过了)。这将节省我们创建模拟数据的时间。我们将在 Dev 中运行我们的测试用例,并在此环境中进行验收,并在生产中进行 CF 绑定,因此就像编写额外的绑定和解除绑定行一样。我们正在使用蓝绿色部署,因此停机不是问题。有人可以建议哪种方法更好吗?
一个用于测试的单独数据库(我从未见过)或创建模拟数据?
解决方案
假设您的数据库架构不是太复杂,我建议您使用内存数据库,如 H2 或 HSql db。您可以加载所有必要的数据集作为设置的一部分,然后针对所有条件运行测试。
在测试结束时,H2 实例将被清除。并且您的实际数据库不受影响。
需要注意的是,作为内存数据库,您需要合理化设置期间输入的测试数据量。因此,您可以拥有多个测试套件,每个测试套件都有自己的一组测试数据(整体的子集)。
您可以使用活动配置文件控制此类行为。
推荐阅读
- r - R通过移动对象中的循环选择数据
- networking - 如何将网络字节顺序转换为主机字节顺序,反之亦然,用于 C 中的 IPv6 地址?
- sql - 列名无效?
- browser - 如何在 Google Chrome 等浏览器中打开 CasperJS/PhantomJS 文件?
- makefile - makefile 有一个通用目标,它也是默认目标
- woocommerce - 如何在woocommerce中获取特定类别的所有产品?
- azure - 使用 Azure AD B2C 自定义策略为本地帐户签名时用户名或密码无效
- java - 写入时由 onDrawFrame 读取的数组
- sql - 获取总计:我如何从本准则中按性别或身体获取各省的女性/男性总计?
- sas - SAS 将每月增量数据集附加到一个数据集中