UI测试工具?

32

寻找一款用于 Windows (.NET WinForms) 应用程序的UI测试工具。其想法是分析员将通过某些UI记录测试,然后可以反复播放。

商业工具也可以,但免费的工具将获得额外加分。


13
罗伯特,鉴于我不知道你项目的具体情况,我提醒你要谨慎采用录制/回放策略进行测试自动化。测试自动化是软件开发,需要像对待软件开发一样对待它。录制的测试脚本不会对变化有弹性,如果你的应用程序不会改变,那么你就不需要自动化了,对吧? :-) - Tom E
同意,测试自动化是软件开发的一部分。如果你不把它当作软件开发来对待,并且没有具备相应技能的人员参与,那么你将无法从中获得太多收益。 - eglasius
1
有没有办法自动化Windows窗体测试? - John
1
记录在测试的起始阶段非常有用,可以快速构建UI映射和操作的大部分内容。然后手动调整和重构结果,使其更加灵活。 - ivan_pozdeev
可能是有没有办法自动化Windows窗体测试?的重复问题。 - Dariusz Woźniak
12个回答

12

其他一些工具:

我相信它们都是免费的,而Quail看起来非常不错!


10

(我本来只是想在上面的回答中发表评论,但字数不够了。) 我们购买了Ranorex,但不会再这样做了。他们1.5版本的许可证不清楚。他们的书面许可证是按用户计费,而他们的营销说是按机器计费。尽管如此,执行仍然基于密钥,当机器被擦除或替换测试员时并不是很麻烦。

对于2.0产品,他们的许可证现在绑定到机器上。重新映像一台机器,您需要重新授权。我不会为了公司数千美元的产值来支持这种麻烦,所以我们没有升级。

对于他们想要的产品,使用UI自动化框架可以轻松编写大部分功能。 Ranorex是一个不错的产品,但我质疑它的性价比。 我们正在将许多新测试移动到只编码UI自动化框架,因为我们经常需要修改Ranorex生成的代码。


我们正在评估Ranorex,看起来现在这个选择更加清晰:有节点锁定许可证(锚定到一台机器,但可以每90天移动一次),浮动许可证(可以在任何机器上使用,但只能有一个用户在任何给定时间使用许可证)和浮动运行时许可证(仅运行测试)。(不,我不为他们工作!) - Scottie

4

正如Tom E所说,在考虑使用记录/回放进行测试自动化时需要小心。

请参阅Uncle Bob的文章Ruining your Test Automation Strategy

主要问题在于记录/回放工具将测试与GUI耦合在一起,使它们非常脆弱。

Uncle Bob的文章指出,确实需要对GUI进行一些测试...但他建议将业务规则代码存根。

很抱歉我无法为您提供特定的UI测试自动化工具...但希望这个警告能帮助您决定如何使用最终选择的工具。


4

TestComplete

您可以使用录制回放来捕获和运行测试脚本。但是我建议您至少手动编辑脚本,使其

  1. 更易读
  2. 更易于维护。

TestComplete的好处在于它能够查看您表单的属性,捕获这些属性,以便您可以通过它们的名称而不是屏幕坐标来引用这些属性。


3

到目前为止,我找到了以下几个工具:

如果您使用过其中任何一个,请留下评论。


1
White是UI自动化框架的一个封装。它增加了一个巧妙的钩子,可以等待进程的输入线程空闲,然后再执行下一个命令,这意味着它可以以您的机器速度运行,并且不需要Thread.Sleep调用。 - bryanbcook

2
在我们公司,我们决定采用http://www.sikuli.org/。我们觉得它是成本(免费)、易于使用、功能和可扩展性的完美结合。
Sikuli基于Python(实际上是Jython),这很棒,而且它是开源的。需要一点点编程,但可以像调用函数一样简单。他们的IDE使入门变得非常容易。它不是录制和回放工具。它基于计算机视觉算法-您提供要查找的屏幕截图,它会在屏幕上找到它并执行所请求的操作(单击、键入等)。这是真正的独立测试,因为Sikuli对其测试的软件一无所知。它不知道底层API-它只做一个真正的人类会做的事情。
我们已将Sikuli与Robot Framework http://robotframework.org/集成,并创建了大量自定义Python代码来构建强大的测试平台。这可能不像从供应商获得许可证的工具那样容易,但对这两个开源工具的时间和才能投资是值得的。

2

在SO上有很多类似的问题:

  • 自动化与GUI界面交互(编辑:不再可用)
  • Windows窗体的自动化测试(编辑:不再可用)
  • GUI的自动化测试

根据我的经验,网络上有很多好的开源工具,但是对于开源厚客户端测试自动化工具的选择却不是很多。如果你想要良好的支持和强大的功能,特别是录制功能,你需要考虑商业工具(QTP、RFT、TestPartner等...)。


1

1

0

我的建议是使用QA Agent(http://qaagent.com/)。这是一个免费的基于Web的IDE,用于开发网络自动化测试。基本上,您可以使用jQuery来开发测试。您可以在浏览器中运行测试。它看起来像是一个新项目,但我真的很喜欢在浏览器中开发测试的想法。您知道设置测试环境需要多长时间。使用QA Agent只需10秒钟。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接