有没有人在测试Cassandra数据库(这是一种NOSQL分布式数据库)?
执行此操作时要考虑哪些重要事项?

#1 楼

您真正需要的是隔离测试每个组件。

集成级别及更高级别的测试变得更具挑战性。如果您使用的是自动化测试,则这些测试不能依赖于将数据放入数据库中并期望将其立即存在。您需要等待一个复制时间,这可能会大大降低测试速度。虽然不太可能,但是如果数据库之间的连接断开则有可能超过30秒左右,这是怎么回事。

我会失败的一种方法是将重点放在单元测试上每个组件都与数据层模拟。这将使您确保应用程序的其余部分正常运行。

这使您可以确定数据访问层是否正常运行。为此,通过应用程序一次从UI驱动它将帮助您确定该应用程序是否正在从NOSQL数据库写入和读取数据。您可能还需要编写一小组集成测试来自动为您检查。

基本上,您将遇到的主要问题是数据库之间的数据复制。您还需要记住,在某些情况下,有人可以删除一个节点上的记录,而其他人可以在另一节点上编辑记录,而删除事件尚未复制。您的应用程序可以处理吗?

#2 楼


刚开始使用no-sql的实现之一,所以我只能向我提供建议,这是我的猜测+实际上我不是QA工程师,因此建议不是正式的。
但是,希望对您有所帮助。

因此,要考虑的因素:


最终一致性(在写入时使数据一致所需的时间是可以接受的);
故障安全性(如果有5个节点之一掉落,数据将保持活动状态);
具有传递循环引用的方案(例如,db如何与A-> B,B-> C和C-> A之类的东西一起工作。当我尝试检索此类数据时,播放过的db有时会失败);

也许以后我会记住更多要检查的内容...