Table of Contents
Squish 6.1 is a feature release which delivers new features to all editions of the product.
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).
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.
Creating scripted property verifications will now
generate code using the waitForObjectExists
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
function.
The used license key is now shown (and can be changed) via the Squish IDE.
menu of theImproved 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.
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
waitFor
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
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
and 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 test.compare
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 test.vp
function
such that an expected failure does not skip following BDD steps anymore;
test.vp
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.
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
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.
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.
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 of
innerText
to improve stability of tests across different
browsers.
Added HTML_Select.deselectByValues
, HTML_Select.deselectByIndexes
and HTML_Select.deselectByTexts
convenience
functions for the HTML_Select
objects
to deselect items in a select
element.
Provide HTML_Select.selectedValues
,
HTML_Select.selectedTexts
,
HTML_Select.selectedIndexes
and HTML_Select.selectedLabels
convenience properties for HTML_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 Browser.majorVersion
function.
Added top
/bottom
alignment parameter to the scrollTo
function.
Added startDrag
and dropOn
functions to simulating drag and drop
operations.
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
waitForObjectItem
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.
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.
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.
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 (Section 5.7.1) for more
information.
Support clickItem with TixHList based controls.
Fixed a problem with the lookup of menu items in a menubar on windows.
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.