【问题标题】:Reliable web application GUI testing可靠的 Web 应用程序 GUI 测试
【发布时间】:2011-01-08 01:03:23
【问题描述】:

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

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

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

PS:即使测试人员对代码内部的知识为零(甚至方法签名也不知道),我也希望能够进行测试。

【问题讨论】:

标签: java selenium testing


【解决方案1】:

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

不幸的是,这是野兽的本性,我发现 Selenium 是我最喜欢的浏览器 UI 测试工具的一个主要问题是人们从 Selenium IDE 开始,它试图记录你所做的一切,但它只能做让测试变得不可靠。

Record/Replay 工具应该被称为 Record/Tweak/Replay,这样它才能正确处理测试。

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

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

【讨论】:

  • 我认为 Selenium 基本上是自动化 UI 测试的前沿。如果不够好,那就没有什么比这更好了。
  • 我不确定 WebDriver 的人是否会将其视为领先优势,但一旦这两个项目完全合并,在我看来它将是数英里之外的最佳工具
【解决方案2】:

看看Sahi

  1. 不需要等待Ajax或页面加载。

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

  3. 自动遍历帧/iframe

  4. 记录器适用于框架、iframe 和弹出窗口

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

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

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

在过去的一年里,Sahi 已经发布了七次公开版本,并且在论坛上得到了及时的支持。

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

【讨论】:

  • 我现在正在“评估”Sahi,我可以告诉你,不需要 waitForPageToLoad 和/或 waitForElementPresent 是天赐之物!对我来说,这是最好的部分之一。
【解决方案3】:

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

selenium.waitForPageToLoad(超时);

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

selenium.setTimeout(超时);

我也遇到了同样的超时问题。设置超时后,一切正常。

【讨论】:

    猜你喜欢
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 2017-02-01
    相关资源
    最近更新 更多