我知道用于测试Java GUI应用程序的测试工具(或可以用于测试目的的工具)是:



Jemmy-jemmy库包含再现所有用户操作的方法可以在Swing / AWT组件上执行(例如,按下按钮,键入文本,扩展树形节点等)。可以与任何具有很大自由度的Java IDE(Eclipse,NetBeans)和自动化测试框架(JUnit,TestNG)一起使用(例如,分析JVM内存使用情况)。注意:看起来Jemmy不支持Java网络启动应用程序(下载.jnlp文件),因为在使用Jemmy测试Java网络启动应用程序以及如何自动执行摆动的Java网络启动应用程序的文章中提到可以非常灵活地测试这种应用程序,所以我现在使用此工具。测试应用不会下载并启动.jnlp文件,但是启动脚本(vbscript)下载了AUT的.jar文件(通过相同的链接.jnlp文件已下载),并且测试应用使用了新AUT版本的这些文件。

Jubula-jubula是针对Java和HTML的基于Eclipse的自动化功能GUI测试框架。将块与测试期间执行的动作相关联,开发人员不会编写代码,而只是从可用的构建块中组合测试动作。带有精确的文本数据。该工具有其局限性(在此处检查),可用于测试RDP内容。
您还能提出什么建议?开源并用于Java GUI测试。

评论

您是否尝试过Selenium Webdriver?

@TESTasy,尝试过,但不幸的是,它仅适用于Web应用程序。 Selenium WEBdriver不适用于GUI测试

我通常使用AutoHotkey脚本来模拟键盘按下和鼠标移动。这有点棘手,但可以完成工作。如果您无权访问源代码,它也可用于自动化应用程序。

#1 楼

如果Java GUI应用程序基于Swing,则AssertJ Swing可能是最好的开源库之一。它是FEST的一个分支,具有以下优点:




模拟用户与GUI的交互(例如,拖放)
可靠的GUI组件查找(按类型,名称或自定义搜索条件)
支持JDK中包含的所有Swing组件
紧凑而强大的API,用于创建和维护功能GUI测试
支持Applet测试

能够将失败的GUI测试的屏幕截图嵌入HTML测试报告中
可以与TestNG或JUnit一起使用

支持对Swing线程规则的违反测试可以与JIDE软件一起使用(从1.1.0版本开始) 。

评论


可以使用AssertJ Swing在不访问源代码的情况下自动执行第三方Java Web小程序吗?我找不到从文档中访问现有窗口的任何方法。

– Stevoisiak
17-10-6在18:32



#2 楼

我知道托管在GitHub上的几种开源工具,但尚未尝试过。刚刚创建了一个列表,供以后学习。欢迎任何补充和评论。



TestFX-213 *

自动化(Groovy和Java)-48 *

swinger(基于Ruby的JRuby)-47 *

Marathon-31 *

Window Tester-5 *

此列表可能是将来更新。我在pywinauto项目Wiki页面上对其进行维护(pywinauto根本不支持Java,但是非常欢迎Java GUI专家)。

评论


这些可以用于我们没有源代码的第三方Java Applet吗?

– Stevoisiak
17-10-6在17:32

可能是。您也可以使用Inspect.exe工具检查这些小程序。 pywinauto可以使某些Java应用程序自动化,但是您的机率约为50%,并且仅Windows。没有尝试其他工具,只是意识到它们。 :)

–瓦西里·里亚博夫(Vasily Ryabov)
17年10月6日在18:12

因此,您将无法演示这些工具的用法?

– Stevoisiak
17-10-6在18:31



#3 楼

Swing测试工具包(使用半自动测试用例生成方法,旨在将测试指令减少到最低限度,同时确保它们尽可能相关。)
这不是通用的GUI测试框架。它专注于单个库(Swing),以确保其质量水平。

#4 楼


Marathon是OSS测试自动化工具,其主要功能是记录,回放在AUT上执行的事件,它可以调试记录的测试脚本。测试脚本是用Ruby创建的(较旧的版本也支持Python)。
它还具有对象映射,魅力报告生成,测试组织(功能和故事),测试脚本中的可重用模块等功能。 MarathonITE版本具有更多功能,例如集中式对象地图存储库,数据驱动测试和...
它具有Java代理,可启动应用程序并创建Java服务器,您可以在该服务器上使用Selenium RemoteWebDriver与其建立连接,

Java驱动程序,可让您创建Java Profile来在不同的启动器模型中启动应用程序


Java命令行
Applet Launcher
命令行启动器(.bat / .sh)
WebStart启动器



注意:我也是Marathon的贡献者。

评论


请透露您与Marathon的隶属关系,因为您似乎已被列为源代码的贡献者之一。您可以在此处找到有关处理对附属站点的引用的更多信息:sqa.stackexchange.com/help/promotion通常,说几句总比冒险让人认为您是垃圾邮件要好。

–凯特·保罗克♦
19年8月2日在19:46

@KatePaulk感谢您指出。这是我第一次在堆栈溢出中回答。我正在编辑答案。

– Aditya Karra
19年8月3日在5:14

#5 楼

您可以使用Testmate自动执行Java swing应用程序
https://youtu.be/BQQdJ0V23GM