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
orxml2.2
on the command line.
squishide
-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
squishide
. - 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
squishide
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
- Include the browser tab container in all names generated by Squish for Web instead of only those generated for recorded interactions.
- Support using the
simplifiedInnerText
property in object names and record that property instead ofinnerText
to improve stability of tests across different browsers. - Added HTML_Select.deselectByValues(values), HTML_Select.deselectByIndexes(indexes) and HTML_Select.deselectByTexts(texts) convenience functions for the
HTML_Select
objects to deselect items in aselect
element. - Provide
HTML_Select.selectedValues
,HTML_Select.selectedTexts
,HTML_Select.selectedIndexes
andHTML_Select.selectedLabels
convenience properties forHTML_Select
objects that provide the value, text, index or label of the selected items of the object. - Fixed a problem with Chrome where after a navigation the new page wasn't properly hooked, causing object lookup errors and no
DOCUMENT
object in the Spy. - Added detailed instructions how to enable "Allow JavaScript from Apple Events" which is required to automate Safari on macOS 10.11.5 and later.
- Added String Browser.majorVersion() function.
- Added
top
/bottom
alignment parameter to the scrollTo(objectOrName, top) function. - Added startDrag(src_objectOrName, sx, sy) and dropOn(target_objectOrName, tx, ty) functions to simulating drag and drop operations.
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 UIAGroup
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 aRightToLeft
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 calledInclude 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 to1
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 theSQUISH_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-basedNSOutlineView
appeared asNSNull
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 theNSNull
. If you use theNSNull
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.
© 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.