版本 5.1.0

Squish 5.1 是一个重大新版本,包含了众多新功能和错误修复。以下是发布重点的精选摘要——所有主要更改的详细列表将在后续章节中提供。

  • Squish 的 Android、iOS 和 Qt 版本现在完全支持在触摸设备上进行自动化测试,包括对多指手势的全面支持。可以从测试脚本中记录和重播手势,并提供了一个方便的编辑器来编辑记录的手势。
  • 在回放测试过程中,对处理“未找到对象”错误的重大改进。测试执行将暂停,并弹出一个对话框,允许用户选择替代对象、编辑对象映射等。
  • 新增了针对 Atlassian Bamboo 和 JetBrains TeamCity 的集成插件。
  • 新增了用于将测试结果导入 Atlassian JIRA 的命令行工具。
  • 使用 Chrome 执行的 Web 测试不再需要使用代理服务器。
  • 将 QNX、Android 和 VxWorks 添加到了 Qt 应用程序测试的目标平台列表中。这是通过添加可选的嵌入式 SDK 实现的,也简化了嵌入式 Linux 和 Windows CE 的构建。
  • squishide 使用的 Python 编辑器会对测试脚本进行更广泛的代码分析。这使代码完成变得更好,包括 Squish 提供的函数和模块。如果测试脚本使用标准的 Python 导入机制包含共享脚本,编辑器的代码完成也将包括导入脚本中的函数和类。

通用

错误修复

  • 针对 squishrunner 程序的各种稳定性改进,以防 AUT 突然终止。
  • 修复了一个破坏了文件路径中包含 Unicode 字符的测试脚本回放顺序的问题。
  • 当在 Windows 上运行 Squish 时,如果发生问题将更频繁地生成特殊的“转储文件”,以改善与 froglogic 技术支持的交互。
  • 在 Windows 上创建屏幕截图验证点现在可以正确处理透明窗口。
  • setup 窗口现在不再是固定大小的。
  • setup 程序现在对选定的 JRE 执行健全性检查,以检测架构不匹配。
  • squishtest Python 模块进行了各种稳定性改进。

功能

  • 访问 AUT(调用方法、获取/设置属性等)的整体性能已提高。
  • Squish 现在包含了一个新的 xml2jira 工具,它允许根据 Squish 测试报告创建和更新 JIRA 票据。
  • squishrunner 现在增加了新的命令行选项 --exitCodeOnFail,可以在执行测试过程中遇到致命错误时定义 Squishrunner 应返回的自定义退出代码。
  • 新增了一个独立的 JavaScript 解释器 squishjs
  • 独立的 squishtest Python 模块现在可以与 Python Tools for Visual Studio 集成以及其他第三方 Python 调试器一起使用。

squishide

错误修复

  • 现在单击控制栏中的暂停按钮不会在所有运行的 squishide 实例中暂停测试执行。
  • 修复了测试套件设置中的环境表格的多个可用性问题。
  • 修复了在对象映射编辑器中编辑真实名称时的多个可用性问题。
  • 解决了一个与在对象映射编辑器中选择多个真实名称条目相关的问题。
  • squishide 现在在启动图像验证点编辑器或设置程序时不再“停滞”。
  • 修复了与具有特定字符(&#和某些非ASCII字符)名称的测试用例和测试套件相关的错误。
  • 改进了squishide的布局,以避免在特定情况下测试套件视图变得太小。
  • 在测试套件设置尚未保存更改时创建测试用例时,已抑制了触发外部修改检测对话框。
  • 当启动外部编辑器(例如图像验证点编辑器或手势编辑器)时,已纠正窗口聚焦问题。
  • 修复了一个错误,该错误导致在Ruby测试套件中创建某些属性的验证(例如class)时生成不正确的代码。
  • 修复了各种情况,在这些情况下,显示控制栏时不会隐藏对话框。
  • 在拾取对象时,控制栏中的暂停按钮不再启用(暂停按钮以前启用,但点击它没有任何效果)。
  • 解决了由于某些原因导致同时打开多个Python测试套件时显示Python相关错误消息的问题。

功能

  • 添加了一个新的关闭所有测试套件按钮。
  • 集成软件包现在支持集成到Eclipse 4。
  • 已添加对DLTK5/PyDev 3的支持。
  • 对Python测试的代码分析和代码补全功能进行了重大改进。
  • 现在可以直接通过测试套件设置编辑器打开Manage AUTs对话框。
  • 现在启动第二个squishide将显示一个对话框,建议终止现有的squishide以重新使用现有squishide的工作空间。
  • 已添加管理、查看和编辑手势的支持。
  • 什么是新功能页面现在将显示froglogic RSS源。
  • 工具选择对话框现在提供收集技术信息并提交给froglogic技术支持,以简化由损坏的安装引起的调试问题。
  • 现在可以更改squishserver的工作目录行为,以便它使用squishide的工作目录。

脚本

错误修复

  • JavaScript测试现在可以使用SQL对象连接到SQLite、PostgreSQL以及MySQL数据库。
  • Python和Ruby脚本中的Boolean test.compare(value1, value2)输出已得到改进,以包括比较值的类型。
  • JavaScript RegExp对象现在支持Unicode字符。
  • JavaScript SQLResult对象属性不再与SQL搜索结果中的字段名称冲突。

功能

  • 为在测试脚本中以编程方式创建手势,新增了新的GestureBuilder API。
  • 新增了ApplicationContext.totalTime属性,它返回AUT使用的CPU时间。
  • JavaScript XML对象现在具有一个新方法getElementsByTagName,它返回具有给定标签名的元素列表。
  • 添加了新的testSettings.logScreenshotOnPass属性,可用于在验证通过时自动创建屏幕截图。
  • 通过各种新方法扩展了JavaScript Array对象:map()filter()indexOf()lastIndexOf()forEach()some()every()

特定于Qt的

错误修复

  • 除了在macOS上执行的测试以外,setup程序现在默认自动查找AUT使用的Qt库(上述macOS测试仍需要指定库的路径)。
  • 点击 QGraphicsItem 对象时,openContextMenu() 函数现在能正确记录。
  • Qt5的示例程序现在包含必要的Qt库,可以使用户直接使用。
  • 当使用分层名称时,优化了在嵌入式Web控件中访问Web对象。
  • 在Qt 5应用程序中,正确暴露自定义基于QObject类型的QObject属性。之前通过函数调用(如QQuickItem::parent())访问内置属性的用户现在应简单使用.parent属性。

功能

  • 增加了对Qt 5.2的支持。
  • 增加了对QtQuick控件的专业支持。
  • 增加了对Visual Studio 2013构建的支持。
  • 现在可以记录和回放触摸事件以及多点触摸手势。
  • 当挂接到Qt应用程序失败时,Squish生成的诊断输出生成了重大改进。
  • 支持调用带有返回类型为QList<QObject*>的方法的脚本。
  • 添加了uninstallEventHandler()函数,允许卸载事件处理程序。
  • 支持通过带有qint16quint16quint32qrealushort参数或返回值的测试脚本来调用槽。
  • QPixmap子属性(如widthheightdepth)现在可以从测试脚本中访问,并在squishide中显示。
  • 增加了记录和回放QWindow的大小调整、移动和状态变化(最小化/最大化等)的支持。
  • 增加了在Solaris上运行测试时对QWebView控件的支持。
  • 在触摸设备上,现在可以通过轻触屏幕来拾取对象。
  • 增加了对QWidgets和QtQuick控件上单指轻触记录的支持。
  • 增加了对QtQuick控件上单指拖拽记录的支持。
  • 增加了对QWidgets和QtQuick控件上的(多点)触摸手势记录和回放的支持。
  • 现在可以针对多属性QListViewItem对象名称使用通配符。

Java-specific

错误修复

  • 修复了在Windows 8上使用AMD64 Java版挂接期间出现的崩溃。
  • 修复了创建自引用嵌套Java数组字符串表示时出现的崩溃。
  • 现在对于包含多个Stage对象的JavaFX应用程序,Spy工具也工作正常。
  • 简化了示例应用程序的部署;现在每个示例都捆绑在一个单独的.jar归档中。
  • 修复了从测试脚本中访问多维Java数组的错误。
  • 修正了JavaArray类的超类,它现在是java.lang.Object的子类。
  • 修正了处理JFace ControlDecoration对象的方式。
  • 修复了与最近SWT版本中的CTabFolder控件“左尖括号”对象相关的问题。
  • 解决了一个在回放测试脚本时使滚动到表格单元失败的bug。

功能

  • 添加了对Java 8的支持。
  • 增加了对Nebula GridNebula NatTable的专业支持。
  • 增加了对JavaFX应用中WebView控件包含的HTML对象的专业支持。
  • 测试脚本现在可以访问JavaFX列表、表和树中的不可见项。

Web-specific

错误修复

  • 通过使用触摸事件回放点击,提高了与触摸设备的兼容性。
  • 不再支持4.0版本以下的Firefox版本。
  • 修复了closePrompt()函数中的bug,该bug偶尔会导致它无法正确取消提示对话框。
  • 修正了由Internet Explorer显示的对话框中元素的坐标。
  • 提高了对<iframe>元素挂接的健壮性。
  • 当Squish连接到正在运行的IE实例时,测试完成后,IE窗口不再关闭。
  • 增强了支持简化版SmartGWT应用程序。
  • 修复了使用Chrome回放测试时,加载无协议的URL相关的问题。
  • 修复了关闭Internet Explorer窗口时触发的罕见崩溃。
  • 现在可以使用Internet Explorer 8运行地址簿示例。

功能

  • 现在可以在除了Internet Explorer以外的浏览器中,不触发关联动作来选择按钮链接。
  • 添加了对自动化由嵌入式网络控件显示的警告/确认/提示对话框的支持。
  • 扩展了Chrome支持,通过移除基于代理测试的限制。现在可以使用Chrome插件访问Chrome。
  • visible属性现在考虑CSS定义的可见性。
  • 添加了新的BodyUnloaded事件,允许测试脚本响应当前页面正在卸载。
  • selectOption()函数现在可以使用字符串列表调用,以简化选择多选字段中的多个条目。
  • selectOption()函数现在支持根据其value属性而不是用户可见字符串选择条目。
  • 添加了对在Solaris上使用Firefox运行测试的支持。

Windows(本地)特定

错误修复

  • WPF的DatePicker控件现在公开了嵌套编辑控件,使得正确回放文本输入到日期选择器工作。
  • 修复了Squish偶尔无法挂载到.NET应用程序的bug。
  • 解决了有时会导致在MFC列表视图中回放测试脚本触发高CPU负载的问题。
  • 修复了可能导致系统耗尽内存的资源泄漏问题,如果Squish反复连接和断开应用程序。
  • 大大提高了确定哪个WPF控件(如果有)位于鼠标光标下的准确性,这解决了在WPF控件上记录动作和选择它们的多种问题。
  • 解决了在Windows窗体应用程序上回放测试时可能发生的潜在崩溃。

功能

  • 添加了对DevExpress WPF控件的专用支持。
  • Squish现在尝试使用Microsoft UI自动化框架访问GUI控件,然后再回退到基于WindowsControl的通用自动化。
  • 在Spy中显示的对象名称现在更具描述性。
  • MFC菜单项现在公开了id属性。

macOS特定(Cocoa/Carbon版本)

  • 现在可以为嵌入式网络控件中的Web对象创建截图验证点。
  • Squish包现在是“通用构建”,32位和64位应用程序都可以使用单个Squish包进行测试。
  • injectMacWrapper示例脚本不再需要修改即可使用。
  • selectOption()现在可以与嵌入式到OS X应用程序中的WebView控件一起使用。

iOS特定(iPhone/iPad版本)

  • 支持记录和回放多触控手势。
  • 添加了对使用Xcode 5.1和iOS 7.1进行构建的支持。
  • selectOption()现在可以与嵌入式到iOS应用程序中的WebView控件一起使用。

Android特定

  • 添加了对记录和回放多触控手势的支持。
  • 添加了一种改进性能的实验性替代钩接方法。
  • Native.java.lang.Class.forName("package.Class")现在可以用于不进行任何其他步骤的情况下访问所有本地类。
  • tapMenuItem() 函数现在在找不到菜单项时正确地抛出异常。
  • 已修复在 Android 4.0 ("冰激凌三明治") 的 WebView HTML 对象上记录键盘输入的问题。
  • 现在在调用 ApplicationContext startApplication(autName) 以启动 Android 应用程序时可以指定 TCP 设备字符串。

Tk 特定

  • 增加了对使用重命名 Tk 库的应用程序的支持(仅限于 Linux)。
  • 增加了对 Perl/Tk 应用程序的支持(仅限于 Linux)。

附加组件

  • Ant 集成现在支持运行给定测试套件中的多个测试用例。
  • Jenkins 集成插件现在支持设置 squishserver 选项。
  • Jenkins 集成现在允许在单个构建步骤中运行多个 Squish 测试用例。
  • Jenkins Squish 构建步骤输入的设置现在进行了更严格的验证。

文档

  • Squish/Web 用于生成对象名称的算法现在已记录。
  • HTML 帮助的 搜索 功能已重新设计,以提供更好的结果。此外,结果按主题分组。
  • 创建部分构建(用于 Qt 测试)的说明已经简化。

Qt 特定的源包

  • 新增的嵌入式 SDK 可以为 QNX(使用 qcc 编译器前端)、Android、VxWorks 以及为嵌入式 Linux 提供简化配置提供支持。对于具有现有跨编译构建支持合同的客户,将为其目标平台提供免费升级。
  • 使代码在 Qt 5.3(仍处于测试版本)下编译。
  • squishidl 工具现在包含在 Squish 二进制包中,以简化部分构建。
  • Squish 源构建现在可以利用现有的 squishidl 二进制文件(对于嵌入式构建很有用)。
  • configure 程序中现在选择性地查询一个可选的 Qt 命名空间名称以及来自 qmake 的库中缀(当使用 qmake 时)。
  • configure 程序中可以选项性地查询 qmake 以获取要使用的编译器和连接器标志。
  • 已添加了一个 install 目标,以简化分发到远程和嵌入式系统(目前不支持 macOS)。

©2024 The Qt Company Ltd. 包含在本内的文档贡献是各所有者的版权。
提供的文档受 GNU 自由文档许可证 1.3 版本 的条款约束,由自由软件基金会发布。
Qt 及其相关标志是 The Qt Company Ltd. 在芬兰以及/或全球其他国家的商标。所有其他商标属于其各自所有者。