我应该如何测试数据库驱动的 Django CMS 是否存在 404 错误?



>我在Django中设计了一个基本的内容管理系统,该系统使用数据库来跟踪文章对象,然后在我的网站上显示这些文章对象。

每篇文章都使用我经常更新的模板标签。有时,当我更新模板标签时,我会不小心破坏我网站上的一篇或多篇文章。例如,如果我更改给定文章引用的模板标签的必需参数,并且忘记更新该文章中的模板标签代码,则文章将中断,从而导致 404。

我想要一种简单的方法来确保我的所有文章页面在更新模板标签后仍然有效。不幸的是,据我所知,没有简单的方法来测试以确保我的所有文章都提供 200 个状态代码——除了手动梳理它们。

我已经研究了 Django 测试框架,但它似乎不是我问题的正确解决方案。为了自动测试我所有的文章是否为 404,我需要在我的数据库中复制 Articles 表并将其作为我的测试装置加载 - 许多人警告我不要克隆我的实时数据库。

在部署对代码的更改后,是否有一种简单的方法来测试我网站上的所有文章是否存在 404 错误?

这是一个比你上一个问题中给出的问题简单得多的问题。它有很多解决方案。

谷歌网站站长工具

如果您不介意轻微的延迟,则可以使用Google网站管理员工具,该工具将报告其抓取工具检测到的所有404错误。

姜戈测试用例

正是我在上一个问题中不愿意推荐的东西。为什么我现在建议它?好吧,问题似乎更简单。您不需要实时数据库中的所有数据。因此,创建灯具要容易得多,也快捷得多。

您可能有一个用于备份的只读副本。如果在只读副本上使用 -k 标志调用./manage.py test,您实际上可以执行相当多的测试。 如果您的代码不使用任何手动事务,您可以做更多的事情。

抓取框架

虽然不是完全为查找 404 错误而设计的,但可以使用 404 等网络抓取框架来检测内部和外部 404 错误。

蟒蛇请求

您可以编写一个pytest测试用例来读取您网站上的所有 URL,并使用 python 请求或任何其他 http API 命中它们。通过不使用 django 单元测试,您不会因为必须设置测试数据库而烦恼。可以要求 pytest 直接从您的实时服务器中提取数据。

硒/美丽汤

类似于上面的抓取框架。这也可以与 pytest 一起使用,这样你就不需要设置测试数据库。可以向主数据库上的测试用户帐户授予读取访问权限。

最新更新