Version 6.6
Squish 6.6 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.
Integrated Remote Control Solution
This Squish release brings with it a complete, fully-integrated remote control solution which greatly improves working with remote systems. Squish can now display the screen of the remote device as a test is executed and permits recording new tests (and picking objects for inspection), even if the application under test is running on a computer in a remote location.
This functionality removes the need for any additional remote desktop solution (e.g., VNC) and is fully supported, even on embedded systems.
Python 2 and Python 3 Included
All Squish packages now include Python 2 and Python 3. This ensures full backwards compatibility with all previous Squish releases, while enabling the use of the latest Python 3 features.
Enhancements to JavaScript Engine
This Squish release provides a number of enhancements to JavaScript support, including improved scripting flexibility, better error checking, additional features for convenient and concise scripting, and several bug fixes to existing support.
Bundled Test Result Analysis & Management Platform, 'Test Center'
Squish packages now bundle with the Test Center platform, a tool for comprehensive test report management and analysis. With a natural coupling between Squish and Test Center, users can push their automated test results right from the squishide
to Test Center to gain insights into an evolving project's health.
Built to be lightweight with a convenient web-based user interface, all project stakeholders can easily access the platform right from a web browser on their computer, tablet or smartphone.
To get started with Test Center, an activation code unique to the tool is required. Get in touch with us at sales@froglogic.com to begin a free, fully-supported and fully-functional evaluation of Test Center today.
General
- squishserver now yields more useful output when attaching to a running application.
- squishserver now accepts a new
--configfile
option which can be used to load configuration files from different locations. See Configuring squishserver for details. - The Squish installer now permits omitting the
squishide
during installation, a useful option when setting up machines meant for Continuous Integration. - Fixed an issue in which HTML reports generated by Squish would sometimes not open correctly, but display an error message about a corrupt data file.
squishide
-specific
- Both the
squishide
and the Squish Eclipse integration plugin now require Squish Tools version 6.5 or later. - Fixed importing test report ZIP archives containing only files but no directories.
- Resolved an issue causing incorrect paths to be generated in a test report when running a complete test suite with more than 10 test cases.
- The Python editor in the
squishide
is now based on PyDev 7.3.0. This improves syntax highlighting and enables better support for type hints and other Python 3 features. - Settings from the Squish tab on the PyDev > Editor > CodeAnalysis page have moved to the Squish > CodeAnalysis page, and apply now to all script editors, not only Python.
- The Accept All button shown when editing Visual Verification Points will now add additional default checks on identification and content for newly found UI objects. In previous versions, the list of properties for new objects would be left empty, and would update the Visual VP only for changed, already existing objects. Squish follows settings for parent containers of these new objects for deciding if screenshot and geometry tests should be added.
- A new button was added to the Visual Verification Point editor which allows viewing the differences between the actual and the expected verification point.
- Improved usability of the Structure and Failures views in the Visual Verification Point editor. Dedicated icons are now shown which visualize if and which check failed.
- Relaxing checks in the Visual Verification Point editor will now cause a short overview to be presented, showing the changes which were applied.
- A new popup menu in the Visual Verification Point editor now allows toggling content, geometry or screenshot checks for entire trees of elements.
Scripting
- Squish now supports creating Python test scripts with either Python 2 or Python 3.
- A new script function Dataset testData.datasetExcel(filename, sheetname) was introduced which enables accessing test data stored across multiple sheets in an Excel spreadsheet.
- Added new ApplicationContext.osName property to get the name of the OS the AUT is running on.
- A new Image Object was added to the script API, providing speed enhancements and new functionality for screen-grabbing and manipulating image files. Various functions were extended to support working with images:
- Image objects can be obtained by loading an image file (using Image Image.load(fileName)) or by taking a screenshot of the desktop (via grabDesktopScreenshot()) or a particular object (Image object.grabScreenshot(object, [parameterMap])).
- The RGB(A) values of individual pixels in image objects can be extracted and modified.
- Image objects can be attached to test reports using test.attachImage(image, message).
- The ScreenRectangle findImage(imageFile, [parameterMap], [searchRegion]) and String getOcrText([parameterMap], [searchRegion]) functions can be used on image objects.
- Fixed the
test
method on JavaScriptRegExp
objects such that calls update the value of thelastIndex
field if the global flag is specified. - The JavaScript engine used in Squish received a major overhaul, including various bug fixes and new feature additions, such as:
class
,extends
,static
andsuper
keywords- Arrow functions (e.g.,
x => x * x
) let
declarations- Template literals via
....
including tagging functions - ...and several others.
For a comprehensive list of all improvements including code examples, please see our Knowledge Base article JavaScript Extensions in Squish 6.6.
- A new function String RemoteSystem.getOSName() was added which allows determining the name of the operating system used by the computer on which squishserver is running.
- Dialogs shown by the
testInteraction
API are now shown above all other windows. - An issue was fixed which caused the error location logged for Python syntax errors to be incorrect in some cases.
- A new
message
parameter has been added to Boolean test.imagePresent(imageFile, [parameterMap], [searchRegion]) and Boolean test.ocrTextPresent(text, [parameterMap], [searchRegion]). It serves the same purpose as themessage
argument supported by Boolean test.compare(value1, value2), i.e., including a text with detailed information to be included in the test report.
Qt-specific
- Added support for testing Qt 5.15 applications.
- This Squish release no longer includes binary packages for Qt 4.6 and Qt 4.7 applications. Please contact us at the Qt Support Center if you are interested in such a package.
- Squish is now able to test applications built using Qt for WebAssembly. This currently requires a special Squish package (ending in
-wasm.zip
) which holders of an active Squish for Qt license can find in their download area. - Error reporting of the installSignalHandler(objectOrName, signalSignature, handlerFunctionName) and uninstallSignalHandler(objectOrName, signalSignature, handlerFunctionName) functions was improved. In case the given object does not support the specified Qt signal (e.g., due to a typo or incorrect signal signature), a list of similar signals with the same name is included in the error message.
- New API method, waitForSignal(object, signalSignature), tells script to wait for a given Qt signal.
- Squish now supports automation of Qt applications which were built using the
/CLR
switch of Visual Studio. - Fixed an intermittent crash when picking objects in Qt 5 applications which react to touch events.
- Resolved an issue which sometimes caused
Could not convert argument
warning messages to appear in the Runner/Server Log view of thesquishide
when interacting with QML objects. - Improved reliability of tests working with Qt WebKit controls. In some cases, a
Timeout while waiting for result of JavaScript
error may have been reported. This is now fixed. - Improved reliability of hooking into Qt applications running on macOS in those cases where the application under test loads the Qt library with a different path than what was specified in the installer.
Java-specific
- The chooseFile(objectOrName, array of filenames) function for selecting multiple files now also works when testing JavaFX applications.
Web-specific
- The clickLink(objectOrName) function has been deprecated. Instead, the mouseClick(objectOrName) function can be used anywhere clickLink(objectOrName) is currently being used.
- The AUT timeout configured in squishserver is now respected when deciding how long Squish should wait for a web page to load in Chrome or Firefox.
- Proxy-related configuration settings can now be found in the
etc/webwrapper.ini
configuration file. - Fixed a problem with attachToBrowser(portOrWindowTitle) failing to attach to the browser after updating the Chrome extension to version 2.1.0.
- Fixed a crash that would occur when Squish attempted to log the reason it was not able to hook into Microsoft Internet Explorer, in particular, when automating Microsoft Internet Explorer embedded into a Windows AUT.
- Resolved an issue which led to a JavaScript error when setting the
url
property on a BrowserTab Class object in Microsoft Internet Explorer. - Improved the behavior of typeText(objectOrName, text) to ensure that the browser window is being brought into the foreground, and existing selections in the field to type are not lost.
- Clicks into text fields are now recorded as a nativeMouseClick(objectOrName, button) instead of a setFocus(objectOrName) call. This better reflects the actual user input and allows replaying tests which intentionally click into a certain position in the text field.
Android-specific
- Squish for Android can now access all controls exposed via the accessibility API. This improves record and replay in many cases, for example, when testing Flutter applications.
Windows (native)-specific
- Overhauled sub-process detection logic in Squish to improve detection of (and hooking into) sub-processes of AUTs.
- Added support for Windows Forms and WPF .NET Core applications.
- Added property
name
to the properties ofWindowsForms
controls. The new property can be used for object identification and recording. - Added support for performing clicks with the fourth and fifth mouse buttons (the
x buttons
). - Fixed the global bounds calculation for rotated WPF elements.
- Improved support for WPF
ToolTip
objects. These now have their own type and can be the container objects of their children. - Added a new optional fallback for WPF text properties. When an object does not have a good string representation, its TextBlock children can be used for the generation of
text
property values. This can be enabled by specifying the settingWpfTextPropertyFallback
configuration key. - startwinaut learned a new
--aut-timeout
command line switch for specifying the time to wait for an application to show any user interface. - Various issues with interacting with WPF popups have been resolved.
macOS-specific (Cocoa/Carbon edition)
- The
Console.KeyPress
function no longer causes the test case to abort when running tests on macOS 10.15. - Fixed an issue which caused the AUT to abort unexpectedly when requesting access to the camera or microphone on macOS 10.15.
- Fixed a problem which caused tests to abort in some cases when calling the nativeType(keys) function on macOS 10.15.
Source Packages
- Perl, Python and Tcl interpreters are not located via the Windows Registry anymore when building Squish.
Customers building their own squishrunner should either add their script interpreter to the
PATH
environment variable, or use one of--with-perl
,--with-python
or--with-tclconfig
to tell Squish which interpreter to use. - Building the Perl 5 language support now requires Perl 5.18 or later.
- Building the Python 2 language support now requires Python 2.6 or later.
- Fixed an issue which caused running Qt tools (e.g. moc or uic) to fail when cross-compiling Squish.
Known Issues
For a list of noteworthy issues which were found after the release of Squish 6.6, please see the Known Issues page in the froglogic Knowledge Base.
© 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.