shell Windows自动化API -- WebDriver =>自动化第三方Qt DESKTOP应用程序/ QQuick GUI的等效可能性是什么?

ubby3x7f  于 2023-02-24  发布在  Shell
关注(0)|答案(1)|浏览(213)

我的目的是在使用QT 6.3开发的第三方应用程序上实现健壮的用户交互仿真。我无法访问代码,因此任何测试自动化工具的使用都不会起作用。"健壮"是指我希望对相应GUI元素的选择进行"编码",这与使用基于像素的导航或图像识别的RPA解决方案相反。
在传统的Windows应用程序中,可以使用自动化API实现自动化。在Web应用程序中,可以使用WebDriver(W3C)接口实现自动化。
QT应用程序的等效性是什么?
商业工具Squish和Ranorex由于相当大的许可证成本和开销(我根本不需要测试功能)而没有替代品。
在这篇文章中,一个用户描述了一个尝试使用思科的qtWebDriver将Qt桌面应用程序与Selenium框架一起使用的过程。
有没有人成功地将Selenium和桌面应用程序结合起来,并能概述这是如何工作的?我花了相当多的时间来玩和学习Selenium和qtWebDriver,但我仍然看不出"桌面应用程序"如何连接到Selenium进行交互。
此外,由于架构的变化,qtWebDriver不再与QML GUI一起工作。Qt WebKit/QWebView API已被Qt WebEngine/QWebEngineView取代。
非常感谢。
也许QAccessible是一种可能性,但阅读文档时,他们只解释了如何设置可访问性属性,但我不明白如何获取可访问性元数据以及如何编写交互代码。
我尝试了所有现有的UI间谍工具。其中,只有Ranorex间谍和Squish间谍可以识别UI元素层次结构。
但是,即使知道UI层次结构,无论是FlaUI、Powershell还是WindowsDriver等都不支持Qt/QML类。

hkmswyz6

hkmswyz61#

我目前的项目使用cisco webdriver进行测试自动化。它工作得很好。但是,我们的应用程序是为Linux. QT 5.15编写的。webdriver是在我担任这个职位之前在项目中实现的,所以我现在不会使用它,因为cisco webdriver项目看起来已经死了。我还尝试了funq:https://github.com/parkouss/funq,可惜在我的应用里面没有看到完整的结构,我曾经通过autoit自动化过Windows上的应用,不知道qt应用能不能用,你也可以查一下:https://en.wikipedia.org/wiki/Comparison_of_GUI_testing_tools
在全球范围内,我看到了三种自动化桌面应用程序的方法:
1.点击坐标,查看结果截图(非常flacky)
1.使用库来访问应用程序的内部并通过它进行交互。(基本上我在这里只找到了一个选项- squish)

  1. CV(有了它,你可以自动化很多事情,而不需要访问程序的内部。但是编写测试是相当劳动密集型的)

相关问题