Squish 5.1 is a major new release with many new features and bug fixes. Here is a selected summary of the release's highlights—a detailed list of all the main changes is given in the sections that follow.
- The Android, iOS and Qt editions of Squish now have full support for automating tests on touch-devices, including full support for multi-touch gestures. Gestures can be recorded and replayed from test scripts and a convenient editor is provided for editing recorded gestures.
- Major improvements to the handling of "Object Not Found" errors when replaying tests. The test execution will suspend and a dialog is shown which allows the user to select an alternative object, to edit the object map and more.
- New integration plugins for Atlassian Bamboo and JetBrains TeamCity have been added.
- A command line tool for importing test results into Atlassian JIRA has been added.
- Web tests performed with Chrome no longer require the use of a proxy server.
- QNX, Android and VxWorks have been added to list of target platforms for testing of Qt applications. This has been achieved through the addition of an optional Embedded SDK that also streamlines builds for embedded Linux and Windows CE.
- The Python editor used by the Squish IDE will do more extensive Code Analysis on the test scripts. This enables better code completion including the functions and modules provided by Squish. If the test scripts use the standard Python import mechanism to include shared scripts the editor's code completion will also include functions and classes from those imported scripts.
- Various stability improvements for the squishrunner program in case the AUT terminates unexpectedly.
- Fixed a problem which broke the replay order of test scripts with Unicode characters in the file path.
- When running Squish on Windows, special "dump files" will be generated more often in case a problem occurs to improve the interaction with froglogic technical support.
- Creating screenshot verification points on Windows now handles transparent windows correctly.
setupwindow is no longer fixed in size.
setupprogram now performs sanity checks on the selected JRE to detect architecture mismatches.
- Various stability improvements for the
- The overall performance of accessing the AUT (calling methods, getting/setting properties etc.) has been improved.
- A new xml2jira tool is now included with Squish, it allows creating and updating JIRA tickets based on Squish test reports.
- squishrunner gained a new command line option
--exitCodeOnFailwhich can be used to define a custom exit code which squishrunner should return in case a fatal error is encountered while executing a test.
squishjshas been added.
- The standalone
squishtestPython module can now be used with the Python Tools for Visual Studio integration as well as other third-party Python debuggers.
- Clicking the Pause button in the control bar no longer suspends test execution in all running instances of the Squish IDE.
- Fixed various usability issues with the environment table in the test suite settings.
- Fixed various usability issues when editing real names in the object map editor.
- Resolved an issue related to selecting multiple real-name entries in the object map editor.
- The Squish IDE no longer "stalls" when launching the image verification point editor or the setup program.
- Fixed a bug related to test cases and test suites with certain characters (
#and certain non-ASCII characters) in their names.
- Improved layouting of the Squish IDE to avoid that the Test Suite view gets too small in certain cases.
- Silenced a External Modification Detected dialog triggered when creating a test case while the test suite settings are opened with unsaved changes.
- Corrected window focusing when external editors (such as the image verification point editor or the gesture editor) are launched.
- Fixed a bug which caused incorrect code to be generated when creating verifications of certain properties (such as
class) in Ruby test suites.
- Fixed various cases in which dialogs wouldn't get hidden when the control bar is shown.
- The Pause button in the control bar is no longer enabled when picking an object (the pause button used to be enabled, but clicking it had no effect).
- Resolved various issues due to which error messages related to Python were shown when opening multiple Python test suites simultaneously.
- Added a new Close All Test suites button.
- The Integration package now supports integration into Eclipse 4.
- Added support for DLTK5/PyDev 3.
- Major improvements to code analysis and code completion features for Python tests.
- The Manage AUTs dialogs can now be opened directly via the test suite settings editor.
- Starting a second Squish IDE will now show a dialog offering to terminate the existing Squish IDE in order to re-use the workspace of the existing Squish IDE.
- Added support for managing, viewing and editing gestures.
- The What's New page will now show the froglogic RSS feed.
- The tools-selection dialog now offers collecting technical information for submission to froglogic technical support to simplify debugging issues caused by broken installations.
- The working directory behavior of squishserver can now be changed such that it uses the working directory of the Squish IDE.
- Improved output of Boolean test.compare(value1, value2) for Python and Ruby scripts to include the type of the compared values.
RegExpobjects now support Unicode characters.
- A new
GestureBuilderAPI is available for creating gestures programmatically in test scripts.
- A new ApplicationContext.totalTime property has been introduced which returns the CPU time used by the AUT.
getElementsByTagNamemethod which yields a list of elements with a given tag name.
- Added a new testSettings.logScreenshotOnPass property which can be used to automatically create screenshots in case a verification passes.
Arrayobjects with various new methods:
setupprogram now defaults to locating the Qt library used by the AUT automatically, except for tests executed on macOS (which still requires specifying the path to the library).
openContextMenu()function is now recorded correctly when clicking
- Example programs for Qt5 now include the required Qt libraries to make them usable out of the box.
- Optimized accessing web objects in embedded web controls when using hierarchical names.
- Correctly expose
QObjectproperties with custom
QObject-based types in Qt 5 applications. Users who resorted to accessing built-in properties via function calls like
QQuickItem::parent()should now simply use the
- Added support for Qt 5.2.
- Added dedicated support for QtQuick controls
- Added support for Visual Studio 2013 builds.
- It's now possible to record and replay touch events as well as multi-touch gestures.
- Major improvements to the diagnostic output generated by Squish in case hooking into a Qt application fails.
- Support for scripts calling methods with return type
uninstallEventHandler()function added to allow uninstalling event handlers.
- Support calling slots from test scripts with
ushortparameters or return values.
- QPixmap sub-properties (such as
depth) are now accessible from test scripts and shown in the Squish IDE.
- Added support for recording and replaying
QWindowresizes, moves and state changes (minimizing/maximizing/etc.).
- Added support for
QWebViewcontrols when running tests on Solaris.
- On touch-enabled devices, objects can now be picked by tapping the screen.
- Support for single-touch tap recording on QWidgets and QtQuick controls added.
- Support for single-touch drag recording on QtQuick controls added.
- Support for (multi-)touch gesture recording and replay on QWidgets and QtQuick controls added.
- It's now possible to use wildcards for the
textproperty for multi-property
- Fixed crash during hookup on Windows 8 using the AMD64 Java edition.
- Fixed crash when creating a string representation of a self-referencing nested Java array.
- The Spy tool now works correctly for JavaFX applications containing more than one Stage object.
- Simplified deployment of example applications; each example is now bundled into a single
- Fixed accessing multi-dimensional Java arrays from test scripts.
- Corrected super-class of
JavaArrayclass, which is now a sub-class of
- Corrected handling of JFace
- Fixed an issue related to the "chevron" object of
CTabFoldercontrols in recent SWT versions.
- Resolved a bug which made scrolling to table cells fail when replaying a test script.
- Added support for Java 8.
- Dedicated support for Nebula Grid and Nebula NatTable added.
- Added dedicated support for HTML objects contained in
WebViewcontrols in JavaFX applications.
- Test scripts can now access invisible items in JavaFX lists, tables and trees.
- Improved compatibility with touch-enabled devices by replaying clicks using touch events.
- Firefox versions older than 4.0 are no longer supported.
- Fixed a bug in
closePrompt()function which occasionally caused it to not cancel prompt dialogs correctly.
- Corrected coordinates for elements contained in dialogs shown by Internet Explorer.
- Improved robustness of hooking into
- The Internet Explorer window is no longer closed when a test finished if Squish attached to a running IE instance.
- Improved support for stripped-down SmartGWT applications.
- Fixed a problem related to loading URLs without a scheme when replaying tests with Chrome.
- Fixed a rare crash triggered when closing Internet Explorer windows.
- Made it possible to run the addressbook example with Internet Explorer 8.
- It's now possible to pick links of buttons without triggering the associated actions (for browsers other than Internet Explorer).
- Added support for automating alert/confirm/prompt dialogs shown by embedded web controls.
- Extended Chrome support by removing limitations imposed by proxy-based testing. Chrome is now accessed using a Chrome extension.
visibleproperty now takes CSS-defined visibility into account.
- A new
BodyUnloadedevent has been added to allow test scripts to react to the current page being unloaded.
selectOption()function can now be called with a list of strings to simplify selecting multiple entries in a multi-select field.
selectOption()function now supports selecting items based on their
valueproperty instead of the user-visible string.
- Added support for running tests with Firefox on Solaris.
DatePickercontrols now expose the nested edit control to make replaying text input to date pickers work correctly.
- Fixed a bug which occasionally kept Squish from hooking into .NET applications.
- Resolved an issue which sometimes made replaying test scripts on MFC list view items trigger a high CPU load.
- Fixed a resource leak which might cause the system to run out of memory if Squish repeatedly attaches to and detaches from an application.
- Greatly improved accuracy of determining which WPF control (if any) is beneath the mouse cursor, this fixes various issues related to recording actions on WPF controls and picking them.
- Resolved a potential crash when replaying tests on Windows Forms applications.
- Added dedicated support for DevExpress WPF controls.
- Squish now tries to make use of the Microsoft UI Automation framework for accessing GUI controls before falling back to generic
- The names of objects shown in the Spy are now much more descriptive.
- MFC menu items now expose an
macOS-specific (Cocoa/Carbon edition)
- It's now possible to create screenshot verification points for web objects in embedded web controls.
- Squish packages are now "universal builds", both 32-bit as well as 64-bit applications can be tested with a single Squish package.
injectMacWrapperexample script no longer requires modifications to be usable.
selectOption()can now be used with
WebViewcontrols embedded into OS X applications.
iOS-specific (iPhone/iPad edition)
- Support for recording and replaying multi-touch gestures.
- Added support for building with Xcode 5.1 and iOS 7.1.
selectOption()can now be used with
WebViewcontrols embedded into iOS apps.
- Added support for recording and replaying multi-touch gestures.
- An experimental alternative hooking method with greatly improved performance has been added.
Native.java.lang.Class.forName("package.Class")can now be used to access all native classes without any further steps.
tapMenuItem()function now correctly raises an exception when the menu item is not found.
- Fixed recording of keyboard input on WebView HTML objects for Android 4.0 ("Ice Cream Sandwich").
- It is now possible to specify TCP device strings when calling ApplicationContext startApplication(autName) to launch Android apps.
- Added support for applications using a renamed Tk library (only on Linux).
- Added support for Perl/Tk applications (only on Linux).
- The Ant integration now supports running multiple test cases of a given test suite.
- The Jenkins integration plugin now supports setting squishserver options.
- The Jenkins integration now allows running multiple Squish test cases in a single build step.
- The settings entered for a Jenkins Squish build step are now verified more diligently.
- The algorithm used by Squish/Web for generating object names is now documented.
- The Search feature of the HTML help has been reworked to yield better results. Also, the results are grouped by topic.
- The instructions for creating partial builds (for Qt test) have been simplified.
Qt-specific Source Packages
- A newly added Embedded SDK provides support for QNX (using the qcc compiler frontend), Android, VxWorks and a simplified configuration for embedded Linux. Customers with existing support contracts for cross-compilation builds will be receive a free upgrade for their target platform.
- Make the code compile with Qt 5.3 (still in beta).
- The squishidl utility is now shipped with Squish binary packages to simplify doing partial builds.
- Squish source builds can now make use of an existing
squishidlbinary (useful for embedded builds).
configureprogram now queries an optional Qt namespace name as well as a library infix from qmake (when using qmake).
configureprogram can optionally query
qmakefor compiler and linker flags to use.
installtarget has been added to simplify distribution to remote & embedded systems (currently unsupported on macOS).