Version 7.2

Squish 7.2 is a feature release which delivers new features, bug fixes and usability improvements to all editions of the product.

See the following sections for a detailed list of all changes.

Squish for Qt on a New Platform: WebAssembly

A new member of the Squish for Qt group of packages,Squish for Qt for WebAssembly, can be used to instrument an AUT built with Qt for WebAssembly to run in a browser and prepare it for testing. The testing of the deployed AUT can then be carried out with Squish for Web.

Embedded Extension for Weston (Wayland Compositor)

An extension of Weston (Wayland compositor) that makes AUTs fully testable with Squish on Wayland-based systems is now available for download within Squish embedded source packages.

New Function: test.vpWithImage

A new function test.vpWithImage allows to use an image object or an image in the given file/path on the filesystem instead of obtaining a screenshot from the object specified in the verification point.

Offline Documentation

The generated HTML documentation in Squish binary packages comes with a built-in search and a new look and feel, so it is fully equivalent to online documentation.

General

  • Fixed an issue with the AUT not receiving any user input after a failed attempt to highlight an object. Such a failure can happen e.g. when highlighting objects in temporary dialogs (pop-ups) or when closing one of the AUT windows while navigation in Application Objects view of the Squish IDE is still active.
  • The JUnit report generator (--reportgen junit) of squishrunner now also shows skipped BDD test cases and steps.
  • When creating verification points, information about repeated verification attempts is now a part of the verification message. Previously, it was logged as a separate message in case of multiple retries.
  • Dropped unintended behaviour of squishrunner, where a script with a name similar to the main script of a test case (such as test.foo.py or test.xyz.js) was executed instead. Implemented a stricter rule in that the main script to execute must be named test.[py|js|rb|pl|tcl].
  • Fixed loading of test data from XLSX spreadsheets where some string data is stored directly in the string cells instead of shared string table.

Squish IDE

  • For Squish evaluations, the days remaining until the end of the evaluation period are now displayed in the title bar of the Squish IDE.
  • Added a button and a context menu to the object map editor to look up an object name and show the found object in the application object view.
  • Fixed a problem with importing external test results into Test Results View on Windows.
  • Fixed a problem with code highlighting and navigating to symbol definitions in Squish Eclipse IDE plugin.
  • Improved filtering of test cases by tag in hybrid (comprised of both BDD and scripted test cases) test suites.
  • Only inline tags of BDD features and scenarios in accordance with valid Gherkin syntax specification are taken into account when filtering BDD test cases by tag in the Squish IDE. Test case-wide tags inside config.xml are ignored. This is consistent with the behaviour of squishrunner on command line (--tags option).
  • Accordingly, the Test Case Information editor can no longer add test case-wide tags to BDD test cases.
  • On Linux, the Squish IDE is now always started with XWayland. The Eclipse IDE and SWT (that the Squish IDE is built upon) lack full support of Wayland, but the windowing system became the default on many modern Linux distributions.

Scripting

  • In JavaScript and Python, ApplicationContext has now enumerable properties that can be easily viewed in the Squish IDE. Expanding an ApplicationContext object in Variables View will show the AUT name, working directory, PID and other properties with their current values. This is especially useful when automating multiple AUTs in one test case.
  • JavaScript's XMLHttpRequest.open() now additionally supports PATCH requests.
  • Fixed a problem with passing arguments to installed event handlers in Perl and Ruby when the handler was registered as a function reference instead of a function name.

Qt

  • On macOS, the Qt 5.15 series gained support for universal binaries in version 5.15.9. To support that, the following Squish binary packages for Qt 5.15 on macOS can be downloaded for maximum compatibility:
    • squish-7.2-qt515x-mac.dmg: the package for Qt 5.15.9 that supports universal binaries and AUTs built against Qt 5.15.9 or newer
    • squish-7.2-qt515x-macx86_64.dmg: the package for Qt 5.15.0 that supports x86_64 AUTs built against Qt 5.15.0 or newer
  • Fixed geometry calculation for widgets embedded into QGraphicsView that transforms or scales these widgets in some way. This resolves issues with the object highlighter, calculating object size with object.globalBounds() as well as native clicks on such objects.
  • Fixed a problem with string representation of composite QFlags.
  • Added support for picking of QWidget-based controls on touch devices.
  • Resolved an issue with the object highlighter stuck with previously selected object during picking.
  • Fixed a problem with duplicate top-level objects and input recording in AUTs built with debug Qt on Windows.
  • Added support for unversioned Qt module names in the SquishQtBuiltinHook cmake module (e.g. a target that links against Qt::Quick instead of Qt6::Quick now correctly enables QtQuick support in the built-in Qt hook.
  • The Qt3D example application is no longer shipped with Squish anymore as support for Qt3D has been dropped from Qt 6.4 and newer

Java

  • Added support for interacting with scale widgets in Java SWT applications.
  • Improved detection of JRE/JDK and reporting of possible architecture mismatch during installation.

Web

  • If no web browser for automating web sites is specified in the local squishserver configuration, a suitable browser is determined by checking the operating system settings. The following fallback values are used on each of these platforms if no browser can be found either way:
    • Linux: Firefox
    • Windows 10 and older: MS Internet Explorer
    • Windows 11: MS Edge
    • macOS: Safari

Windows

  • Fixed a problem with recognizing items in customized WPF ComboBox dropdown areas.
  • On Windows 10 and newer, the Windows Forms example application could not be run due to depending on the legacy .NET Framework 3.5 that is usually not present on these systems. Building and running this example AUT now requires a newer .NET Framework >= 4.0 and works out of the box.
  • Support for the following Windows-specific controls is going to be phased out in future Squish releases: GRIT, Exontrol and Infragistics COM. Generic UIAutomation in Squish for Windows can be a suitable alternative if you need to automate these legacy controls.

iOS

  • Pressing Return (type(<Return>) in a script) in UISearchBar of iOS apps now starts the search as it should.

Server

  • removeAUT action of squishserver --config does not take a path as an argument anymore. For compatibility, the extra argument is now ignored with a warning message if provided in an existing script or set-up.
  • squishserver --logfile now works on all platforms also without using --daemon option.

License Server

  • The behaviour of the license server (added in Squish 7.1.1) where command-line test executions use tester (Squish IDE) licenses if no more executor licenses are available, is now configurable. It can be enabled/disabled in the license server configuration.

Source Packages/Building from Source

  • Support for building Squish with Qt 3 is deprecated and will be completely removed in Squish 8.0
  • Building XView support and testing XView-based applications is deprecated and will be completely removed in Squish 8.0
  • Support for building Squish documentation with docbook has been dropped and the following configure switches can be safely removed from any scripts used to automatically build Squish
    • --with-dblatex
    • --with-docbookxml
    • --with-docbookxsl
    • --with-xsltproc
  • Desktop and embedded source packages no longer come with Squish documentation, neither in qdoc nor in HTML format. Users are encouraged to refer to HTML documentation in any binary package or read the documentation online.
  • When building squishrunner from source, the preferred version of Python is Python 3 instead of Python 2 if both are found when configuring the build. This is consistent with Squish binary packages which default to Python 3 since Squish 7.0.
  • Added support for building Python scripting language support from source with Python 3.11 (this does not affect Squish binary packages which ship Python 3.10 and Python 2.7).
  • It is now possible to build Squish against an external zlib installation with the new --with-zlib=$(path) configure switch as an alternative to building zlib code shipped with Squish sources. This can be helpful for static Qt AUTs where the AUT, Qt as well as Squish use zlib.

Notice of Deprecation

  • In this release, several legacy technologies and toolkits (Qt 3, XView, subset of controls in Squish for Windows) are marked as deprecated and their support is going to be removed in upcoming releases of Squish. If you do test these legacy applications with Squish and plan to continue to do so in the future, please contact (Qt Support Center) and let us know.

© 2023 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners.
The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation.
Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.