有哪些选项可以为用 Java Swing 编写的 GUI 构建自动化测试?

我想测试一些使用以下代码编写的 GUI NetBeans Swing GUI 生成器, ,因此不需要对被测代码进行特殊篡改即可工作的东西将是理想的。

有帮助吗?

解决方案

最近我发现 FEST 看起来很有前途,只是开发者 2012年宣布不再继续开发.

断言J 是 FEST 的一个分支,对我来说效果很好。它得到积极维护(在撰写本文时),支持 Java 8,对一些流行的库(例如 Guava 和 Joda Time)有断言,并且有很好的文档记录。它也是免费和开放的。

其他提示

我目前正在使用 节庆. 。它与 JUnit 配合使用,还会截取失败测试的屏幕截图。

它具有默认的组件搜索方法,用于查找正在测试的组件的名称(需要手动设置),但您也可以通过将组件传递给给定组件来生成测试程序。

您可以尝试使用 黄瓜扫平者 用于用简单的英语为 Swing GUI 应用程序编写功能验收测试。Swinger 在底层使用 Netbeans 的 Jemmy 库来驱动该应用程序。

Cucumber 允许您编写如下测试:

 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 测试。看起来很有前途。

我用 java.awt.Robot. 。不太好,不容易,但每次都有效。

优点:

  • 你尽在掌控
  • 非常快
  • 建立你自己的FWK
  • 便携的
  • 无外部依赖

缺点:

  • 没有漂亮的 GUI 来构建测试
  • 测试时你必须不理会 GUI
  • 建立你自己的FWK
  • 很难更改测试代码并创建您的第一个线束

现在,如果你有预算,我会选择 LoadRunner。全班最优。

(披露:与拥有 LR 的公司有关系,但在建立关系之前我曾在 LR 工作过)

我个人没用过,但是 摆动单元 看起来不错。您可以将它与 jUnit 一起使用,并且它不基于“组件的位置”(即x 和 y 坐标)。

您可能需要使用 NetBeans GUI Builder 做的唯一一件事就是为组件设置唯一的名称。

我们正在使用 QF-测试 并且非常满意。

UISpec4J 非常简单、不臃肿且可扩展。它比 FEST 更符合我的目的。

西库利:使用屏幕截图的 GUI 测试器http://sikuli.org/

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

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

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

对于那些有冒险精神的人来说,有粘糊糊的 https://github.com/robertoaflores/Gooey 用于摆动应用程序的(非常基本且正在开发中)编程测试工具。

您可以使用 斯库里 或者 自动机 为了测试你的 GUI 部分,这些都是有据可查且经过测试的工具

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top