Java Swing GUI的自动化测试

时间:2020-03-06 14:20:32  来源:igfitidea点击:

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

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

解决方案

我没有亲自使用它,但是SwingUnit看起来还不错。我们可以将其与jUnit一起使用,它并不基于"组件的位置"(即x和y坐标)。

我们与NetBeans GUI Builder唯一要做的就是为组件设置唯一的名称。

我目前正在使用FEST。它可与JUnit一起使用,还将获取失败测试的屏幕截图。

它具有默认的组件搜寻方法,这些方法会查找要测试的组件的名称(需要手动设置),但是我们也可以通过将给定的组件传递给给定的组件来生成测试器。

我们正在使用QF-Test,对此感到非常满意。

我用的是java.awt.Robot。不好,不容易,但每次都能工作。

优点:

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

缺点:

  • 没有好的GUI来构建测试
  • 测试时,我们必须不理会GUI
  • 建立自己的FWK
  • 难以更改测试代码并创建第一个工具

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

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

我们可以尝试使用Cucumber和Swinger用普通的英语编写针对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!"

观看此Swinger视频演示以实际操作。

我们正在考虑自动化一些GUI测试。看起来很有前途。