Version 6.7

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

Noteworthy highlights of this release include:

New Edition: Squish for VNC

This version introduces a new edition to the Squish ecosystem: Squish for VNC. This edition employs state-of-the-art image detection and AI-based OCR algorithms to enable robust GUI test automation for any GUI.

Squish for VNC unifies multiple powerful features in a single solution:

  • Toolkit agnostic: Squish for VNC abstracts away the technology used for building the user interface, making it possible to test applications built with legacy or completely custom UI technologies.
  • Unintrusive: no internals of any application need to be accessed.
  • Holistic testing: Squish for VNC automates the entire display. Multi-process applications in which the GUI is composed from multiple separate processes can be tested seamlessly.
  • Full Network Transparency allows accessing the user interface for both desktop as well as embedded user interfaces remotely.

Support for the Latest UI Technologies

The Squish for Qt edition was extended to feature full support for applications built with the latest Qt major release, Qt 6. The Squish script API is fully compatible with Qt 6, but script code directly accessing the Qt API may require updating.

Squish for Windows now fully supports .NET 5 applications and allows replaying gestures such as pinching or swiping for applications using touch screens such as the ones featured on Microsoft Surface devices.

Faster, Simpler Access To Tech Support

Reaching out to the froglogic tech support team is easier than ever. A straightforward support wizard is now available right within the Squish IDE. Questions on your mind about how to use Squish? Wondering if there are best practices? Get in touch with the froglogic experts and benefit from having years of experience at your fingertips!

General

  • Squish now uses network connections more efficiently, resulting in faster test executions especially for remote testing.
  • Fixed a defect in the JUnit report generator causing invalid XML to be generated when executing verification points with non-printable characters in the name.
  • Squish now supports acquiring and releasing floating licenses from a license server.

Squish IDE-specific

  • Fixed opening test suites using the relative path . via the command line.
  • The Squish Script Console now stores the history of commands so that previously typed commands can be edited or executed again. The history can be traversed using arrow keys: Up (previous command) and Down (next command).
  • It is now possible to contact the Squish tech support team by filling a form offered by the Squish IDE. The form permits adding a freeform description of the problem or technical question, and allows attaching support information, logs or screenshots.

Scripting

  • Clarified an error message shown when a test script tries to pass an object of another AUT to a global function like mouseClick(). Instead of No matching 'mouseClick(Object)' overload found, the error message now points out that the object is not accessible in the current application context.
  • Fixed an intermittent issue due to which accessing properties of AUT controls would yield an error message along the lines of RuntimeError: Property read failed.
  • Resolved an issue where existing names were not reused when names.tcl contained imports from the test suites folder when recording names in a scripted Object Map.
  • Added squishinfo.testCaseName and squishinfo.testSuiteName properties to make the name of the current test case and test suite easily accessible.
  • Added string testInteraction.choice(message, items) function which allows interactive selection of one item from a provided list of items.
  • Added testSettings.logStacktraceOnLog and testSettings.logStacktraceOnPass to enable stacktrace information for LOG and PASS test result entries.
  • Fixed const and let redeclaration errors on multiple invocations of JavaScript functions.

Qt-specific

  • Squish for Qt releases now include binary packages for testing applications built with Qt 6.
  • Overhauled the way Squish accesses QtWebEngine components, fixing randomly appearing object lookup errors for HTML objects as well as an inability to pick objects when the lookup error occurs.
  • Added uninstallLazySignalHandler(name, signalSignature, handlerFunctionName) function to remove a signal handler previously added via installLazySignalHandler(name, signalSignature, handlerFunctionName).
  • Support added for calling setFocus(objectOrName) on objects of type QQuickItem and QWindow for explicit keyboard input focus changes.
  • The Qt specific recordhints.h header changed its implementation for Qt 6 compatibility. Customers integrating the RecordHint feature in their application code need to rebuild with the current version of this header.
  • Removed undocumented dragStart function. Qt objects can be dragged using startDrag(source_objectOrName, sx, sy) + dropOn(target_objectOrName, tx, ty, action) or dragAndDrop(source_­object­Or­Name, sx, sy, target_­object­Or­Name, tx, ty, action).
  • Fixed name generation with object properties that are simple values while Squish assumes them to be a complex object, leading to object names that could not be looked up again.
  • Fixed images generated when calling QImage grabWidget(object) on QGraphicsItem objects. In some cases, the background was left in a random (uninitialized) state.
  • Squish releases no longer come with binary packages for Qt 3. Please contact Qt Support Center if you still require such a build.
  • Improved replaying mouse and touch input events for Qt 5 and Qt 6 applications.
  • Squish for Qt on macOS for Qt version 6.0.0 is currently provided as a so-called remote-testing package. The package includes the Qt wrapper as well as the tools squishconfig, squishserver and startaut to launch Qt 6-based applications. For the Squish IDE and test script execution part, a normal Squish for Qt for Qt 5 (for example for Qt 5.15) package can be downloaded and installed.

    Once extracted from the ZIP you may need to run the following command in the directory to remove the quarantine flag set by macOS upon downloading: xattr -c -r .. Afterwards please run the command bin/squishconfig --qt=path-to-qt-lib-dir and replace <path-to-qt-lib-dir> with the directory containing the QtCore.framework directory (this might be inside your application bundle).

    Finally start bin/squishserver if you use ApplicationContext startApplication(autName) or use bin/startaut from the zipped package to start the AUT for attaching.

    In the Squish IDE you need to configure remote testing. This is done by opening the preferences dialog using Squish IDE > Preferences from the menu. In the dialog, expand the Squish node and select Remote Testing. Now uncheck the checkbox for automatically starting squishserver. The default values for host and port should work if you started squishserver from the commandline as mentioned above.

    In order to verify the setup works, open the Server Settings dialog via Edit > Server Settings. If the dialog appears and shows the configured AUT, everything is fine. If something fails, review the output in the Runner/Server Log tab as well as the output produced by the squishserver command.

  • Switched backend used for taking screenshots on Windows for Squish for Qt packages built with MinGW to fix problems with scaled or HiDPI screens.

Web-specific

  • Added a BrowserTab.setUrl(url, timeout) function to BrowserTab Class which allows to specify the timeout to wait for the new page to be loaded and hooked.
  • Support for Firefox versions older than version 57 has been removed.
  • Improved logic for taking screenshots to yield accurate results on Windows and Linux systems.
  • Added a new function openNewTab(url) which opens a new tab in the browser and loads a URL into it. Supported for Firefox, Google Chrome, Safari (version 12 and later) Microsoft Edge.
  • Added an optional timeout argument to the startBrowser(url) function.
  • Fixed a problem causing typeText(objectOrName, text) to trigger the error message IEFrame parent window not found when trying to type text into an Microsoft Internet Explorer control embedded into a Windows application.
  • Fixed a problem that prevented Squish from hooking certain websites that disallowed execution of JavaScript code in the loading phase.

Android-specific

  • It is now possible to record interactions with accessibility objects outside of the AUT by using the Remote Control view of the Squish IDE.
  • installEventHandler(eventName, handlerFunctionNameOrReference) now supports a new event name Vibrate which is triggered every time the AUT calls the android.os.Vibrator.vibrate() function.

Windows (native)-specific

  • Squish for Windows now logs more information about AUT (sub-)processes to the Runner/Server Log of the Squish IDE.
  • Squish for Windows now supports replaying gestures via the gesture(objectOrName, touches) function.
  • Added support for Windows Forms and WPF controls in .NET 5.
  • Telerik Tables for Windows Forms can now be verified using table verification points.
  • Extended the set of properties to be considered when generating names for List, ListView, Tree, GridControl, Pane and TitleBar controls. The resulting names should be much less prone to including the occurrence property now.

macOS-specific (Cocoa edition)

  • The "native" script function family (nativeType(keys), nativeMouseClick(x, y, button) etc.) will now throw an error if the Accessibility API is not enabled for Squish or the AUT.
  • Fixed a problem with activating menu items on macOS 11 in the Help menu when the Help menu contained a Search field at the top.
  • scrollToObject(objectOrName) no longer silently ignores problems while scrolling. Instead, an error is logged in the test report.
  • Squish for Mac for testing ARM64 applications is currently provided as a so-called remote-testing package. The package includes the Mac wrapper as well as the tools squishserver and startaut to launch ARM64-based applications. For the Squish IDE and test script execution part, a normal Squish for Mac package for Intel architecture can be downloaded and installed.

    Once extracted from the ZIP you may need to run the following command in the directory to remove the quarantine flag set by macOS upon downloading: xattr -c -r .. Afterwarsd, start bin/squishserver if you use ApplicationContext startApplication(autName) or use bin/startaut from the zipped package to start the AUT for attaching.

    In the Squish IDE you need to configure remote testing. This is done by opening the preferences dialog using Squish IDE > Preferences from the menu. In the dialog expand the Squish node and select Remote Testing. Now uncheck the checkbox for automatically starting squishserver. The default values for host and port should work if you started squishserver from the commandline like mentioned above.

    In order to verify the setup works open the Server Settings dialog via Edit > Server Settings. If the dialog appears and shows the connfigured AUT, everything is fine. If something fails, review the output in the Runner/Server Log tab as well as the output produced by the squishserver command.

iOS-specific (iPhone/iPad edition)

  • Fixed highlighting of GUI elements when selected in the Application Objects view of the Squish IDE.

Source Packages

  • Added support for building Qt Toolkit Support with Qt 6.
  • Building the Qt Toolkit Support does not hardcode the Qt installation path anymore by default, making the behavior identical to Squish binary packages. Customers who build from source do not need to pass --disable-qt-hardcoded-path to configure anymore.

Known Issues

For a list of noteworthy issues which were found after the release of Squish 6.7, please see the Known Issues page in the froglogic Knowledge Base.

Platform Support

The support for running the Squish IDE on some older operating systems is being phased out. Hence, starting with one of the next Squish releases, out-of-the-box support for some older platforms may be available in the form of remote testing only. In particular, this affects

  • macOS releases before macOS 10.12
  • Linux installations older than CentOS/RHEL 7

This is due to the dwindling support of frameworks employed by the Squish IDE. See this target environments link by the Eclipse project or the platforms supported by AdoptOpenJDK project for example.

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