Swing UI测试库比较:FEST,WindowTester Pro等

jav*_*y79 26 java user-interface swing unit-testing

我不是在尝试这样的重复问题:

Swing UI的单元测试框架

我想知道的是,有没有人对各种Swing Unit测试库进行任何良好的比较,例如:

我们从未进行任何GUI测试,因此我们不熟悉可能存在的问题.

提前致谢.

jfp*_*ret 9

我对AbbotFEST有一些相当不错的经验,这两个都是用于Swing UI测试的开源库.

方丈似乎不再受支持了; 它有点难以进入,因为录音机没有生成足够好的脚本.实际上,我已经使用录音机来"学习"脚本语言(XML标签),最后我用一个简单的文本编辑器直接自己编写了脚本.这非常有效.

FEST采用另一种方法,您必须在Java中编写UI测试代码.这使得它成为Java开发人员保留的工具,而Abbot可以被其他人使用(例如QA团队测试人员).

这两种工具以及可能与任何UI测试工具的主要问题是:

  • 找到一种方法来唯一地识别组件而不使用它们的位置或文本内容(可以从一个版本更改为另一个版本或者难以在不同的版本中测试相同的应用程序Locale)
  • 使用正确的时序在脚本:这些测试工具可以运行比人使用者更快的用户界面,因此您的用户界面可能不是他们足够快(例如,它可能需要几十毫秒,打开对话框,更要填充表来自数据库)

对于这两个问题,虽然有一个解决方案.

对于组件标识,我强烈建议在UI中命名所有Swing组件(使用Component.setName())并为其使用命名策略,这可以确保永远不会有2个具有相同名称的组件同时可见.在guts-gui库中,我甚至开发了一种策略,可以自动命名存储为面板中字段的Swing组件,这有助于在应用程序编码后添加组件名称.

对于脚本计时,两个框架在等待对话框出现时接受超时值; 考虑到您的测试可能在具有更多或更少可用功率的不同类型的机器上运行的事实,您可以选择最佳值.您应该使用足够大的超时以确保脚本不会报告错误否定(例如,1秒后出现的对话框,而脚本只等待500毫秒),但也不会太长,以便在有真实时错误(例如,预期的对话框永远不会出现).我建议使用2到5秒的超时,这应该适合大多数测试平台和大多数应用程序.

希望这可以帮助.


小智 5

Jemmy为UI测试提供了相当不错的功能.虽然它不是JUnit测试的开箱即用解决方案,但它可以很容易地扩展到适合您的目的.

我不确定其他UI测试工具,但与RFT相比,它为您提供了实际UI对象的句柄(RFT返回代理对象).根据我的经验,这可能很方便.

它是一个开源项目(根据CDDL许可),并且正在积极开发中.

我认为其他流行的(或曾经是??)是jfcUnit.虽然我不认为这是在积极发展.