Java Swing GUI 的自动化测试

对于用 JavaSwing 编写的 GUI 构建自动化测试有哪些选项?

我想测试一些已经使用 NetBeans Swing GUI Builder编写的 GUI,因此不需要对测试代码进行特殊修改就可以工作的 GUI 将是理想的。

54723 次浏览

我没有亲自用过,但是 摇摆小组看起来很不错。您可以将它与 jUnit 一起使用,而且它不是基于“组件的位置”(即 x 和 y 坐标)。

使用 NetBeans GUI Builder 唯一需要做的事情是为组件设置惟一的名称。

我目前使用的是 节日。它与 JUnit 一起工作,也会截屏失败的测试。

它有默认的组件搜索方法,这些方法查找被测组件的名称(需要手动设置) ,但是您也可以通过传递组件来为给定组件生成测试人员。

我们正在使用 资历架构测试并且非常满意。

我使用 java.awt.Robot。不是很好,不容易,但每次工作。

优点:

  • 一切都在你掌控之中
  • 非常快
  • 建立自己的 FWK
  • 便携式的
  • 没有外部依赖

缺点:

  • 没有好的 GUI 来构建测试
  • 您必须在测试时不使用 GUI
  • 建立自己的 FWK
  • 很难更改测试代码并创建您的第一个安全装置

如果你有预算,我会选 LoadRunner 全班最好的。

(披露: 与 LR 所属公司的关系,但在建立关系之前我曾与 LR 合作)

您可以尝试使用 黄瓜摇摆人为 Swing GUI 应用程序以简单的英语编写功能验收测试。Swinger 在引擎盖下使用 Netbeans 的 Jemmy 库来驱动这个应用程序。

黄瓜允许您编写这样的测试:

 Scenario: Dialog manipulation
Given the frame "SwingSet" is visible
And the frame "SwingSet" is the container
When I click the menu "File/About"
Then I should see the dialog "About Swing!"
Given the dialog "About Swing!" is the container
When I click the button "OK"
Then I should not see the dialog "About Swing!"

看看这个 摇摆舞视频演示,看看它的运作情况。

我们正在考虑使用 杰米来自动化一些 GUI 测试。

Sikuli: 一个使用屏幕截图的 GUI 测试人员 Http://sikuli.org/

你可以使用 马拉松: “马拉松集成测试环境 marathonITE 是一个价格实惠、易于使用和跨平台的 Java/SwingTM GUI 自动化测试框架。您可以使用 MarathonITE 的内置脚本记录器在 Python 或 Ruby 中创建干净、可读的测试脚本。提取方法重构、创建数据驱动测试和对象地图编辑等高级特性允许您创建可维护的、有弹性的测试套件。”

只是做了一些快速扫描。 挤压是最有希望的。但不是免费的

最近我遇到了 FEST,它看起来很有前途,除了开发者 2012年宣布不会继续发展

AssertJ 是 FEST 的一个分支,对我来说非常有效。它得到了积极的维护(在编写本文时) ,支持 Java8,为一些流行的库(如 Guava 和 Joda Time)提供断言,并且有很好的文档说明。它也是自由和开放的。

对于那些具有冒险精神的人来说,有一个针对摇摆应用程序的软件测试工具 https://github.com/robertoaflores/Gooey(非常基本且尚未开发)。

你可以使用 Sikuli或者 自动化来测试你的 GUI 部分,这些都是很好的文档和测试工具

你可以试试 重新测试,这是一个新颖的工具,实现了功能回归测试的创新方法,并结合了基于人工智能的猴子测试。它也即将成为开源软件..。

免责声明: 我是 ReTest 背后公司的创始人之一。