Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django webtest和selenium之间的差异_Python_Django_Selenium_Django Forms_Django Testing - Fatal编程技术网

Python django webtest和selenium之间的差异

Python django webtest和selenium之间的差异,python,django,selenium,django-forms,django-testing,Python,Django,Selenium,Django Forms,Django Testing,我一直在读关于django测试的文章。推荐使用django webtest进行功能测试。我发现了一篇不错的文章,它教我们如何使用python在selenium中进行功能测试。但人们也推荐Ian Bicking的WebTest扩展用于django中的表单测试。在django表单的上下文中,使用webtest进行测试和使用selenium进行测试有何不同 因此,从功能测试的角度来看: django webtest和selenium是如何并行的? 我们需要同时拥有它们还是任何一个都可以?了解Selen

我一直在读关于django测试的文章。推荐使用django webtest进行功能测试。我发现了一篇不错的文章,它教我们如何使用python在selenium中进行功能测试。但人们也推荐Ian Bicking的WebTest扩展用于django中的表单测试。在django表单的上下文中,使用webtest进行测试和使用selenium进行测试有何不同

因此,从功能测试的角度来看:

django webtest和selenium是如何并行的?


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

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

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


否则,这两个工具通常具有相同的用途,用于测试相同类型的事物。也就是说,我建议选择一个,而不是两个都使用。

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

  • 您不能使用WebTest测试JS代码,因为没有任何东西可以运行它
  • WebTest更快,因为它与WSGI挂钩,这也意味着内存占用更小
  • WebTest不需要在端口上实际运行服务器,因此并行化稍微容易一些
  • WebTest不会检查实际浏览器出现的不同问题,如特定浏览器版本错误(咳嗽..internet explorer..咳嗽..)
底线: 更喜欢使用WebTest,除非您必须使用Selenium来处理无法使用WebTest进行测试的内容