版本 6.1
Squish 6.1 是一个特性发布版本,它为产品的所有版本带来了新功能。
通用
- 引入了一种新的验证点类型 视觉验证点,它可以极大地简化验证控制组(例如整个对话框)的显示。
- 添加了基于图像比较的方法。
- 为 Windows、Linux 和 macOS 实施了新的安装程序。新的安装程序支持无人值守安装以及在桌面或开始菜单上创建快捷方式。
- 解决了在 X11 系统上执行拖放操作时导致 CPU 使用率高的一个问题。
- 添加了新的测试报告版本,包含 视觉验证点 的结果。可以在命令行上通过传递
json1.1
、xml3.1
或xml2.2
来选择新的报告生成器。
squishide
特定
- 现在将生成使用 Object waitForObjectExists(name) 函数的代码来创建脚本的属性验证,从而缩短生成的代码。
- 支持选择用于打开测试用例或测试套件文件的编辑器,包括允许使用系统编辑器打开文件。
- 为了简化测试失败和技术支持交互,现在可以通过应用程序对象树中的上下文菜单条目或 saveObjectSnapshot(objectNameOrReference, snapshotImageFile.xml) 函数保存 (子-) 树的 AUT 对象层次结构快照。
- 现在可以通过
squishide
的 帮助 菜单显示(并可以更改)使用的许可证密钥。 - 当在 Linux 上记录会话期间尝试创建验证点时,改进了错误报告。
- 解决了在多个上下文中跟踪,且当前上下文注册新类或命名空间时的崩溃问题。
- 解决了在关闭“未找到对象”对话框后尝试通过 调试 按钮启动录制的问题。
- 解决了在 Linux 上尝试在记录会话期间创建验证点时,导致
squishide
停止响应的问题。
脚本
- 引入了一个新的
Screen
API,它允许查询有关连接的屏幕(例如显示分辨率)的信息。 - 引入了一个新的
ToplevelWindow
API,它允许与顶层窗口进行通用交互,例如最小化、最大化、关闭或移动窗口。 - 现在支持将任意可调用对象(例如方法)传递给 Python 中的 Boolean waitFor(condition) 函数。
- 在没有参数的情况下调用 test.fixateResultContext() 现在实际上符合文档说明,并且与
test.fixateResultContext(1)
具有相同的运行行为。 - 显著改进了 testData.put(filename) 函数。除了能够复制大文件外,它们的复制速度比以前快得多。
- 为 JavaScript 测试脚本添加了 WebSocket 客户端支持。
- 为 AUT 侧的剪贴板操作添加了脚本函数 setClipboardText(text) 和 text getClipboardText()。Linux 上非 Qt AUT 的用户需要安装 xsel 工具才能使用此功能。
- 与AUT通信超时时现在不会立即终止测试执行,而是引发脚本异常(可以捕获和处理)。
- 测试执行现在将在测试运行结束前等待已启动应用程序的所有钩子子进程结束。
- Perl中的布尔测试比较函数.compare(value1, value2)现在支持比较复杂的AUT对象。
- 新增了testSettings.objectNotFoundDebugging属性,可用于临时禁用对象未找到对话框。
- 修复了布尔测试(vp(name))函数,使得预期失败不再跳过后面的BDD步骤;布尔测试(vp(name))在预期失败的情况下,当testSettings.throwOnFailure设置为
true
时,不再抛出失败的验证异常。 - test.fixateResultContext()和test.restoreResultContext()函数现在可以正确地影响脚本异常响应中记录的测试错误位置。
Qt特定的
- 一种新的与Gold Linker兼容的Qt 5 AUT挂钩方法
- 支持在QtWidgets和QtQuick应用程序中使用Qt WebEngine。
- 支持在Qt 5嵌入式和移动平台上无法获取屏幕截图的QtQuick应用程序的截图。
- 在spy中显示(最重要的)属性
QRegExp
。 - 添加了对包括在spy中属性在内的
QRegularExpression
的支持。 - dllpreload程序现在尊重新的环境变量
SQUISH_DLLPRELOAD_DISABLE
,可以使其不上注代码到指定进程,而是直接启动它。 - 重放QtQuick项目时现在确保顶级窗口具有输入焦点,如果聚焦失败则触发脚本错误。
- 修复了在Windows上,如果用
CREATE_BREAKAWAY_FROM_JOB
标志启动子进程,AUT不会启动子进程的问题。 - 在macOS中使用Qt 5的情况下(特别是在使用顶级
QMenuBar
对象时),某些情况下的非正常菜单录制问题得到修复。 - 在macOS中使用Qt 5的情况下,某些情况下
activateItem(itemObject)
的重放得到修复,其中的菜单项被合并到应用程序菜单中。 - 提高了列出一个大量顶级对象(即,在遇到断点时)的性能。
- 支持使用GCC 6.1或更高版本构建Qt工具包支持。
- 在拍照时,现在暂时暂停文本光标(“光标”)的闪烁。
Java特定的
- 支持Windows上的JavaFX HiDPI缩放。
- 支持Linux帧缓冲区上的JavaFX。
- 支持在HiDPI X11显示器上回放SWT/Gtk3。
- 修复了在SWT/Gtk菜单带有滚动按钮的情况下回放的问题。
- 在SWT内嵌时的JavaFX对象查找加速。
- 在拍照时,现在暂时暂停文本光标(“光标”)的闪烁。
- 为基于Eclipse 4.6的SWT应用程序添加了挂钩支持。
Web特定的
- 在所有Squish为Web生成的名称中包括浏览器标签容器,而不仅仅是在生成的录制交互中。
- 在对象名称中使用并记录
simplifiedInnerText
属性,而不是innerText
,以提高跨不同浏览器的测试稳定性。 - 为 HTML_Select.deselectByValues(values)、HTML_Select.deselectByIndexes(indexes) 和 HTML_Select.deselectByTexts(texts) 提供便捷函数,用于
HTML_Select
对象中的select
元素解除选中项。 - 为
HTML_Select.selectedValues
、HTML_Select.selectedTexts
、HTML_Select.selectedIndexes
和HTML_Select.selectedLabels
提供便捷属性,这些属性提供对象选中项的值、文本、索引或标签。 - 修复了在 Chrome 中导航后,新页面未正确挂钩的问题,导致对象查找错误,并且 Spy 中没有
DOCUMENT
对象的问题。 - 添加了如何启用“允许来自 Apple 事件的 JavaScript”的详细说明,这是自动化 macOS 10.11.5 及以后的 Safari 所必需的。
- 添加了 String Browser.majorVersion() 函数。
- 将
top
/bottom
对齐参数添加到 scrollTo(objectOrName, top) 函数中。 - 添加了 startDrag(src_objectOrName, sx, sy) 和 dropOn(target_objectOrName, tx, ty) 函数,用于模拟拖放操作。
针对 Windows (本地)特定的内容
- 现在大多数 Windows Forms 控件都公开了
visible
属性。 - 修复了一个问题,该问题导致在 wxWidgets 选项卡控件上的操作回放失败。
- 添加了一个配置设置,以禁用 Object waitForObjectItem(objectOrName, itemOrIndex) 语句的记录,这对于通过对象映射管理所有项目访问非常有用。
- 公开了 Microsoft UIA
Group
类型的text
属性。 - 修复了最大化的窗口截图,其中包含黑色边框或 Windows 任务栏的部分。
- 在拍照时,现在暂时暂停文本光标(“光标”)的闪烁。
- 修复了使用
RightToLeft
流向的 WPF 应用程序的position
属性的值。 - 顶级窗口的截图不再包含装饰,例如 Windows 10 中的下落阴影。可以使用
SQUISH_DIR/etc/winwrapper.ini
文件中的新条目“Include Decoration In Top Level Window Geometry
”来禁用此功能。注意,根据使用的 Windows UI 主题,此行为的变化可能会导致现有顶级窗口的截图验证失败。要解决此问题,您可以使用上述“
Include Decoration In Top Level Window Geometry
”设置,或更新预期的截图。如果您有多个截图需要更新,则可能需要将
SQUISH_LEARN_SCREENSHOTS
环境变量设置为1
,然后重新播放测试脚本以自动更新所有预期截图。有关此功能的更详细讨论,请参阅我们的博客文章。 - 添加了对在 Inno Setup 安装程序中通常使用的 Delphi 控件的支持。
- Squish 在生成鼠标点击脚本语句时,现在将忽略记录相对坐标。一些对象类型豁免,确实的类型集可以在新的设置中配置,该设置位于
SQUISH_DIR/etc/winwrapper.ini
文件的Record With Relative Coordinates
中。 - startwinaut 程序有一个新的参数
--window-title.
该参数可以用来根据窗口的标题连接到一个自动测试单元 (AUT)。
macOS 特定(Cocoa/Carbon 版本)
- 添加了对基于视图的
NSOutlineViews
的支持:在与先前 Squish 版本中,基于视图的NSOutlineView
中的单元格以NSNull
对象的形式出现,无法对其进行太多有用的操作。在 Squish 6.1 中,您现在可以获得单元格的实际视图对象,而不是NSNull
。如果在您的测试脚本中使用NSNull
对象,您必须更新它们以使用视图对象。
iOS 特定(iPhone/iPad 版本)
- 添加了对 Xcode 8 的 iOS 模拟器的应用测试的支持。
- 用于设备测试的
libsquishioswrapper.a
库已更改其链接依赖项:使用-lc++
而不是-lstdc++
,并在为 Squish 设备测试构建应用程序时,.eyeblink DL 添加-liconv
作为链接器选项。 - 修复了在 iOS 9.3 设备上自动开启辅助功能属性的问题。
- 添加了脚本函数 hideKeyboard() 来隐藏屏幕键盘。
Android 特定
- 修复了某些面板截图颜色通道交换的问题。
- 修复了Marshmallow 上旋转截图的问题。
- 修复了在 WebView 内部不工作的选择问题。
- 在应用程序意外关闭的情况下提高了 androidobserver 程序的稳定性。
- 添加了对 Android UI Automator 测试类的绑定。
- 添加了对 Android 7.0 “Nougat” 的支持。
- 添加了对检查 Spy 中的
AccessibilityNodeInfo
层级以及使用 Android 脚本 API 的这些对象的检查功能。参见 如何处理辅助功能对象 以获取更多信息。
Tk 特定
- 支持 TixHList 基的控件使用 clickItem。
- 修复了在窗口菜单栏中查找菜单项的问题。
源代码包
- 检测 Qt 是否需要启用 C++11 编译器(Qt >= 5.7)。
- 支持使用 MSVC14 构建 JavaScript 支持。
- 现在,
configure
脚本拒绝未知参数,而不是忽略它们。
文档
- 彻底更新了安装二进制包的说明。
©2024 The Qt Company Ltd. 本文档中的文档贡献是相关所有者的版权。
在此提供的文档根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款进行许可。
Qt 和相关标志是芬兰和/或世界上其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其所有者的财产。