21

我对测试仅客户端 Java 应用程序的 UI 感兴趣。最流行的框架是什么?你推荐的框架是什么?另外,为什么 Selenium 不这样做(或这样做)?在我看来,任何可以测试 Web 应用程序的东西都应该能够测试 Windows 应用程序。

4

11 回答 11

12

试试FEST 框架。如果我没记错的话,这就是以前所说的 Abbot。我将它用于自动化测试,它似乎非常简单方便。简单的事情变得容易,复杂的事情不是火箭科学。我考虑过 UISpecj4j,但它不适合我,因为在必须测试 Drag'n'Drop 时没有技术上的可能性。此外,当您实际上看不到发生了什么时,开发测试非常困难(UISpec4J 使用假的、不可见的外观)

唯一的问题是在 FEST 中制造麻烦(也是设计使然)——它会抓住鼠标,并且在运行测试时不允许您做任何事情。

于 2009-07-16T16:01:58.580 回答
6

我们使用TestComplete

于 2009-07-16T13:16:47.513 回答
4

试试Abbot Java GUI 测试框架

于 2009-07-16T14:15:39.997 回答
3

Selenium 不能这样做的原因是它使用在 Web 浏览器中运行的 Javascript 来进行测试。它通过 Javascript 模拟单击​​按钮、输入数据等。如果 Javascript 被禁用,它将无法工作。由于 Swing/AWT 应用程序没有 Javascript,因此 Selenium 也无法在它们上运行。

于 2009-07-16T13:24:30.110 回答
2

答案是:“Mercury winrunner”,它在 90 年代后期非常流行,并且可能仍然广泛用于 win 应用程序。

不再按原样出售,但如果我没记错的话,现在可以作为 HP QuickTest Professional 使用。请参阅HPQTP 上的维基百科页面

它现在成为 HP 统一功能测试 (UFT) 2

于 2009-08-29T16:04:11.520 回答
2

如果您有 Visual Studio 2010,您还可以使用新引入的Visual Studio UI 自动化测试(也称为 Coded UI)。这有点像将 Selenium 与 ui-map 一起使用。

于 2010-05-12T07:49:17.773 回答
1

Selenium 是基于 JavaScript 的框架,因此只能在可以执行 JavaScript 的东西上运行。浏览器本机执行此操作。

就我而言,实际上并没有一个测试框架可以与桌面上的 Selenium 相媲美,因为很难编写一个像 Selenium Hooks into the Browser 一样原生地挂接到操作系统的框架。流行的,不是最好的,是QTPSilkTestTestComplete

于 2009-07-16T13:29:29.387 回答
1

uispec4j是一个开源替代品。不过,我还没有尝试过。(我目前也在收集要尝试的事情的清单,所以感谢您提出这个问题!)

于 2009-07-16T15:32:14.133 回答
1

QTPSilktest是测试 Windows 应用程序 UI 的最佳工具。

于 2012-07-23T07:54:20.530 回答
0

如果您正在寻找开源工具,请查看Marathon。它允许您记录和回放测试、生成报告并集成您自己的代码以测试自定义组件。我已经使用它几年了,并进行了数百次测试。

也有商业版,功能比较多,但是没试过。开源版本非常适合我。

于 2013-01-18T17:45:49.673 回答
0

试试西库里

Sikuli 是一项诞生于麻省理工学院 UI 设计小组的技术,它允许使用计算机视觉自动化计算机操作。计算机视觉从图形用户界面 (GUI) 的屏幕截图中识别模式,并使用 Jython 脚本语言对它们采取行动。语言包括图形元素,最好使用软件随附的 IDE 进行编辑。Sikuli 可用于自动化软件测试,就像 Selenium 用于控制网页一样,它可以控制几乎任何它可以识别和单击或输入文本的界面——PC(Windows、Mac OS X 和 Linux)应用程序,甚至在模拟器中或通过 VNC 运行的 iPhone 或 Android 应用程序。

您还可以使用Sikuli Java API

Sikuli API for Java 为 Java 程序员提供基于图像的 GUI 自动化功能。它由 Sikuli Lab 创建并将积极维护。这个新的 Java 库有一个重新设计的 API,并包含一些原始 Sikuli 脚本中没有的新功能,例如匹配颜色、处理事件和查找几何图案(如矩形按钮)的能力。此外,它还大大简化了基于 Maven 的构建过程。

于 2014-03-01T06:55:58.463 回答