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