为使用Java Swing编写的GUI构建自动化测试有哪些选项?
我想测试一些使用NetBeans Swing GUI Builder编写的GUI,因此无需对待测代码进行特殊篡改即可正常工作。
答案 0 :(得分:31)
最近我遇到了FEST,除了开发人员announced in 2012 that development would not continue。
之外,它似乎很有希望AssertJ是FEST的一个分支,对我来说效果很好。它是积极维护的(在编写本文时),支持Java 8,对Guava和Joda Time等一些流行的库有断言,并且有很好的文档记录。它也是免费和开放的。
答案 1 :(得分:26)
我目前正在使用FEST。它适用于JUnit,还将获取失败测试的屏幕截图。
它具有默认的组件搜索方法,用于查找要测试的组件的名称(需要手动设置),但您也可以通过将组件传递给组件来生成给定组件的测试器。
答案 2 :(得分:14)
您可以尝试使用Cucumber和Swinger以简单的英语为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!"
请查看此Swinger video demo以查看其实际效果。
答案 3 :(得分:9)
我们正在考虑jemmy自动化一些GUI测试。看起来很有希望。
答案 4 :(得分:8)
我使用java.awt.Robot
。不好,不容易,但每次都有效。
优点:
缺点:
现在,如果您有预算,我会选择LoadRunner。最好的。
(披露:与拥有LR的公司的关系,但我在关系之前与LR一起工作)
答案 5 :(得分:6)
我个人没有使用它,但SwingUnit看起来很不错。您可以将它与jUnit一起使用,它不是基于“组件的位置”(即x和y坐标)。
您可能只需要为NetBeans GUI Builder设置组件的唯一名称。
答案 6 :(得分:6)
我们正在使用QF-Test并且非常满意。
答案 7 :(得分:6)
UISpec4J非常简单,没有浮动和可扩展。它比FEST更符合我的目的。
答案 8 :(得分:3)
Sikuli:使用屏幕截图的GUI测试人员 http://sikuli.org/
答案 9 :(得分:3)
您可以使用Marathon: “马拉松综合测试环境,MarathonITE,是一个经济实惠,易于使用且跨平台的Java / Swing™GUI测试自动化框架。您可以使用MarathonITE的内置脚本记录器以Python或者Python创建干净,可读的测试脚本Ruby。提取方法重构,创建数据驱动测试和对象图编辑等高级功能允许您创建可维护的,有弹性的测试套件。“
答案 10 :(得分:3)
您可以尝试ReTest,这是一种新颖的工具,可实现功能回归测试的创新方法,并将其与基于ai的猴子测试相结合。它即将成为开源......
免责声明:我是ReTest背后公司的创始人之一。
答案 11 :(得分:2)
对于那些有冒险精神的人来说,有一个用于摇摆应用的粘性https://github.com/robertoaflores/Gooey a(非常基础和开发不足)的程序化测试工具。
答案 12 :(得分:1)
刚做了一些快速扫描。 Squish是最有希望的。不是免费的
答案 13 :(得分:1)