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 squishide
. 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.
squishide
-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
squishide
. 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 ofNo 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
andPASS
test result entries. - Fixed
const
andlet
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
andQWindow
for explicit keyboard input focus changes. - The Qt specific
recordhints.h
header changed its implementation for Qt 6 compatibility. Customers integrating theRecordHint
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_objectOrName, sx, sy, target_objectOrName, 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
squishide
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 commandbin/squishconfig --qt=path-to-qt-lib-dir
and replace <path-to-qt-lib-dir> with the directory containing theQtCore.framework
directory (this might be inside your application bundle).Finally start
bin/squishserver
if you use ApplicationContext startApplication(autName) or usebin/startaut
from the zipped package to start the AUT for attaching.In the
squishide
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
squishide
. - installEventHandler(eventName, handlerFunctionNameOrReference) now supports a new event name
Vibrate
which is triggered every time the AUT calls theandroid.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
squishide
. - 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
andTitleBar
controls. The resulting names should be much less prone to including theoccurrence
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
squishide
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, startbin/squishserver
if you use ApplicationContext startApplication(autName) or usebin/startaut
from the zipped package to start the AUT for attaching.In the
squishide
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
squishide
.
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
toconfigure
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 squishide
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 squishide
. See this target environments link by the Eclipse project or the platforms supported by AdoptOpenJDK project for example.
© 2024 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.