【问题标题】:Selenium vs. SimpleTest vs. WatiNSelenium v​​s. SimpleTest vs. WatiN
【发布时间】:2011-01-20 12:05:26
【问题描述】:

Selenium/WatiNSimpleTest(也有网络测试功能)之间似乎没有什么可比性。

我尝试了 Selenium,发现 GUI 非常适合创建测试,因为您无需手动输入所有命令即可查看和记录发生的情况。

就运行测试而言,Selenium 比 SimpleTest 复杂得多。对于 SimpleTest,您只需要运行一个 PHP 脚本来完成所有测试(客户端或浏览器端)。这意味着无论您使用什么浏览器或浏览器设置,您都可以直接转到测试网址,它的工作原理都一样

这里有用的是来自使用 Selenium 或 WatiN 的人的一些 cmets:为什么 Selenium 如此著名?换句话说,相比 SimpleTest,使用 Selenium 的主要优势是什么?

PS:请排除“SimpleTest 需要PHP”之类的原因;很明显,PHP 无论如何都包含在大多数 LAMP 中。

【问题讨论】:

    标签: php selenium watin functional-testing


    【解决方案1】:

    SimpleTest's web-testerSelenium suite 之间有一个主要区别:

    • Selenium 可与 真正的浏览器 配合使用:
      • 每次启动测试时,都会启动真正的 Firefox 或真正的 Internet Explorer
      • 所有浏览都在那个真正的浏览器中完成
      • 这意味着您可以从浏览器中获得所有 Javascript 功能 - 即您可以测试完全动态的网页。
    • SimpleTest 的网络测试器模拟浏览器
      • 发送 HTTP 请求,获取 HTML 内容
      • HTML 内容已被解析
      • 有一些功能可以测试 cookie 和表单;但与 Javascript 无关


    一些后果和想法:

    • Selenium 测试需要大量时间来执行:启动浏览器和浏览 (包括下载 JS/CSS/图像、显示包括广告在内的所有内容……)并且慢
    • SimpleTest 测试应该更快:只发送 HTTP 请求,解析 HTML,仅此而已
    • Selenium 需要一台带有图形界面的机器来启动浏览器,这是一个图形软件;这也意味着安装/配置更难
    • Selenium 允许您测试丰富/动态/基于 JavaScript 的应用程序,比仅获取和解析 HTML 更好
    • 如果您正在测试 PHP 应用程序,通常认为 PHPUnit 比 SimpleTest 好得多(至少它得到了积极的维护和开发); PHPUnit 支持 Selenium 测试


    如果可以的话,我会推荐两者的组合:

    • 使用 SimpleTest 测试与 HTML 相关的内容(或 Zend_Test,如果使用 Zend Framework)
      • 会更快
      • 这些测试将不依赖于浏览器
    • 使用 Selenium 测试动态页面

    即充分利用这两种工具;-)

    【讨论】:

    • Selenium 2 (WebDriver) 可以是一个单一的解决方案,使用 HTMLUnitDriver 来测试页面而无需启动浏览器的开销。
    • @DaveHunt 很高兴知道这一点。我想尝试 Selenium 2,但他们的 10 次下载几乎没有解释让我放弃了。我会等待第一版的RC。
    【解决方案2】:

    由于 SimpleTest 仅处理页面的 HTML 内容,因此您无法使用它测试依赖于 JavaScript 行为的页面。归根结底,这是速度和功能的权衡。

    • 如果您需要 JavaScript 功能或想要测试特定于浏览器的行为,请使用 Selenium。
    • 如果您想要速度并拥有静态 HTML 页面,请使用 SimpleTest。

    顺便说一句,Selenium 可以集成到 PHPUnit 测试套件中:http://www.phpunit.de/manual/3.1/en/selenium.html

    【讨论】:

    • @chiborg SimpleTest 是否有扩展以使用 Javascript?提前谢谢!
    • @HelpingHand 这将在纯 PHP 中非常难以实现,因为基本上你必须构建一个无头浏览器。用纯 PHP 实现的噩梦。看看 Phantom JS (phantomjs.org),它实现了一个基于 webkit 的无头浏览器。查看一个实验性 Drupal 项目,了解如何集成 SimpleTest 和 PhantomJS:drupal.org/project/simpletest_phantomjs
    • @chiborg Drupal 项目远未完成,我自己无法下载,对吗? phantomJS 是否像 simpletest 一样在服务器上运行?感谢您的帮助!
    【解决方案3】:

    只是添加另一个选项,TestPlan 可以与 Selenium 后端和 HTMLUnit 一起使用,因此它可以在没有浏览器的情况下与我们一起使用。脚本语言简单,可以快速创建自动化任务。

    无浏览器后端对 JavaScript 的支持非常好,但对于那些无法正常工作的情况,您只需切换到 Selenium 模式并使用真正的浏览器即可。

    【讨论】:

      【解决方案4】:

      另请注意,simpletest 需要修补 drupal 代码库。您无法在生产站点的精确镜像上测试您的站点。

      问候。

      【讨论】:

        猜你喜欢
        • 2015-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-13
        • 1970-01-01
        • 2016-01-22
        • 2015-03-12
        • 2012-11-03
        相关资源
        最近更新 更多