Java Swing GUI 的自动化测试 [关闭]
-
01-07-2019 - |
题
有哪些选项可以为用 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 用于摆动应用程序的(非常基本且正在开发中)编程测试工具。
只是做了一些快速扫描。 压扁 是最有希望的。虽然不是免费的