Djangowebtest与硒的区别

2024-06-26 19:52:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在读关于django测试的文章。建议使用django webtest进行功能测试。我找到了一篇不错的文章here,它教你如何使用python在selenium中进行功能测试。但是人们也推荐使用IanBicking的WebTest扩展djagno-webtest来测试django中的表单。在django表单的上下文中,使用webtest进行测试和使用selenium进行测试有何不同?在

所以从功能测试的角度来看:

django webtest和selenium是如何并存的?

我们需要同时拥有它们还是任何一个都可以?


Tags: django表单hereselenium文章功能测试建议角度
2条回答

关键的区别在于selenium运行一个实际的浏览器,而WebTest挂接到WSGI。 这导致了以下差异:

  • 不能用WebTest测试JS代码,因为没有什么可以运行的。在
  • WebTest更快,因为它挂接了WSGI,这也意味着内存占用更小
  • WebTest不需要在端口上实际运行服务器,因此并行化更容易一些
  • WebTest不会检查实际浏览器中出现的不同问题,比如特定的浏览器版本错误(咳嗽。。internet explorer。。咳嗽……)

底线: 更喜欢使用WebTest,除非您必须将Selenium用于不能用WebTest测试的东西。在

关于Selenium,需要知道的一点是,它主要是构建为一个与服务器无关的测试框架。使用什么框架或服务器端实现来创建前端并不重要,只要它的行为符合预期。此外,虽然您可以使用Selenium手动编写测试,但许多测试都是记录某人执行动作的宏,然后自动转换为代码。在

另一方面,django webtest专门用于django网站。它实际上是WebTest的一个特定于Django的扩展,它不仅仅是Django,而是WSGI(因此仅限于Python)。正因为如此,它可以与应用程序交互,并对服务器上的工作方式有更高的认识。这可以使运行测试更快,也可以更容易地编写更细粒度、更详细的测试。另外,与Selenium不同,您的测试不能自动编写为录制的宏。在

否则,这两个工具通常具有相同的目的,并且旨在测试相同种类的东西。也就是说,我建议选一个而不是两个都用。在

相关问题 更多 >