版本 6.7
Squish 6.7 是一个功能发布版本,它为产品所有版本带来了新功能、错误修复和易用性改进。
本次发布值得关注的特点包括
新版本:Squish for VNC
此版本向 Squish 生态系统引入了一个新版本:Squish for VNC。这个版本采用最先进的光标检测和基于 AI 的 OCR 算法,以实现对任何 GUI 的强大 GUI 测试自动化。
Squish for VNC 将多个强大功能统一在一个解决方案中
- 无工具箱限制:Squish for VNC 抽象掉了构建用户界面所使用的技术,使得可以使用旧的或完全自定义的 UI 技术构建的应用程序进行测试。
- 无干扰:不需要访问任何应用程序的内部。
- 全面测试:Squish for VNC 自动化整个显示。GUI 由多个独立进程组成的多进程应用程序可以无缝测试。
- 全面网络透明度允许远程访问桌面和嵌入式用户界面的用户界面。
支持最新的 UI 技术
Squish for Qt 版本已扩展,完全支持使用最新 Qt 主版本 Qt 6 构建的应用程序。Squish 脚本 API 与 Qt 6 完全兼容,但直接访问 Qt API 的脚本代码可能需要更新。
Squish for Windows 现在完全支持 .NET 5 应用程序,并允许重现缩放或滑动等触摸手势,适用于 Microsoft Surface 设备等触摸屏应用程序。
更快捷、更简单的技术支持
联系 froglogic 技术支持团队比以往任何时候都更容易。现在在 squishide
中可以直接使用简单的客服向导。您对如何使用 Squish 意见如何?想知道是否有最佳实践?联系 froglogic 专家,并从多年经验中获益!
一般
- Squish 现在更有效地使用网络连接,尤其是在远程测试时,可以提高测试执行速度。
- 修复了 JUnit 报告生成器中的缺陷,当执行带有不可打印字符的名称的验证点时,会生成无效的 XML。
- Squish 现在支持从许可证服务器获取和释放浮动许可证。
squishide
特定
- 修复了通过命令行使用相对路径
.
打开测试套件的错误。 - Squish 脚本控制台 现在存储命令历史,以便可以编辑或再次执行之前输入的命令。可以使用箭头键遍历历史(向上键:上一个命令,向下键:下一个命令)。
- 现在可以通过填写
squishide
提供的表格来联系 Squish 技术支持团队。该表格允许添加对问题或技术问题的自由描述,并允许附加支持信息、日志或截图。
脚本
- 澄清了当测试脚本尝试将另一个 AUT 的对象传递给全局函数,如
mouseClick()
时显示的错误消息。现在错误消息指出该对象在当前应用程序上下文中不可访问,而不是《找不到 'mouseClick(Object)' 重载》) - 修复了由于某些原因导致访问 AUT 控件属性时会出现错误消息 "RuntimeError:属性读取失败" 的间歇性问题。
- 解决了在记录脚本对象映射中的名称时,如果
names.tcl
包含从测试套件文件夹中导入的内容,则不会重复使用现有名称的问题。 - 添加了squishinfo.testCaseName 和 squishinfo.testSuiteName 属性,使得可以轻松访问当前测试用例和测试套件的名称。
- 添加了string testInteraction.choice(message, items) 函数,它允许从提供的项目列表中选择一个项目。
- 添加了 testSettings.logStacktraceOnLog 和 testSettings.logStacktraceOnPass,启用
LOG
和PASS
测试结果条目的堆栈跟踪信息。 - 修复了JavaScript函数多次调用时出现的
const
和let
重复声明错误。
Qt特定
- Squish for Qt的发布版现在包含用于使用Qt 6构建的测试应用程序的二进制包。
- 彻底改进了Squish访问
QtWebEngine
组件的方式,解决了HTML对象随机出现的对象查找错误以及无法选择对象的问题。 - 添加了uninstallLazySignalHandler(name, signalSignature, handlerFunctionName) 函数,用于删除以前通过installLazySignalHandler(name, signalSignature, handlerFunctionName)添加的信号处理器。
- 增加了对调用setFocus(objectOrName)进行显式键盘输入焦点更改的对象类型QQuickItem和QWindow的支持。
- 为了与Qt 6兼容,Qt特定的
recordhints.h
头文件改变了其实施方式。在应用程序代码中整合RecordHint
功能的客户需要使用此头文件的当前版本重新构建。 - 删除了未记录的
dragStart
函数。Qt对象可以通过startDrag(source_objectOrName, sx, sy) + dropOn(target_objectOrName, tx, ty, action)或dragAndDrop(source_—object—Or—Name, sx, sy, target_—object—Or—Name, tx, ty, action)拖动。 - 修复了具有简单数值属性的对象的名称生成问题,因为Squish假定它们是复杂对象,导致无法再次查找的对象名称。
- 修复了在调用QImage grabWidget(object)对
QGraphicsItem
对象进行生成图像时的问题。在某些情况下,背景被留在随机(未初始化)状态。 - Squish的发布版本不再包含Qt 3的二进制包。如果您仍需要此类构建,请联系Qt Support Center。
- 改进了Qt 5和Qt 6应用程序的鼠标和触摸输入事件的重放。
- 用于Qt 6.0.0版本的Squish for Qt在macOS上当前提供为所谓的远程测试包。该包包括Qt包装程序以及squishconfig、squishserver和startaut工具,用于启动基于Qt 6的应用程序。对于
squishide
和测试脚本执行部分,可以下载并安装用于Qt 5(例如Qt 5.15)的正常Squish for Qt包。从ZIP文件中提取后,您可能需要在目录中运行以下命令以删除macOS在下载后设置的隔离标记:
xattr -c -r .
。之后,请运行命令bin/squishconfig --qt=path-to-qt-lib-dir
,并将<path-to-qt-lib-dir>替换为包含QtCore.framework
目录的目录(这可能在您的应用程序捆绑包内部)。如果使用ApplicationContext startApplication(autName)或从压缩包中使用
bin/startaut
启动,则最终开始启动bin/squishserver
。在
squishide
中,您需要配置远程测试。这通过从菜单中选择“Squish IDE”>“Preferences”来打开首选项对话框。在对话框中,展开Squish节点,选择Remote Testing。现在取消勾选自动启动squishserver的复选框。如果按照上述说明从命令行启动了squishserver,则应使用默认的host和port值。为了验证设置是否成功,通过Edit > Server Settings打开Server Settings对话框。如果对话框出现并显示配置的AUT,那么一切都正常。如果有问题,请查看的相关输出以及由
squishserver
命令生成的输出。 - 现在针对使用MinGW构建的Squish Qt包,Windows上用于获取屏幕截图的后端已经切换,以解决缩放或HiDPI屏幕的问题。
Web特定
- 已向BrowserTab 类添加了一个setUrl(url, timeout)函数,这允许指定等待新页面加载和勾选所需要的时间.
- 已从支持中移除版本号低于57的Firefox。
- 提高了在Windows和Linux系统上截图的逻辑,以产生准确的结果。
- 添加了一个新函数openNewTab(url),它可以在浏览器中打开一个新标签页并将URL加载到其中。支持Firefox、Google Chrome、Safari(版本12及以上)和Microsoft Edge。
- 已向startBrowser(url)函数添加了一个可选的超时参数。
- 修复了导致在尝试向嵌入到Windows应用程序中的Microsoft Internet Explorer控件中输入文本时,typeText(objectOrName, text)触发错误信息
IEFrame父窗口未找到
的问题。 - 修复了一个问题,该问题阻止Squish挂钩不允许在加载阶段执行JavaScript代码的某些网站。
Android特定
- 现在可以通过使用
squishide
的Remote Control视图来记录与AUT(应用程序)外的辅助功能对象的交互。 - installEventHandler(eventName, handlerFunctionNameOrReference)现在支持一个新的事件名
Vibrate
,每当AUT调用android.os.Vibrator.vibrate()
函数时都会触发。
Windows(原生)特定
- Squish for Windows现在将更多关于AUT(子)进程的信息记录到
squishide
的Runner/Server Log。 - Squish for Windows现在支持使用gesture(objectOrName, touches)函数重新播放手势。
- 已添加对.NET 5中的Windows Forms和WPF控件的支持。
- 现在可以使用表格验证点来验证Windows Forms中的Telerik Tables。
- 扩展了在为
List
、ListView
、Tree
、GridControl
、Pane
和TitleBar
控件生成名称时所考虑的属性集。现在生成的名称不太可能包含occurrence
属性。
macOS特定(Cocoa版本)
- “原生”脚本函数族(nativeType(keys)、nativeMouseClick(x, y, button)等)如果Squish或AUT没有启用无障碍API,现在将抛出错误。
- 修复了在帮助菜单中包含搜索字段时,在macOS 11上激活菜单项的问题。
- scrollToObject(objectOrName)不再在滚动时静默忽略问题。相反,将在测试报告中记录错误。
- 目前提供Squish for Mac适用于测试ARM64应用的所谓远程测试包。该包包括Mac包装器以及squishserver和startaut工具,用于启动基于ARM64的应用程序。对于squishide和测试脚本执行部分,可以下载和安装正常架构为Intel的Squish for Mac包。
解压缩后,您可能需要在目录中运行以下命令以移除macOS下载时设置的隔离标志:
xattr -c -r .
。之后,如果您使用ApplicationContext startApplication(autName),则启动bin/squishserver
,或者从压缩包中使用bin/startaut
启动AUT进行附加。在squishide中,您需要配置远程测试。通过使用Squish IDE > 首选项从菜单中打开首选项对话框。在对话框中展开Squish节点并选择远程测试。现在取消选中自动启动squishserver的复选框。如果像上面提到的那样从命令行启动squishserver,则应使用默认的主机和端口值。
为了验证配置是否正常,通过编辑 > 服务器设置打开服务器设置对话框。如果对话框出现并显示配置的AUT,则一切正常。如果存在问题,请在运行器/服务器日志选项卡以及
squishserver
命令产生的输出中查看。
为iOS特定版(iPhone/iPad版本)
- 修复了在squishide的应用程序对象视图中选中GUI元素时的高亮显示问题。
源代码包
- 添加了对使用Qt 6构建Qt工具包支持的支持。
- 构建Qt工具包支持不再默认将Qt安装路径硬编码,使行为与Squish二进制包相同。从源代码构建客户不再需要将
--disable-qt-hardcoded-path
传递给configure
。
已知问题
有关在Squish 6.7发布后发现的值得关注的问题的列表,请参阅froglogic知识库中的已知问题页面。
平台支持
正在逐步淘汰在较旧操作系统上运行squishide的支持。因此,从下一个Squish版本开始,某些旧平台的支持可能仅限于远程测试。特别是这影响到:
- macOS 10.12之前的macOS版本
- 早于CentOS/RHEL 7的Linux安装
这是由于用于 squishide
的框架支持减少造成的。请参阅 Eclipse 项目提供的此 目标环境链接 或例如 AdoptOpenJDK 项目支持的 平台。
©2024年 Qt公司有限公司。此处包含的文档贡献版权属于各自的拥有者。
此处提供的文档在自由软件基金会发布的 GNU自由文档许可协议版1.3 条件下授权。
Qt及其相关商标是芬兰及其它全球国家/地区的 Qt公司注册商标。所有其他商标均属其各自拥有者。