【问题标题】:Difference between django-webtest and seleniumdjango-webtest 和 selenium 的区别
【发布时间】:2012-09-09 01:21:26
【问题描述】:

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

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

django-webtest 和 selenium 如何并行?

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

【问题讨论】:

    标签: python django selenium django-forms django-testing


    【解决方案1】:

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

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

    底线: 首选使用 WebTest,除非您必须将 Selenium 用于无法使用 WebTest 进行测试的事物。

    【讨论】:

      【解决方案2】:

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

      另一方面,django-webtest 专门用于 Django 网站。它实际上是对 WebTest 的 Django 特定扩展,它不是仅 Django,而是仅 WSGI(因此仅适用于 Python)。正因为如此,它可以与应用程序交互,对服务器上的事情如何工作有更高的认识。这可以加快运行测试的速度,还可以轻松编写更精细、更详细的测试。此外,与 Selenium 不同的是,您的测试不能自动编写为录制的宏。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-17
        • 2015-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-09
        相关资源
        最近更新 更多