Version 6.1

Squish 6.1 is a feature release which delivers new features to all editions of the product.

General

  • A new verification point type Visual Verification Point has been introduced which greatly simplifies verifying the appearance of groups of controls (e.g. entire dialogs).
  • Added correlation based image comparison method.
  • A new installation program was implemented for Windows, Linux and macOS. The new installation program supports both unattended installations as well as creating shortcuts on the desktop or start menu.
  • Fixed an issue causing high CPU usage when executing drag-and-drop operations on X11 systems.
  • New test report versions were added to contain the results of Visual Verification Points. The new report generators can be selected by passing json1.1, xml3.1 or xml2.2 on the command line.

Squish IDE-specific

  • Creating scripted property verifications will now generate code using the Object waitForObjectExists(name) function, shortening the generated code.
  • Support choosing the editor which is used to open files from the testcase or testsuite, including allowing to use the system editor for the file.
  • To simplify test failures and interaction with technical support, it is now possible to save object snapshots of (sub-)trees of the AUT's object hierarchy via a context menu entry in the application objects tree or saveObjectSnapshot(objectNameOrReference, snapshotImageFile.xml) function.
  • The used license key is now shown (and can be changed) via the Help menu of the Squish IDE.
  • Improved error reporting in case creating screenshot verification points fails.
  • Fixed crash when spying with multiple contexts and the not-current context registering new classes or namespaces.
  • Fixed a problem with starting the recording after closing an object not found dialog through the Debug button.
  • Fixed a problem causing the Squish IDE to hang when trying to create a verification point during a recording session on Linux.

Scripting

  • A new Screen API was introduced which allows querying information about the connected screens (such as the display resolution).
  • A new ToplevelWindow API was introduced which allows generic interactions with toplevel windows, such as minimizing, maximing, closing or moving windows.
  • Support passing arbitrary callables (e.g. methods) to the Boolean waitFor(condition) function in Python.
  • Calling test.fixateResultContext() without any argument now actually complies to the documentation and behaves the same as test.fixateResultContext(1).
  • Greatly improved the testData.put(filename) function. Besides of ability to copy large files, they will be copied much faster than before.
  • Added WebSocket client support for JavaScript test scripts.
  • Added script functions setClipboardText(text) and text getClipboardText() for clipboard manipulation on AUT side. Users of non-Qt AUT on Linux needs to install the xsel tool for this feature to work.
  • Timeout problems when communicating to the AUT now cause script exceptions to be raised (which can be caught and handled) instead of aborting the test execution right away.
  • Test execution will now wait for all hooked subprocesses of started applications to terminate before ending the test run.
  • The Boolean test.compare(value1, value2) function in Perl now supports comparing complex AUT objects.
  • A new testSettings.objectNotFoundDebugging property was added which can be used to temporarily deactivate the object not found dialog.
  • Fixed the Boolean test.vp(name) function such that an expected failure does not skip following BDD steps anymore; Boolean test.vp(name) with an expected failure no longer throws a failed verification exception when testSettings.throwOnFailure is set to true.
  • The test.fixateResultContext() and test.restoreResultContext() functions now correctly influence the locations of test errors logged in response to script exceptions.

Qt-specific

  • New approach for hooking into a Qt 5 AUT that is compatible with the Gold Linker
  • Support for Qt WebEngine in both QtWidgets and QtQuick applications.
  • Support screenshots of QtQuick applications on Qt 5 embedded and mobile platforms that do not support native screen grabbing
  • Display (most important) properties of QRegExp in the spy.
  • Add support for QRegularExpression including properties in the spy.
  • The dllpreload program now respects a new SQUISH_DLLPRELOAD_DISABLE environment variable which can be made to make dllpreload not inject any code into the given process but rather launch it straight away.
  • Replay on QtQuick items now ensures that the toplevel window for the item has input focus and raise a script error if focusing fails.
  • Fixed a problem which caused AUTs to not launch sub-processes on Windows in case the sub-process is launched with the CREATE_BREAKAWAY_FROM_JOB flag.
  • Fixed non-working menu recording on macOS with Qt 5 in some cases (especially when a toplevel QMenuBar object is used).
  • Fixed playback of activateItem(itemObject) on macOS with Qt 5 in some cases where menu items in front of the item that should be activated was merged into the application menu.
  • Improved performance for listing a huge number of toplevel objects (i.e., when hitting a breakpoint).
  • Support building Qt toolkit support with GCC 6.1 or newer.
  • Blinking of text cursor ("caret") is temporarily suspended now while taking screenshots.

Java-specific

  • Support JavaFX HiDPI scaling on Windows.
  • Support JavaFX on Linux framebuffer.
  • Support for replaying SWT/Gtk3 on HiDPI X11 displays.
  • Fix for replaying on SWT/Gtk menus having scroll buttons.
  • Speedups in JavaFX object lookup when embedded in SWT.
  • Blinking of text cursor ("caret") is temporarily suspended now while taking screenshots.
  • Added support for hooking SWT applications based on Eclipse 4.6.

Web-specific

Windows (native)-specific

  • Most Windows Forms controls now expose a visible property.
  • Fixed a problem causing replay of actions on wxWidgets tab controls to fail.
  • A configuration setting was added to disable recording of Object waitForObjectItem(objectOrName, itemOrIndex) statements, this is useful for managing all item accesses via the object map.
  • Exposed text property of the Microsoft UIA Group type.
  • Fixed screenshots of maximized windows containing black borders or parts of the Windows task bar.
  • Blinking of text cursor ("caret") is temporarily suspended now while taking screenshots.
  • Fixed value of position property of WPF applications which use a RightToLeft flow direction.
  • Screenshots of top level windows no longer include decorations like drop shadows on Windows 10. This functionality can be disabled using a new entry in the SQUISH_DIR/etc/winwrapper.ini file called Include Decoration In Top Level Window Geometry.

    Note that depending on the Windows UI theme being used, this change in behavior may cause existing screenshot verifications of top level windows to fail. To resolve this issue, you can either use the aforementioned Include Decoration In Top Level Window Geometry setting, or update your expected screenshots.

    If you have multiple screenshots to update, you may want to consider setting the SQUISH_LEARN_SCREENSHOTS environment variable to 1 and then replaying your test scripts to automatically update all expected screenshots. See our blog article on this topic for a more elaborate discussion of this feature.

  • Added support for Delphi controls typically used in Inno Setup installers.
  • Squish will now omit recording relative coordinates when generating script statements which perform mouse clisk. A few object types are exempt from this, the exact set of types is configurable in a new setting Record With Relative Coordinates in the SQUISH_DIR/etc/winwrapper.ini file.
  • The startwinaut program has a new parameter --window-title. The parameter can be used to attach to an AUT given the title of one of the windows.

macOS-specific (Cocoa/Carbon edition)

  • Added support for view-based NSOutlineViews: In previous Squish versions, the cells in a view-based NSOutlineView appeared as NSNull objects and you couldn't do much useful things with this. In Squish 6.1 you now get the real view object for the cell instead of the NSNull. If you use the NSNull objects in your test scripts, you have to update them to use the view objects instead.

iOS-specific (iPhone/iPad edition)

  • Added support for testing applications in the iOS Simulator of Xcode 8.
  • The libsquishioswrapper.a library used for device testing has changed its dependencies for linking: use -lc++ instead of -lstdc++ and additionally specify -liconv for the linker options when building the app for Squish device testing.
  • Fixed automatically turning on accessibility properties on iOS 9.3 devices.
  • Added script function hideKeyboard() to hide the on-screen keyboard.

Android-specific

  • Fixed screenshot color channel swapped for some panels.
  • Fixed problem with rotated screenshot on Marshmallow.
  • Fixed a problem causing picking to not work inside WebView.
  • Improved stability of the androidobserver program in case an app shuts down unexpectedly.
  • Added bindings to the Android UI Automator Test Classes.
  • Added support for Android 7.0 "Nougat".
  • Added support for inspecting the AccessibilityNodeInfo hierarchy in the Spy and using such objects with the Android script API. See How to Work with Accessibility objects for more information.

Tk-specific

  • Support clickItem with TixHList based controls.
  • Fixed a problem with the lookup of menu items in a menubar on windows.

Source Packages

  • Detect if Qt needs a C++11 enabled compiler (Qt >= 5.7).
  • Support building JavaScript support with MSVC14.
  • The configure script now rejects unknown arguments instead of ignoring them.

Documentation

  • Overhauled the instructions for installing binary packages.

© 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.