繁体   English   中英

django-webtest和selenium之间的区别

[英]Difference between django-webtest and selenium

我一直在读关于django的测试。 推荐的一件事是使用django-webtest进行功能测试。 我在这里发现了一篇不错的文章,讲授如何使用python在selenium中进行功能测试。 但人们也推荐使用Ian Bicking的WebTest扩展djagno-webtest来测试django中的表单。 在django形式的背景下,如何使用webtest进行测试并使用硒进行测试?

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

django-webtest和selenium是如何并排的?

我们需要同时拥有它们还是任何人都能做到的?

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

  • 您无法使用WebTest测试JS代码,因为没有任何东西可以运行它。
  • WebTest因为它挂钩到WSGI而快得多,这也意味着更小的内存占用
  • WebTest不需要在端口上实际运行服务器,因此更容易并行化
  • WebTest不会检查实际浏览器出现的不同问题,例如特定的浏览器版本错误(咳嗽......互联网浏览器......咳嗽......)

底线:首先使用WebTest,除非您必须将Selenium用于无法使用WebTest测试的内容。

了解Selenium的重要一点是,它主要是与服务器无关的测试框架构建的。 只要行为符合预期,使用什么框架或服务器端实现来创建前端并不重要。 此外,尽管您可以 (并且在可能的情况下,您可能应该 )在Selenium中手动编写测试,但许多测试都会记录某些人通过这些动作然后自动转换为代码的宏。

另一方面,django-webtest专门用于Django网站。 它实际上是一个特定于Django的WebTest扩展,它不仅仅是Django,而是仅限WSGI(因此只支持Python)。 因此,它可以与应用程序进行交互,更高层次地了解服务器上的工作方式。 这可以使运行测试更快,并且还可以轻松编写更精细,更详细的测试。 此外,与Selenium不同,您的测试不能自动写为录制的宏。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM