有哪些选项可以为用Java Swing编写的GUI构建自动化测试?
我想测试一些使用NetBeans Swing GUI生成器编写的GUI,因此理想的方法是不需要对被测代码进行特殊篡改的工作。
Answers:
最近,我遇到了FEST,它似乎很有希望,只是开发人员在2012年宣布开发不会继续。
AssertJ是FEST的一个分支,对我来说效果很好。它被积极地维护(在撰写本文时),支持Java 8,具有针对一些流行的库(例如Guava和Joda Time)的断言,并且文档记录很好。它也是免费和开放的。
我目前正在使用FEST。它可与JUnit一起使用,还将获取失败测试的屏幕截图。
它具有默认的组件搜寻方法,这些方法查找要测试的组件的名称(需要手动设置),但是您也可以通过将给定的组件传递给该组件来生成测试器。
您可以尝试使用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视频演示以实际操作。
我用java.awt.Robot
。不好,不容易,但是每次都能工作。
优点:
缺点:
现在,如果您有预算,我将选择LoadRunner。班上最好。
(披露:与拥有LR的公司的关系,但我在与LR建立关系之前曾与LR合作)
我没有亲自使用过,但是SwingUnit看起来还不错。您可以将其与jUnit一起使用,它并不基于“组件的位置”(即x和y坐标)。
您与NetBeans GUI Builder唯一要做的就是为组件设置唯一的名称。
对于那些有冒险精神的人,可以使用gooey https://github.com/robertoaflores/Gooey(一种非常基础且未开发的)用于摇摆应用程序的程序测试工具。