首页/文章/ 详情

Squish 7.2新版本发布:改进屏幕截图验证,支持Qt for WebAssembly等新功能

8月前浏览2025

本文翻译自:Improved Screenshot Verification, Qt for WebAssembly support and much more coming with Squish 7.2

原文作者:Qt Group 研发经理 Andreas Pakulat

校审:Joyce Jiang

我们非常高兴地推出Squish GUI Tester 7.2,作为跨平台GUI应用自动化测试的终极质量保证工具,它集成了激动人心的新功能。本次发布旨在将您的自动化测试工作提升到新的水平。

接下来,我们将介绍此版本中的最新改进。
观看我们的Squish 7.2发布概述视频
以下是一段5分钟的视频,将为您提供Squish 7.2所带来的重点功能的概览。

Squish for Qt

Qt WebAssembly支持
Qt for WebAssembly模块/平台已经发布一段时间了,越来越多的用户正在寻找一种测试方法,来验证他们的基于Qt的应用不仅能在桌面或嵌入式系统上运行,而且能在WebAssembly平台上运行。某些应用甚至是专门针对WebAssembly平台构建的。
Squish for Qt forWebAssembly支持测试在浏览器中运行的基于Qt的应用,适用于Qt 6.4和Qt 6.5。一旦使用Squish for Web的标准设置通过支持的浏览器执行被测的应用程序,它将在Squish中显示为专用的应用进程上下文。
我们全面支持交互操作的录制和回放,同时提供了我们在其他平台上对基于Qt的应用进行自动化时所一贯支持的自省功能。由于Qt for WebAssembly使用了一种名为Shadow DOM的技术以实现在浏览器中的集成,因此Squish for Web最近新增的Shadow DOM支持对于与周围网站交互的应用程序会有所帮助。
Squish源码中包含QtWayland和Weston扩展
Wayland平台架构限制应用对其他应用窗口或整个桌面的访问。这影响了Squish获取整个桌面的屏幕截图、在屏幕上移动AUT窗口以及模拟底层/原生级别交互的能力。
我们现在在Squish源包中包含了一个QtWaylandWeston自定义扩展,并通过将其包含在Squish构建系统中来简化构建过程。此项改进对使用嵌入式系统的Squish用户非常有益。考虑到Wayland在这些系统中的普遍性,此项改进将大大帮助他们的测试和自动化过程。除了包含代码本身,我们还扩展了Squish文档,提供了如何安装和使用这些扩展来获取桌面屏幕截图,模拟原生点击和键盘输入等所有必要的信息。
Squish for Java
支持SWT Scale
SWT 中的 Scale 小部件是传统用户界面中常见的多功能组件,它允许用户在视频中选择播放位置,以及在特定范围内进行可视化的输入选择。
以下是SWT Scale控件的图示:
然而,Squish对这种控件的支持之前仅限于点击和拖动操作,这种操作可能不精确,并且在回放时需要精确的值。
Squish 7.2 引入了通过使用 setValue 函数 对SWT Scale 控件设置特定值的支持,,该函数也用于滚动条控件或数字显示框。指定的数字将直接传递给 Scale 控件,相应地调整滑块中选择的数值,从而让测试脚本更精确地控制数值。
改进Java Detection/Reporting
Squish for Java的用户体验得到了改善,用户无需再手动指定要测试应用所使用的确切的Java运行环境。在此之前,这项要求会造成一些挑战,因为Squish for Java需要与所选的Java运行环境完全匹配,尤其是考虑到Squish for Java的一些组件是直接在应用进程内部运行的。以前的验证措施无法覆盖所有可能的组合,也无法检测到新的架构,比如基于ARM的系统的Java运行环境。
为了解决这些限制,我们对Squish安装程序的检测逻辑进行了全面的重构。此次改进使Squish能够发现更广泛的不兼容问题,确保了其与未来平台的兼容性。此外,我们改进了错误报告和提示信息,以便为用户提供清晰的指导,帮助他们找到可能遇到的任何设置问题的最佳解决方案。
编写脚本和调试测试
test.vpWithImage
Squish中的屏幕截图比较功能极具灵活性,同样基于对象识别原则,可将单个对象的渲染图像与特定的基准图像进行比较。这个比较过程可以进行多种配置以适应现代系统或动态变化的部分中的渲染差异。Squish目前获取实际对象屏幕截图的方式是不可配置的,而是由应用运行的平台、Squish的版本以及可能的对象类型决定。
我们引入了一个新的函数test.vpWithImage,它与test.vpWithObject函数相似。这个函数采用一个屏幕截图的验证点文件以提供预期的图像,同时提供任何其他的比较配置,从而允许使用灵活的比较方法。对于实际图像,即需要与其进行比较的对象的渲染图像,可以指定第二项参数,该参数可以是磁盘上常见的图像格式(例如png,jpg,bmp),也可以是图像对象。test.vpWithImage函数将使用在验证点中指定的所有常规比较选项,将存储在验证点文件中的预期图像与通过第二参数提供的实际图像进行比较。失败或通过的报告方式与test.vp函数保持一致。
用于应用上下文的调试器内省
Squish 提供了对作为ApplicationContext对象的应用的一些基本信息的访问,例如进程标识符、启动它的命令行,甚至关于使用的内存的大致信息。然而,这些信息在 IDE 中并不容易展现出来,而是必须通过在 IDE 的Console窗口中通过脚本代码来查询。这可能相当麻烦,并且与其他Squish特有类型不一致。
Squish 7.2版本中,在Squish IDE的Variables视图可以显示ApplicationContext对象的不同属性。这意味着,任何引用 ApplicationContext 对象的脚本变量都可以在变量视图中展现,所有的属性和属性的值都会显示出来。所以现在更容易调试测试脚本,并在不同的点上观察应用中的内存使用情况。这个功能目前仅限于 Python 和 Javascript 语言,我们计划在未来的版本中添加对其他脚本语言的支持。
新增Show in Application Objects新功能
为编写自动化测试脚本找到恰当的对象名称可能是一个像相当大的挑战:名称既要足够特殊,以便能识别出正确的对象,同时又需要具有一定的通用性,当应用界面进行小改动或动态变化,例如在窗口标题中包含文件名时仍能找到该对象。Squish已经提供了协助你完成这项任务的功能,例如你可以在Object Map中使用“检查是否存在”(Check Existence)按钮,来验证修改后的对象名称是否仍能找到对象。但是,即使找到一个与给定名称匹配的对象,也不代表它就是正确的对象,要验证这一点,需要运行测试或使用内置脚本控制台。
现在,Application Object视图中新增了一个名为“Show in Application Objects”的按钮。点击该按钮,IDE将会在所有正在运行和已连接的应用中查找选定的对象名称。找到与该名称匹配的对象后,将在Application Object视图中显示该对象。Application Object视图支持以与用户选取对象相同的方式查看对象。用户可以利用所有常用的应用测试(AUT)检测功能查看找到的对象,例如在应用窗口中高亮显示对象,或在Properties视图中查看各个属性值。
现在,Application Object视图中新增了一个名为“Show in Application Objects”的按钮。点击该按钮,IDE将会在所有正在运行和已连接的应用中查找选定的对象名称。找到与该名称匹配的对象后,将在Application Object视图中显示该对象。Application Object视图支持以与用户选取对象相同的方式查看对象。用户可以利用所有常用的应用测试(AUT)检测功能查看找到的对象,例如在应用窗口中高亮显示对象,或在Properties视图中查看各个属性值。

开发体验改进

JUnit报告包含被跳过的测试用例
Squish允许通过各种方式显示测试执行结果或被跳过的测试,包括命令行选项test.skip脚本函数或者BDD中的隐式行为。这些信息在分析测试结果时可能会有所帮助。自BDD引入以来,Squish就在其主要的XML3报告格式中包含了关于被跳过的步骤、测试用例和部分的详细信息。但是,JUnit报告缺失了这些信息,导致在将 Squish 测试结果与基于 JUnit 格式的工具集成时存在差距。现在这个问题得到了改进,在Junit格式报告中使用<skipped>包含相应信息,如果需要,将详细说明跳过测试用例、部分或步骤的原因。
浏览器检测
Squish for Web中的检测逻辑已扩展为考虑用户在不同操作系统上选择的默认浏览器,而不再根据平台和版本选择默认浏览器。这样的改变旨在改进新用户的默认选择,同时保证Squish测试可以在使用不同浏览器的情况下进行必要配置。这将确保用户日常使用且持续更新的浏览器作为Squish的首选浏览器。
改善离线文档
Squish团队不久前将其文档管理系统从docbook格式转为qdoc格式。由于技术原因,,这导致了Squish二进制包中生成的HTML文档有所退步。其整体风格不再与在线版本一致,且不再支持搜索功能。现在这两点都已得到解决,离线文档的样式与在线版本保持一致,且集成了搜索功能,可以在离线情况下在本地进行搜索。



深圳市优飞迪科技有限公司成立于2010年,是一家专注于产品开发平台解决方案与物联网技术开发的国家级高新技术企业。

十多年来,优飞迪科技在数字孪生、工业软件尤其仿真技术、物联网技术开发等领域积累了丰富的经验,并在这些领域拥有数十项独立自主的知识产权。同时,优飞迪科技也与国际和国内的主要头部工业软件厂商建立了战略合作关系,能够为客户提供完整的产品开发平台解决方案。

优飞迪科技技术团队实力雄厚,主要成员均来自于国内外顶尖学府、并在相关领域有丰富的工作经验,能为客户提供“全心U+端到端服务”。

来源:IFD优飞迪
通用python数字孪生控制渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-03-06
最近编辑:8月前
优飞迪科技
赋能新仿真,创优新设计
获赞 308粉丝 277文章 386课程 4
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈