2

我意识到我需要一个全面的浏览器自动化工具来测试用户与我们的JavaScript小部件库的交互。我使用qunit,从单元测试开始,然后我不明智地开始引入越来越多的功能测试。这是一个糟糕的主意:试图用JavaScript模拟很多用户操作。计时问题已经失控,并使套件过于脆弱。现在我花更多的时间来修复测试,然后我开发。Web自动化工具

是否有可能找到一个浏览器自动化工具,在工作原理: Windows XP中:IE6,7,8,FF3 OSX:Safari浏览器,FF3 ?

  • 我已经看过SeleniumIDE和RC,但似乎有一些IE8的问题。

  • 我也看到了一些关于Google的WebDriver的东西,它似乎与Selenium一起工作得很混乱。

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

这个想法是尝试在我们组织支持的所有浏览器上运行测试。可行?我的要求是不现实的吗?任何建议至于软件来尝试?

谢谢!

回答

1

硒可能是您提到的工具中最好的选择。它与IE8有什么问题?你也许想看看HttpUnit是否满足你的需求。

+0

我还没有实际使用硒,但在各种论坛上看到一些评论说IE8出现了问题。此支持的浏览器页面表示它不支持IE8。 http://tinyurl.com/cdzdk6。有什么办法解决这个问题,还是这个支持页面过时了? 我也读过Selenuim的维护者很重载,并没有做很多工作。我意识到它是开源的,不介意如果某些东西能够满足我的需求,就可以获得非开源的建议。 – Aaron 2010-03-28 12:57:53

+1

我更新了文档,说它支持IE8 – AutomatedTester 2010-03-28 16:19:17

+0

我们已经在IE8中使用它,没有任何问题。 Watir/Watij是另一个你可能想要看的工具。 – 2010-03-28 16:50:25

0

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

只要有多个浏览器需要支持,我不认为任何人都可以完全正确。

+0

我想我要做的就是用Windmill和Selenium来测试一些测试用例。我会回报。感谢您的意见。 – Aaron 2010-03-28 15:08:02

+0

“只要有多个浏览器需要支持,我不认为任何人都可以完全正确。”查看Sahi(http://sahi.co.in/)。认真。 – 2010-05-05 05:13:22

4

我会推荐使用硒,但我说这是一个硒提交者。

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

Selenium和WebDriver(自从ThoughtWorks开始以来不是谷歌的东西)目前正在合并,因为它们都有其优点和缺点。目前合并的工作将被称为Selenium 2,您现在可以开始使用alpha版本http://code.google.com/p/selenium/。它仍然可以在任何操作系统上工作,因为这仍然是正在完成的工作的主要推动力。

Selenium IDE仅适用于Firefox,因为它是Firefox的附加组件。

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

如果你开始与硒有我的网站上一些教程在http://www.theautomatedtester.co.uk

0

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

1

如果您花时间使用硒,RC是一个很好的工具。通过对现有库的重大修改,我已经完成了它,以满足我所有的前端测试需求。

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

我唯一发现无法使用Selenium的浏览器是IE6。 IE7和IE8可以像Firefox一样正常工作(为了进行调试,我修改了其中包含Firebug)。

+0

到目前为止,我已经能够使用FF3(WIN和MAC)和IE8。为了使我的特定测试能够与IE8一起工作,我花了一些时间搞乱了Python,而且我很熟悉浏览器特定的关键事件以及它们是如何工作的。我正在等待尝试IE6。 – Aaron 2010-03-29 18:40:28

+0

作为一个说明,升级到FF3.5似乎已经打破了我的Java RC。我得到了3.6的工作,但它消除了我的服务器升级(如安装jQuery)。 – dhackner 2010-04-02 14:25:57

0

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

测试类似ajax自动完成小部件的东西,意味着根据IE或Firefox分叉一些代码,并且仍然无法在Safari中获得typekey或typeKey的组合。

所以,我不确定是否跨浏览器清洁,广泛的UI测试有点不切实际。

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

2

尝试Sahi(http://sahi.co.in/)它适用于各种浏览器和操作系统。它具有强大的记录器,以及用于对象识别的优秀API。它支持HTTPS,代理隧道等,并在sahi脚本,Java和红宝石驱动程序。它也具有并行播放内置。它是SourceForge上托管的5年前的成熟项目,几乎每个月都有发布。

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