我正在研究多个web测试工具。我现在正在试着使用watir。我主要关心的是如何处理javascript。我只想知道是否有人可以给我一个关于在watir中处理javascript的概述。它有哪些陷阱和困难?它基本上是使用javascript注入来告诉页面做什么吗?
如果有人想推荐其他web测试工具,比如watir,我将不胜感激。我先试了一下selenium,发现它有点不可靠。
市场上有没有便宜的工具?
谢谢!
发布于 2011-04-06 23:18:39
Tim给出了一个很好的答案。
我唯一要补充的是,我发现我必须时不时地使用watir方法来触发特定的javascript事件,比如onmouseover,以便准确地模拟用户与页面的交互。由于watir有一个这样的方法,所以困难的部分不是watir代码,而是反向工程页面(或注意到基于用户操作的细微页面交互),以找出哪些元素与哪些事件相关,以及针对这些特定元素触发这些事件的顺序。
通常,查看元素的HTML并了解发生了什么事情是相当容易的。但是对于一些自定义控件,这可能需要一些学习,因为它们可以很好地“隐藏”所有事件连接,并且您可能必须使用像fiddler这样的工具来解析页面的各个方面(样式和所有内容)。
(毕竟,普通用户永远不会‘强制’javacript执行,或者‘注入’javascript。它们将使用鼠标和键盘与页面进行交互,并且任何javascript都将是加载页面时执行的脚本的结果,或者是通过基于特定用户操作的事件触发的脚本的结果)
发布于 2011-04-06 05:36:38
Watir + Javascript =>通常可以将javascript注入到您的测试中,例如
@b.goto("javascript:openWin(2)")
当你说“处理javascript”时,我假设你指的是Watir在渲染/执行方面处理客户端代码的能力。由于Watir驱动真正的浏览器(如Selenium),因此JS通常会按预期执行。
watir有许多不同的驱动程序,例如Watir、firewatir、safariwatir、chromewatir、operawatir以及现在的watir-webdriver。根据浏览器和操作系统的不同,它们驱动浏览器的实现略有不同。例如,Firewatir使用JSSH,这实际上是通过JS控制浏览器。你能解释一下你说的硒“不可靠”是什么意思吗?
我建议您查看watir-webdriver的最新实现。这样,您就可以在新的驱动程序实现之上获得良好的watir API的好处。Webdriver在支持方面有一些强大的后盾(Selenium 2正在使用它,Google正在编写它!)所以我觉得这是个稳妥的选择。您还可以使用此实现控制大多数主要浏览器。
替代工具=> http://wiki.openqa.org/display/WTR/Alternative+Tools+For+Web+Testing
发布于 2011-04-07 17:13:15
如果你的JS没有触发超文本标记语言刷新,那么WATiR就会被搞糊涂。当您在WATiR中单击一个对象时,它会等待页面加载,然后再继续。你可以通过定制等待命令和使用'.click!‘来克服这个问题。
如果你是一个合理的ruby程序员,那么WATiR是大多数事情的解决方案。它有可能成为一个相当稳定和可靠的自动化网络测试来源。
你可能想看看Firewatir,sahi,watir-webdriver,只是为了给你更多的线索(如果你还没有的话,建议在谷歌上搜索“开源网络测试”之类的),我研究了这些和更多,出于成本,能力,灵活性和先验知识(在ruby和WATiR中)的原因,我选择了WATiR。有了正确的gem,它将与大多数数据库和Excel (或其他文件)对话,以加载测试数据。
我目前正在使用WATiR测试一个ZK生成的接口,其中没有一个ID是静态的,并且有很多AJAXiness正在运行。我刚刚构建了一个框架来处理这些问题,它工作得很好。
还有,some semi-true and true things that may help。
https://stackoverflow.com/questions/5558330
复制相似问题