【问题标题】:How to test the UI of an Eclipse Juno RCP如何测试 Eclipse Juno RCP 的 UI
【发布时间】:2012-10-06 16:25:15
【问题描述】:

我们正在开发一个基于 Eclipse 的 RCP。最近我们更新到 Eclipse Juno,目前我们专注于质量,这当然使自动化测试成为焦点,因为应用程序很大,测试工作会延迟发布。

我们已经在编写 JUnit 测试,但我对 UI 测试更感兴趣。对于较旧的 Eclipse,这不是问题。周围有很多很好的测试框架。不幸的是,由于增加了通过 Swing 或 JavaFX 切换默认 SWT UI 的能力,Juno 一切都发生了变化(至少这是我对导致问题的更改的理解)

因此,大多数测试工具不再正常工作。从过去的经验看来:

  • SWTBot最近好像不太喜欢,而且很不稳定(某些版本找不到元素)
  • Window Tester 看起来相当不错,但在测试运行期间识别元素有很多问题(尤其是内容辅助或工具提示等弹出窗口)
  • 显然 Froglogics Squish 支持 Juno,但由于许可证费用约为 2,5k 欧元,我必须通过
  • QF-Test 似乎也是如此(太贵了)。
  • 这剩下 Jubula(或 GUIDancer,即商业 Jubula),我们过去曾尝试过,但与 Window Tester 和 SWTBot 存在类似问题(在更改方面不稳定Eclipse 平台和检测某些元素的困难)

我需要知道,应该关注/信任哪个工具。是否有人使用过其中一种工具,或者目前正在测试 Juno RCP(或 Juno 本身)?或者有人知道 Eclipse 如何测试他们自己的平台(如果他们甚至在 atm 上测试)?

搜索与“test”、“Juno”和“UI/GUI”相关的信息,只能找到商业产品。

对我来说,重要的是找到一个工具,即使在未来的版本中,我也可以使用开发的测试用例,这意味着:一个框架项目,它得到了社区的一些支持,以便能够快速适应。此外,找到工具提示、叠加层或内容辅助/建议之类的东西也很重要)——与基本的 HTMLUnit 相比,它类似于 Selenium。

在这一点上,我什至不太关心集成、报告或遵守标准..

【问题讨论】:

  • 显然开源市场不支持高度定制的Juno RCP,所以你需要使用专有工具。

标签: eclipse testing frameworks eclipse-juno


【解决方案1】:

您可以在 Eclipse Wiki 中找到一个全面的 GUI 测试工具表: http://wiki.eclipse.org/Automated_Testing#UI_tests

您必须做出的一个重要决定是,如果您想使用鼠标来记录/创建测试(Jubula、QFTTest,...),如果您希望能够手写测试代码(SWTBot、 ...),或者如果您希望两者都可以(WindowTester Pro,...)。

Eclipse Juno 相当新,我预计所有列出的工具都会出现问题,但是迁移应该不会花那么长时间,因为大多数这些工具主要集中在测试 SWT-widgets 并且 Juno 仍然使用 SWT。到目前为止,除了技术演示之外,我还没有收到任何认真使用 JavaFX 的 RCP 应用程序的消息,但我很想看到它们!

我认为问题在于测试 Eclipse 很困难,而 GUI 测试尤其困难。 您可能想看看这项研究,它发现并解释了主要问题: http://swerl.tudelft.nl/twiki/pub/Main/TechnicalReports/TUD-SERG-2011-010.pdf

如果您相信这项研究,JUnit 测试通常比 GUI 测试更可取。好吧,使用 Juno,您有一个很大的优势,即现在对 Eclipse 进行单元测试比以往任何时候都容易,因为框架从继承和单例切换到依赖注入,这使得它更易于测试。

【讨论】:

  • 感谢分享一些知识。我会看看这项研究。我对 Junit 测试的主要问题是,接口本身可能非常复杂,这不允许我们收集一些可能出现的问题。我知道 Juno 很新,我希望测试框架能赶上。然而,不幸的是,随着所有最近的新闻/博客/等的出现,我对快速改进已建立的框架持怀疑态度。但至少知道,这是我必须面对的宇宙是很重要的。
  • 确实,除了技术问题,还有很多问题。例如,我更喜欢 WindowTester Pro,因为它可以让您记录测试并从记录中生成代码。之后,您可以方便地重构生成的代码并在 Eclipse 中将其作为 JUnit 测试运行。然而,Google 目前很难为该项目做出贡献,而且向一流 Eclipse 项目的迁移似乎很慢,这推迟了必要的迁移。
【解决方案2】:

我建议你也看看Xored's Q7,它用于一些 Eclipse 项目的 GUI 测试,包括 Eclipse DLTK、Eclipse LDT、Eclipse Tigerstripe,这个工具非常完美:它可以让你开发几十个 UI 测试每个工程师每天,并且没有稳定性和错误记录问题。它是专门设计的,仅用于测试基于 Eclipse 的应用程序,并且显然是该领域中最好的。

但是它需要花钱,这对你来说可能是一个障碍(如 squish),但他们有一个免费的社区版本,这对于大多数用例来说已经足够了。以及那些 Xored 刚刚推出的按测试执行付费定价模型——这些工具将是免费的,您只需按每月执行的测试付费(少于 5000 个是免费的)。更多关于新模型的信息在这里eclipse-testing.com

【讨论】:

  • 我已经尝试 Q7 几个小时了。内容辅助处理有点麻烦。该行为有时与手动执行有些不同。我找不到有关 ECL 命令的一些好的文档,并且无法正确访问我的主可视化编辑器。它没有使用脚本中指定的正确坐标,也无法执行拖放操作。录制和回放时它可以工作,但在测试执行时它并没有真正拖动对象。这种不一致使其几乎无法使用。
  • 嗨@peter,非常感谢您的反馈。我过于乐观地宣传刚刚介绍的 Juno 支持,远非理想。但是团队很乐意与您合作以消除所有不一致之处,您是否有兴趣与我们联系并指出详细的错误(例如,如果可能,共享您的 AUT 等)。非常感谢,并致以诚挚的问候,
  • 在另一台机器上尝试了最新版本,效果很好。我的大部分问题都解决了。有一些粗糙的边缘,但与其他测试工具(如 Squish)相比,这很容易作为测试开发人员使用。
猜你喜欢
  • 2016-12-03
  • 2014-02-26
  • 1970-01-01
  • 2011-08-14
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
  • 2011-08-17
  • 1970-01-01
相关资源
最近更新 更多