【问题标题】:Web Automation Tool网络自动化工具
【发布时间】:2017-04-22 00:03:56
【问题描述】:

我意识到我需要一个成熟的浏览器自动化工具来测试用户与我们的 JavaScript 小部件库的交互。我使用 qunit,从单元测试开始,然后我不明智地开始合并越来越多的功能测试。那是个坏主意:尝试用 JavaScript 模拟大量用户操作。时间问题已经失控,使套件变得过于脆弱。现在我花更多时间修复测试,然后进行开发。

是否有可能找到适用于: Windows XP:IE6、7、8、FF3 OSX:Safari,FF3 ?

  • 我查看了 SeleniumIDE 和 RC,但似乎存在一些 IE8 问题。

  • 我还看到了一些关于 Google 的 WebDriver 的东西,令人困惑的是,它似乎与 Selenium 一起工作。

  • 我们的组织拥有 IBM 的 Rational Functional Tester 的许可证,但我认为这不适用于 MAC。

我们的想法是尝试在我们组织支持的所有浏览器上运行测试。可行吗?我的要求不切实际吗?有什么推荐的软件可以试用吗?

谢谢!

【问题讨论】:

    标签: javascript testing user-interface selenium functional-programming


    【解决方案1】:

    我会推荐使用 Selenium,但我说的是 Selenium Committer。

    Selenium 可以在任何支持 JavaScript 的浏览器上运行,因为该框架是用 JavaScript 编写的。这意味着如果您在任何操作系统上的浏览器支持 JavaScript,它将在 Selenium 中运行。那个文档已经过时了,你可以看到,既然是讲IE8b1,IE9的预览版已经出来了。

    Selenium 和 WebDriver(自从在 ThoughtWorks 开始就不是 Google 的东西)目前正在合并,因为它们都有自己的优势和劣势。当前合并的工作将称为 Selenium 2,您现在可以在 http://code.google.com/p/selenium/ 开始使用 alpha 版本。它仍然可以在任何操作系统上运行,因为这仍然是所做工作的主要驱动力。

    Selenium IDE 仅适用于 Firefox,因为它是 Firefox 插件。

    我个人会避免使用 Rational Functional Tester,因为它有很多甚至不值得考虑的弱点。

    如果你从 Selenium 开始,我的网站上有一些教程http://www.theautomatedtester.co.uk

    【讨论】:

      【解决方案2】:

      试试 Sahi (http://sahi.co.in/) 它可以跨浏览器和操作系统工作。它有一个强大的记录器,以及用于对象识别的强大 API。它支持 HTTPS、代理隧道等,并有 sahi 脚本、java 和 ruby​​ 驱动程序。它还具有内置的并行播放功能。这是在 SourceForge 上托管 5 年的成熟项目,几乎每个月都会发布。

      它自动等待 AJAX 和页面加载,并且不使用 XPaths 进行对象识别。它还处理具有动态 ID 的站点。

      【讨论】:

        【解决方案3】:

        Selenium 可能是您提到的工具中最好的选择。 IE8 有哪些问题?您可能还想看看 HttpUnit 是否满足您的需求。

        【讨论】:

        • 我还没有真正使用过 Selenium,但在各种论坛上看到一些 cmets 说 IE8 存在问题。此支持的浏览器页面表明它不支持 IE8。 tinyurl.com/cdzdk6。有什么方法可以解决这个问题,还是这个支持页面已经过时了?我还读到 Selenuim 的维护者非常超载,并没有做太多的工作。我意识到它是开源的,如果某些东西可以满足我的需求,我不介意获得非开源的推荐。
        • 我们在 IE8 中使用它没有任何问题。您可能想看看的另一个工具是 Watir/Watij。
        • AutomatedTester:感谢更新。
        • Rob:我有一个朋友喜欢 WATIJ。从文档中看不出来,是否支持OSX、SAFARI以及Windows FF、IE?
        【解决方案4】:

        如果您花时间使用 Selenium RC,它是一个很棒的工具。通过对现有库的重大修改,我得到它来满足我所有的前端测试需求。

        您对 Webdriver 的困惑是可以理解的。 Selenium 2 正在开发中,它将是 Webdriver 和 Selenium 的合并。查看:http://www.youtube.com/watch?v=RQD4EzWI4qk 了解更多详情。

        我发现唯一不能与 Selenium 一起使用的浏览器是 IE6。 IE7 和 IE8 与 Firefox 一样工作正常(我已对其进行了修改以包含用于调试目的的 firebug)。

        【讨论】:

        • 到目前为止,我已经能够让它与 FF3(WIN 和 MAC)和 IE8 一起使用。为了让我的特定测试与 IE8 一起工作,我花了一些时间在 Python 上搞砸了,而且碰巧我非常熟悉特定于浏览器的关键事件及其工作方式。我正在等待尝试 IE6。
        • 请注意,升级到 FF3.5 似乎破坏了我的 Java RC。我得到了 3.6 的工作,但它消灭了我的服务器升级(如安装 jQuery)。
        【解决方案5】:

        我在同一条船上。这是一个很难解决的问题。 WindmillSelenium 是我找到的两个最好的。虽然他们都有问题。 Selenium 只能在 Firefox 中记录脚本,我还没有设法让代理链像宣传的那样工作。 Windmill,您可以在任何浏览器中进行录制,并且可以调整代理以在其中添加额外的逻辑,但是根据我的经验,用于跨页面加载进行录制的 js 机制至少在我必须测试的应用程序上非常脆弱。

        只要需要支持的浏览器不止一种,我认为没有人能做到这一点。

        【讨论】:

        • 我想我要做的是用 Windmill 和 Selenium 尝试一些测试用例。我会回来报告的。感谢您的意见。
        • “只要需要支持的浏览器不止一种,我认为没有人能做到这一点。”查看 Sahi (sahi.co.in)。说真的。
        【解决方案6】:

        也许看看SIKULI。这是一个不同的范例,但是,根据您想要准确测试的内容,它可能会完成这项工作,并且可以在任何平台上与任何浏览器一起使用。 查看他们的official blog,了解与 Web 应用程序交互的一些示例。

        【讨论】:

          【解决方案7】:

          因此,我使用 Python 驱动程序在 Selenium RC 中编写了一些有问题的测试。这比用纯 JavaScript 编写相同的测试要好,但我仍然遇到了一些相同的问题。

          测试 ajax 自动完成小部件之类的东西,意味着根据 IE 或 Firefox 分叉一些代码,但我仍然无法让 typeKeys 或 type 与 typeKeys 的组合在 Safari 中工作。

          所以,我不确定是否让跨浏览器干净、广泛的 ui 测试有点不切实际。

          我应该尝试 webdriver/Selenium 2 吗?这会让事情变得更好,还是该产品还没有准备好迎接黄金时段?对此的 Python 绑定如何?我不懂Java,但如果需要我会学习一些。

          【讨论】:

            猜你喜欢
            • 2017-04-07
            • 2010-10-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-01-12
            • 2011-03-17
            • 2011-03-31
            相关资源
            最近更新 更多