可靠的Web应用程序GUI测试

时间:2010-01-22 02:23:55

标签: java selenium testing

我目前正在使用Selenium来测试我们的Web应用程序界面。但是,它不是非常可靠(很难设置一个良好的等待超时,绝对是在任何涉及帧的网页中使用的噩梦)并且缺少许多功能(弹出/下载)。

我看了http://sikuli.csail.mit.edu/,非常喜欢它,但同样,它不太可靠,因为它经常无法识别正确的按钮/链接。

测试Web应用程序的好方法是什么?

PS:即使测试人员对代码内部有了零知识(甚至不是方法签名),我也会考虑进行测试。

4 个答案:

答案 0 :(得分:3)

不幸的是,UI测试通常不是很可靠。必须使用XPath,因为未在页面上的元素上设置ID。必须使用框架(我讨厌框架,并且很高兴在HTML5中弃用它。)

不幸的是,这是野兽的本质,我发现Selenium是一个主要的问题,它是我首选的浏览器用户界面测试工具,是人们从Selenium IDE开始尝试记录你所做的一切,但它只能做这么多让测试变得不可靠。

记录/重放工具应该称为记录/调整/重放,以便它可以正确处理测试。

为Selenium RC或WebDriver编写测试(这些测试目前正在合并以创建Selenium 2),使您可以处理Selenium IDE中可能出现的问题。它使您可以使用Java,Python,C#等编程语言编写测试。因为您可以为测试添加条件。

我使用Selenium的技术人员较少的方法是创建一个DSL供他们使用,这样在编写测试时它就是一种更自然的语言。

答案 1 :(得分:1)

也许看一下iMacros for Firefox,它运行得很好,可以做很多疯狂的事情(完整的AJAX支持,Flash,Flex,Silverlight,Applets支持,Web Page Dialogs支持等)。你会发现与Selenium here的比较(可能有偏见)。

另一种选择是使用WebDriver(将与Selenium合并以创建Selenium 2,如另一个答案所述,但仍然使用不同的方法)。请参阅Introducing WebDriver以了解有关它的更多信息(以及它的不同之处)。

但我会试试iMacros。

答案 2 :(得分:1)

查看Sahi

  1. 无需等待Ajax或网页加载。

  2. 它不使用XPath,而是使用DOM关系(_near,_in)。

  3. 自动遍历框架/ iframe

  4. 录音机适用于帧,iframe和弹出窗口

  5. 它可以很好地处理自动生成的ID

  6. 录像机和播放功能几乎适用于所有浏览器和操作系统。

  7. 它不使用特殊权限来运行测试。

  8. 在过去的一年中,Sahi已经发布了7个公开发布,并且在论坛上提供了支持。

    免责声明:我是Sahi的作者。

答案 3 :(得分:0)

而不是像这样使用selenium.waitForPageToLoad("30000");

  

selenium.waitForPageToLoad(超时);

并且不要忘记使用settimeout选项设置超时

  

selenium.setTimeout(超时);

我也遇到了与超时相同的问题。设置超时后,事情运作良好。