Django单元测试:如何测试并发数据库操作?

bri*_*dum 8 python django concurrency unit-testing django-models

我正在创建一个Django库,它使用乐观并发控制来防止并发写入导致不一致的数据.我希望能够为这个功能编写单元测试,但我不知道如何实现这一点.

我知道Django的单元测试是单线程的,所以我能想象测试工作的唯一方法是同时打开两个独立的数据库连接(到同一个数据库)并切换Django ORM在执行查询时使用的连接,尽管我我不确定Django中是否可以进行连接切换.

使用Django测试并发数据库操作有哪些技巧?

S.L*_*ott 3

使用 Django 测试并发数据库操作有哪些技术?

实际上,Django 在这里不是问题。

用于乐观并发控制的库必须可以作为独立单元进行单独测试。

姜戈之外;仅使用单元测试。

您需要使用多线程(和多处理)测试驱动程序进行测试。姜戈之外。

一旦确定可以正常工作,您就可以在 Django 内部进行测试,以确保 API 可以正常工作。

一旦您确定所有这些都有效,您应该编写一个简单的urllib2测试驱动程序,该驱动程序针对单独的 Django 服务器执行大量并发事务。我们编写了一个小工具来启动 Django 服务器,使用 运行测试urllib2,然后终止 Django 服务器。

更根本的是,您需要某种非常正式的证据来证明您的想法可行。这比任何测试都重要得多。