版本 6.4
Squish 6.4 是一个功能发布,为产品的所有版本带来了新功能。
此外,自Squish 6.3以来,许多特性和bug修复被应用到各个Squish版本中;请参阅以下部分以获取所有更改的详细信息。
基于脚本的对象映射
本Squish版本引入了用于表示和管理对象名称的新、更强大的方案:基于脚本的对象映射。Squish 6.4不再使用以冒号为起始的字符串作为符号名称来引用真实名称(这些也是字符串),而是使用基于脚本的对象映射,其中对象映射是一个普通的共享脚本,它包含字典变量。这使得处理对象名称变得更加容易和安全,支持各种有用的用例,例如
默认情况下,对于新创建的测试套件使用基于脚本的对象映射;现有的测试套件将继续以前的工作方式,但可以使用方便的迁移向导将基于脚本的对象映射转换为基于文本的对象映射。
有关Squish 6.4中对象映射的结构和功能更多信息,请参阅基于脚本的对象映射。
基于图像的对象查找
Squish 6.3 引入了基于应用控件视觉外观识别控件的基本支持。Squish 6.4在此基础上,大幅提升了此功能的可用性和功能。
现在可以按组对搜索图像进行分组。组内每个图像被视为控件的等同有效表示。将不同平台上捕获的图像分组在一起,具有不同的渲染风格或不同的显示分辨率,可以增加测试脚本的健壮性。
Squish 6.4支持容错基于图像的对象查找。它允许模板图像与其在桌面上的出现之间的微小偏差,并提供可调整的阈值以确定匹配项。
新的缩放图像搜索模式允许缩放后的模板图像出现。大小变化的控件可以使用单个图像文件进行匹配。
squishide
为基于图像的对象查找提供了改进的支持。新的未找到图像对话框和图像搜索预览对话框帮助诊断和修复图像搜索错误。
有关基于图像的对象查找配置的更多信息,请参阅ScreenRectangle findImage(imageFile, [parameterMap], [searchRegion])和ScreenRectangle waitForImage(imageFile, [parameterMap], [searchRegion])函数。
总体
- squishrunner现在在生成的测试报告中记录任何失败的验证、失败或致命错误时的脚本堆栈跟踪。
- 添加了一个替代的JUnit报告生成器,它在其生成的测试报告中保留了testcase和BDD测试结构。
- 当ApplicationContext startApplication(autName)或ApplicationContext attachToApplication(autName)调用失败时,减少了squishrunner和squishserver的资源消耗(包括内存和TCP连接)。
- 修复了在访问刚刚崩溃的AUT的应用程序对象时可能发生的squishrunner崩溃。
- 修复了当AUT异常终止时,XML 3.x测试报告中记录的时间戳不正确的问题。
- 修复了在Unix上没有X11服务器时Squish软件包的无人值守安装。
- 修复了在命令行上终止squishrunner测试用例执行时的测试报告不完整问题。
- 改进了squishrunner启动时的错误报告。现在,在编写测试报告时遇到问题会通过清晰的错误消息终止。
- 解决了squishrunner连接到squishserver时的错误报告问题。现在,无法连接将导致测试报告中出现适当的错误。
- 在测试套件重放模式中,传递给squishrunner中--reportgen或--resultdir选项的相对路径现在被视为相对于启动目录。之前它们是相对于测试套件目录。
- squishrunner在测试套件模式现在支持使用--envvar和--envvars选项来提供或覆盖测试套件级别的环境变量。
- 引入了一个节点锁定的用户许可密钥选项。
- vpdiff工具现在支持创建和编辑宽度或高度小于10像素的图像掩码。
- xml2jira工具现在支持使用xml3、xml3.1、xml3.2和xml 3.3格式更新JIRA工单。
squishide
-特定的
- 修复了一个问题,由于该问题,在macOS上,在测试脚本中单步执行有时工作非常缓慢。
- 导出的结果存储为ZIP文件,包含失败的图像、屏幕截图和失败的对象转储。
- 支持使用ZIP报告或在XML报告文件中导入结果到测试结果视图。
- 测试套件测试套件设置视图的内容现在分散在多个选项卡中,这些选项卡位于编辑区域底部。
- 支持从套件视图选择要运行测试的iOS模拟器设备。
- 在脚本编辑器中按Ctrl(macOS上的Cmd)并在符号名称上悬停时,会提供突出显示匹配对象或检查其存在性的选项。
- 改善加载应用程序对象子代或属性耗时时的反馈。
- 支持从方法视图中复制方法信息。
- 支持在方法视图和属性视图中筛选。
- 在复制来自结果视图的条目文本时包含文件/行号。
- 修复了测试套件设置编辑器在更改Squish安装位置时未自动更新导致的问题。这导致在套件设置中显示过期和不正确的信息。
- 在对象映射编辑器的上下文中提供了检查存在性和突出显示对象的条目。
- 使Squish工具或AUT(由squishide直接或间接启动)启动崩溃转储对话框的显示配置成为可能。
- 支持在测试脚本编辑器中的符号名称上使用Ctrl + 鼠标单击来检查名称的存在性或突出显示对象。
- 修复了Ruby脚本中自动缩进的问题,该问题影响了新记录的脚本代码的格式化。
- 在测试套件创建对话框中记住选择的工具包、脚本语言和AUT。
- 修复了在执行测试或记录单个场景之前未保存所有打开的编辑器的问题。
- 在应用程序对象视图的上下文菜单中的复制/添加操作,通过squishide的状态栏解释发生的情况。
- 支持将文件夹从系统文件资源管理器拖放到全局脚本视图,将其作为全局脚本目录添加。
- 添加了对处理
xlsx
格式(即现代Excel版本)的测试数据文件的支持。 - 在全局脚本视图中支持对文件名的过滤,并添加默认的过滤器集,以隐藏编译后的Python文件和与版本控制相关的文件。
- 在保存功能文件时,所有行末尾的空格都将被删除。
- 增加对通过xml3.3报告生成器生成的报告中的堆栈跟踪信息显示的支持,并在可用时使用该生成器从
squishide
执行测试。 - 在执行了一组测试用例后在测试结果视图中添加一个新的上下文菜单项,可以重新执行单个测试用例或场景。
- 扩展了在测试套件设置中的环境表格,增加了添加/删除按钮,使编辑表格更容易被发现。
- 将测试设置页面添加到测试套件设置视图中,允许更改从testSettings对象中可用的各种项的默认值。
- 修复了当选择的对象的realname包含包含换行符的属性时,属性视图显示不出属性列表的问题。
- 修复了当通过多次调用
runFeatureFile
执行多个功能文件时,导致错误对话框弹出的问题。
脚本
- 允许将本地字典/散列传递给对象查找函数。
- 将共享和全局脚本目录添加到用于语言特定模块导入语句的搜索路径中。
- 增加对基于ECMAScript 2015
import
和export
关键字的JavaScript模块的支持。 - 增加对JavaScript
for (... of ..)
ECMAScript 6循环的支持。 - 增加了ECMAScript 6的JavaScript
Set
对象。 - 增加了ECMAScript 2015的默认JavaScript函数参数支持。
- 添加了SequenceOfObjects findAllObjects(objectName)脚本函数。
- 修复了在一些情况下,snooze(seconds)没有将脚本执行暂停足够长的问题。
- 添加了test.breakpoint()函数。
- 支持使用
xlsx
格式读取测试数据文件。 - 修复了在使用主测试脚本文件顶层作用域中的
objectMap
脚本API时可能发生的崩溃问题。 - 修复了在一些罕见情况下调用错误的Squish函数的问题。
- Squish附带的Python和Ruby解释器现在包含SSL加密支持,使测试脚本中的安全哈希或HTTPS连接成为可能。
- 在致命脚本错误也将遵守testSettings.logScreenshotOnError属性。
Qt特有
- 增加了对Qt 5.11的支持。
- 修复了当有大量不可见对象存在时QtQuick名称生成的性能问题。
- 如果squishserver启动了AUT,现在将正确地转发了Qt工具包支持的日志输出。以前将日志输出处理为AUT的标准错误输出。
- Qt工具包支持不尊重传递给squishrunner的
--debugLog p
选项,与早期版本相比,默认输出较少的日志消息。 - 在Windows上启用了MinGW软件包的原生屏幕截图功能,修复了某些驱动器/硬件组合上QtQuick/3D的屏幕截图VP。
Java特有
- 恢复了对IBM Java虚拟机的支持,该支持在添加对Java 9支持后被移除。
- 修复了macOS上的SWT双击函数 doubleClick(objectOrName, x, y, modifierState, button) 和 doubleClickItem(objectOrName, itemText, x, y),使其在触发双击而不是连续两次单击。
- 避免尝试自动化已经销毁的SWT浏览器控件。
- 使用Java 9修复了特定于应用程序的安全策略。在包装器配置文件(
etc/javawrapper.ini
)或通过环境变量SQUISH_WRAPPER_CONFIG
指定的文件中可以指定策略文件。 - 提高了同时使用SWT和JavaFx控件的应用程序的稳定性。
- 修正了最近Eclipse版本检测JFace
ControlDecoration
的问题。
网络特定
- 修复了从
squishide
检查网站时处理确认/提示对话框的问题。 - 修复了Google Chrome的优雅关闭,避免了'恢复会话'弹出窗口。
- 访问不再存在的HTML对象的属性或调用其函数将引发错误,而不是默默地失败。特别是,这影响了在网站重新加载或导航到不同页面时仍然保持活跃的对象引用。
- 支持不指定URL即可启动基于CEF的浏览器(以及其他通过webdriver自动化的浏览器)。这可以用于加载从打包资源加载Web内容的Web应用程序。
- 修复了导致Google Chrome以两个标签(标记为files和(x86))启动而不是正常启动的问题,这导致浏览器钩失败。
- 修复了nativeMouseClick(x, y, button)中存在的缺陷,如果要单击的元素不在浏览器可见区域内,它总会失败。
- 当附加到正在运行的Chrome或Firefox实例时,会话数据(cookie、缓存、历史记录、表单数据等)将不会重置。
Windows(本地)特定
- 修复了Object waitForObject(objectOrName)有时即使
visible
或enabled
属性为false
,也会假设对象已准备好交互的问题。 - 提高了WPF和Windows Forms GUI工具包之间的互操作性。同名GUI类型现在可以具有不同的属性。
- 将属性
source
添加到WPFImage
对象中,以帮助识别它们。 - 改进了在WPF模板化控件上的点击。
- 修复了访问嵌入到Qt应用程序中的.NET控件的问题,但.NET控件在单独的线程中执行。
macOS特定(Cocoa/Carbon版本)
- 修复了在带有锁定的屏幕或快速用户切换的Mac上播放mouseDrag(objectOrName, x, y, dx, dy)的问题。
iOS特定(iPhone/iPad版本)
- 修复了iOS 11模拟器的自动启用辅助功能的问题。
Android特定
- 支持使用Android SDK 3(android-26)构建的
apk
文件。
源包
- 在JavaScript和Squish for Web的源包中包含WebSocket支持。
- 构建Squish Tools(运行程序、IDE工具)现在需要Qt 4.6或更高版本。
文档
- 扩展了automateLogin(username, password)的文档,以涵盖网站在加载页面本身期间请求登录而不是在单击按钮时登录的场景。
已知问题
关于发布Squish 6.4后发现的一些重要问题,请参阅froglogic知识库中的已知问题页面。
平台支持
对于在旧操作系统上运行 squishide
或 squishrunner 的支持正在逐步淘汰。因此,从即将发布的 Squish 版本开始,对于一些旧平台的支持可能仅限于远程测试。特别是,这影响了以下系统:
- Windows 7之前的版本
- macOS 10.10之前的版本
- CentOS 6之前的Linux安装
- AIX和Solaris
这是由于 squishrunner 和 squishide
使用的框架支持减少。例如,请参阅Eclipse项目发布的已删除平台通告,或Qt 5.9支持的平台。
©2024 The Qt Company Ltd. 嵌入本文件的文档贡献的版权属于各自的所有者。
此处提供的文档是根据Free Software Foundation发布的GNU自由文档许可协议版本1.3许可的。
Qt以及相关的徽标是芬兰Qt公司及其在世界各地的商标。所有其他商标均为其各自所有者的财产。