我目前正在使用Selenium来测试我们的Web应用程序界面。但是,它不是非常可靠(很难设置一个良好的等待超时,绝对是在任何涉及帧的网页中使用的噩梦)并且缺少许多功能(弹出/下载)。
我看了http://sikuli.csail.mit.edu/,非常喜欢它,但同样,它不太可靠,因为它经常无法识别正确的按钮/链接。
测试Web应用程序的好方法是什么?
PS:即使测试人员对代码内部有了零知识(甚至不是方法签名),我也会考虑进行测试。
答案 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。
答案 3 :(得分:0)
而不是像这样使用selenium.waitForPageToLoad("30000");
selenium.waitForPageToLoad(超时);
并且不要忘记使用settimeout选项设置超时
selenium.setTimeout(超时);
我也遇到了与超时相同的问题。设置超时后,事情运作良好。