django-webtest和selenium之间的区别

wha*_*atf 11 python django selenium django-forms django-testing

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

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

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

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

ida*_*alz 22

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

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

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


Jos*_*ock 10

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

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

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