钢琴:远程控制Java Swing应用程序

[已弃用,图形用户界面,联合虚拟机,图书馆,麻省理工学院][建议标签]
已弃用

这是一个用于远程控制的库Java Swing桌面应用程序用一个特殊的钢琴经纪人演奏。代理公开Swing组件层次结构通过网络,并接受生成GUI事件。库处理Haskell方面的交互作用。


[跳到自述]

下载

维修人员角落

包装维护人员

对于包维护者和黑客托管者

候选人

  • 没有候选人
版本[RSS(RSS)] 0.1.0,0.1.1
依赖关系 阿托帕塞克(>=0.10),attoparsec-迭代(>=0.3),基础(>=4.4 && <5),字节删除(>=0.9),余单子(>=3.0),共鸣变压器(>=3.0),容器(>=0.4),任何一个(>=3.4),错误(>=1.3),文件路径(>=1.3),自由的(>=3.2),迭代(>=0.8),逻辑运算器(>=0.5),消息包(>=0.7),mtl公司(>=2.1),网络(>=2.4),(>=4.0),溪流(>=3.1),文本(>=0.11),变压器(>=0.2)[细节]
许可证 麻省理工学院
作者 丹尼尔·迪亚斯·卡雷特
维护人员 diaz_carrete@yahoo.com
类别 联合虚拟机,图形用户界面
源回购 头部:git克隆https://github.com/danidiaz/pianola.git
已上传 通过丹尼尔·迪亚兹·卡雷特2013年9月16日T18:50:31Z
分配
反向依赖关系 1直接,0间接[细节]
下载 总计1825人(过去30天内有4人)
额定值 (尚未投票)[估算人贝叶斯平均]
您的评分
  • λ
  • λ
  • λ
状态 用户上传的文档
生成状态未知[还没有报告]

钢琴自述-0.1.1

[返回包描述]

Pianola是一个Haskell库,它允许您通过网络连接监视和控制JavaSwing应用程序。这对于执行自动化GUI测试非常有用。

要使用库,测试中的应用程序(AUT)必须使用Java端Pianola代理进行检测。有关如何编译设置代理的说明,请查看后端/java-swing文件夹。

Java Swing示例应用程序包含在后端/java-swing-testapp文件夹。

有关如何使用该库的说明,请参阅的Haddock文档皮亚诺拉。辅导的包裹。

这个测试文件夹包含库的自动测试。要使测试工作,Java示例应用程序必须启动并运行。

这个示例文件夹包含用于与流行Java Swing应用程序交互的脚本(仅数据库可视化工具目前)。查看相应的自述文件,了解如何为这些应用程序设置Pianola代理的说明。

Pianola提供了一些工具的功能,如马拉松赛跑,尽管它没有任何录制功能。脚本必须手写。此外,与马拉松不同,皮亚诺拉并不关心启动AUT,而AUT必须通过其他方式启动。

理论基础

  • 我不喜欢许多GUI测试自动化框架在开发测试脚本时采用的“记录”方法。在任何最低复杂度的测试用例中,您都必须以聚合方式重构脚本,以消除重复并增加模块性。我更喜欢以增量方式编写脚本,理想情况下是借助于良好的REPL。

  • 有时,如果测试框架需要控制AUT的启动,而不是通过其他方式启动,这可能会变得不方便。

  • Pianola不要求客户端和AUT驻留在同一台机器上。

  • 我偏爱静态类型语言。当用动态类型语言开发的长时间运行的脚本由于诸如变量名称拼写错误之类的愚蠢错误而中途失败时,我感到非常恼人。我意识到这种不便是通过单元测试解决的,但当你开发的东西他们自己测试脚本,进行测试不是有点过分吗?

  • 与前一点相关:静态类型语言为您提供了更多的保证,即在重构时不会破坏任何东西。

  • Haskell(至少在理论上)擅长处理树状结构,比如GUI中组件的包含层次结构。

  • Haskell的高阶函数应该(至少在理论上)在定位单个组件时提供更大的灵活性。例如,根据应用于文本的任意谓词识别组件。

  • 马拉松赛跑是一个多功能的工具,可以在测试Swing GUI时处理许多拐角情况。尽管如此,还是有一些烦恼。(据我所知)除了通过完全相等之外,没有一种简单的方法可以通过文本以其他方式识别组件。

  • 马拉松式的烦恼#2:(据我所知)没有一种简单的方法来处理在测试执行期间可能出现或不出现的组件。例如,仅偶尔出现的警告对话框。似乎没有“查找组件,如果它存在”操作。

  • 马拉松的烦恼#3:(据我所知)没有一种方法可以让马拉松脚本在GUI中找不到组件时快速失败。有时他们会阻塞很长一段时间才失败!