Version 4.2.0
Squish 4.2 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 IDE now supports the creation of verification points for complex item views, such as tables.
- The choice of scripting languages used for recording, writing, and executing test scripts has been extended to include Ruby—this is in addition to JavaScript, Perl, Python, and Tcl.
- Squish for Windows now properly recognizes WPF controls.
- Squish for Web now includes dedicated support for SmartGWT controls in web pages.
- The Quality Center integration has been extended beyond Quality Center 10 to include HP ALM 11; there have also been many bug fixes made.
General
New Features
- Ruby is now a supported scripting language and can be used for creating and replaying tests.
- Entire tables can be verified using table verification points. Currently, this is available for Java, macOS, Qt, and Windows AUTs. See How to Create and Use Table Verifications.
- A new applicationContext.detach() method was introduced for Application Context objects. This method can be used for closing (or detaching from) previously started (or attached) applications.
- ApplicationContext objects now allow querying the command line and start time of all launched (or attached) processes, including sub-processes.
- It is now possible to specify the
--reportgen
option multiple times when invoking squishrunner on the command line; this makes it possible to generate multiple report files in different formats at the same time.
Important Bug Fixes
- The stability of the squishserver processes running on Windows has been significantely improved.
- The support for test scripts interacting with multiple applications at the same time has been greatly improved. This resolves various issues when recording, replaying, and spying.
- Various problems with breakpoints in Python scripts have been resolved.
- The source(filename) function when used in Tcl scripts now supports the
-encoding
option to match a Tcl 8.5 API change. This fixes using the "clock format" command in Tcl 8.5 test scripts.
IDE
User Interface Rearrangement
The new squishide
's menus and toolbars have had several changes to make them more logical and easier to navigate and use.
Here is a table listing the menu changes which include a slimmed-down Squish menu and an improved Run menu:
Old Menu Option | New Menu Option | Notes |
Navigate > Open Symbolic Name | This is a new menu option. Clicking this menu option makes Squish open the Object Map and highlight the symbolic name that matches the name at the editor's cursor position or that is selected. | |
Squish > Launch AUT | Run > Launch AUT | |
Squish > Quit AUT | Run > Quit AUT | |
Squish > Record Test Case | Run > Record Test Case | |
Squish > Record Snippet | Run > Record Snippet | |
Squish > Run Test Suite | Run > Run Test Suite | |
Squish > Run Test Case | Run > Run Test Case | |
Squish > Close Test Suite | File > Close Test Suite | |
Squish > Delete Test Suite | File > Delete Test Suite | |
Squish > Add Symbolic Name | This is no longer a menu entry. Click the Object Map's Symbolic Names lists's New button to create a new symbolic name. | |
Squish > Manage AUTs | Edit > Server Settings > Manage AUTs | This menu option is Window > Server Settings > Manage AUTs in the Squish Eclipse integration. |
Squish > Check ObjectExistence | This is no longer a menu entry. Click the Object Map's Check Existence button to perform this check. | |
Preferences | Edit > Preferences | On macOS, Preferences remains in the Application menu. |
The Create New Test Suite and Open Test Suite toolbar buttons have been moved out of the Test Suites view and put into the top-level toolbar.
Other Changes
- The layout of the AUT section in the test suite settings view has been rearranged to make it easier to understand and use.
- The Check Existence button has been moved into the Object Map editor.
- The settings which influence the squishserver have been moved into a separate dedicated dialog.
- Hidden files are no longer shown in the test resources views.
New Features
- Support for the Ruby scripting language has been added.
- A new filtering dialog has been introduced to the Object Map editor, which greatly simplifies the editing of real (multi-property) names.
- It is now possible to create and edit table verification points as well as displaying the differences between two tables in case a comparison fails.
- Two new toolbar buttons have been introduced to the toolbar to simplify creating and opening test suites.
- Testing applications which use some sort of "launcher application" concept has been greatly simplified. This makes it easier to configure iOS and Java WebStart test suites.
- A new setting has been added which can be used to specify whether the IDE window should remain visible while a test is recorded or executed.
- A new Open Symbolic Name option has been added to the menu bar and to the test script editor's context menu in case the cursor is on a symbolic name. Its action is to open the Objec Map with the relevant symbolic name highlighted.
- It is now possible to open test suites from the command line by specifying the relevant test suite's directory or the test suite's
suite.conf
file as an argument to thesquishide
command. - It is now possible to drag and drop test scripts, test data files, and verification point files between test cases, test scripts, and shared script filters.
- A new Clear option has been added to the test summary view.
- More IDE actions can be associated with keyboard shortcuts.
- The fonts and colors used for Fails, Warnings, and Passes in the test results view can be customized using the theme configuration.
Important Bug Fixes
- The order of test cases in XML result files and when loading older test results is now correct.
- Fixed cases where the objects shown in the Application Objects and Property View views did not correspond to the AUT's current state.
- Fixed a file handle leak which caused the IDE to keep files open after they were no longer being used.
- Fixed a bug which caused the Import Test Resource wizard to be empty for fresh Squish installations.
- Malformed screenshot verification points are now handled gracefully.
- The performance of various directory-related dialogs (New/Open Test Suite, Select Squish Directory) when used with network-mounted (or otherwise slow) file systems has been greatly improved.
- Various issues with working on verification point files stored in subdirectories of the
verificationPoint
directory have been resolved. - Fixed a problem which caused a File changed externally notification to appear even though there were no such external changes.
- A bug which caused recorded ApplicationContext startApplication(autName) statements to be malformed in cases where the application name contains spaces has been fixed.
- Recording tests on Java applications for which the Main Class setting in the test suite settings is used.
- The control bar is no longer shown when integrating the Squish plugins into Eclipse and launching non-Squish applications.
- In some situations, entries in the test suite setting's Environment Variables section were mistakenly duplicated. This problem has been resolved.
- A problem which appeared when trying to change existing keys in the test suite setting's Environment Variables has been solved.
- The verification point editor no longer has problems with non-ASCII characters.
- An issue which broke stopping at breakpoints after using the 'Step' feature has been fixed.
- Generating test result files for test cases and test suites which have certain characters (like
&
,<
and>
) now works properly.
Qt-specific
New Features
- Qt 4.8 is now supported.
- It is now possible to test Qt sub-applications on Windows without modifying the host application.
- QML objects now expose an 'id' property which is the default way that Squish identifies them.
- The clearObjectCache() function can now be used on
QWebView
,QDeclarativeWebView
, andQGraphicsWebView
widgets. - The loadUrl(url) and Object evalJS(browserTab, code) functions can now be used on
QGraphicsWebView
andQDeclarativeWebView
widgets.
Important Bug Fixes
- Recording actions on
QWebKit
widgets no longer causes each action to be recorded twice. - Squish no longer overwrites the
QApplication
object'sdesktopSettingsAware
property, so now AUTs always run with their correct color palettes. - Fixed the recording of mouse clicks on
QGraphicsView
objects which have no item at the clicked position. - Improved support for applications using
QWebView
but which do not link against theQDeclarative
library. - Actions on QML elements which are flagged as having no content (i.e., ones that are not drawn on screen) are no longer recorded.
- Fixed a problem in the Spy tooltip (when picking objects) for applications which use their own palette.
QGraphicsWebView
objects which are contained inQGraphicsView
widgets are now displayed correctly in the Spy.
Java-specific
New Features
- Squish now supports SWT applications which use multiple Display instances.
- Web pages embedded into RCP applications (i.e. help viewers) are now supported.
- SWT ToolItem objects gained a new 'tooltiptext' property.
- Squish for Java is now supported on the AIX platform.
Important Bug Fixes
- Fixed showing native dialogs when using the
startjavaaut
command in some situations. - Fixed a problem which caused the chooseColor(objectOrName, red, green, blue), chooseDirectory(objectOrName, path), chooseFile(objectOrName, filename), and closeMessageBox(objectOrName, result) functions to not report an error in case the specified dialog didn't get opened.
- Resolved a problem with replaying tests on RCP Indigo Cocoa applications on macOS.
- Made replaying text input using the type(objectOrName, text) function more stable.
- Resolved a problem which caused Webstart applications to get stuck when they start.
- Fixed a problem with recording
setValue
calls where the 'value' argument was wrong in some cases.
Web-specific
New Features
- All Firefox versions up to version 10 are now supported.
- Much improved support for SmartGWT controls including: Calendar, ColorChooser, ComboBox, DateChooser, ListGrid, Menubar, MenuButton, Menus, ProgressBar, Sections, SelectItem, TabWidget, and TreeGrid.
- The Object waitForObjectItem(objectOrName, itemOrIndex) function is now fully supported when creating Web tests.
- The clickItem(objectOrName, itemText) function can now be called with row and column numbers instead of the item's text.
- When recording web tests, a new clickTab(objectOrName, tabTitle) function call is recorded in some cases.
- A new 'overlay mode' was introduced which shows useful information for elements under the mouse cursor. See How to activate the Squish object popup Knowledge Base article for how to enable and use this mode.
- The HTML_CustomItemView Class extension API now supports modeling trees with multiple columns.
Important Bug Fixes
- The calculation of on-screen coordinates (including the size) for Web elements has been greatly improved. This makes it much easier to use screenshot verification points in Web tests.
- The scrollTo(objectOrName, top) function now works correctly for elements in item views which have their own scrollbar (and also for similiar cases such as tab widgets, pure HTML 'windows' etc.).
- Object lookup (and picking) now works on images which have 'alt' attributes containing special characters (such as
\n
or\r
). - Fixed calling the loadUrl(url) function right after closing the browser window using the nativeType(keys) function (e.g. by typing
<Alt+F4>
). - Resolved an issue which caused problems when creating screenshot verification points on macOS Lion.
- The GWT support now works correctly with recent GWT versions.
- The typeText(objectOrName, text) function now works correctly with Internet Explorer 8 and later versions.
- A bug which made listing itemview child items very slow has been resolved.
- Generating object names for itemview items has been optimized.
- Interactions with file upload form elements now replay more reliably.
Windows (native)-specific
New Features
- Dedicated support for the WPF toolkit has been added.
- Support for recognizing labels in Visual Basic 6 applications has been added.
Important Bug Fixes
- Looking up MFC listbox items using regular expressions now works correctly.
- Pressing the 'Windows' key is now recorded and replayed correctly.
- Replaying actions on disabled or hidden .NET controls no longer silently succeeds; instead, an exception is thrown (as intended).
- Fixed automating Windows Forms applications which show a splash screen in a different thread than the main window.
- Automating Exontrol, Infragistics, or generic ActiveX controls now works properly if Squish is installed in a path with more than 100 characters.
- Fixed a crash which occurred when performing object lookups using nested properties (i.e.,
{type='List' nativeObject.Items.Count='50'}
). - Fixed a potentially large slowdown of test execution for tests which use the
text
property for identifying some objects. - In some cases, the 'Extra Windows' setting was not respected; this has been fixed.
macOS-specific (Cocoa/Carbon edition)
New Features
- The nativeType(keys) function now accepts key combinations like
<Ctrl+F2>
.
Important Bug Fixes
- Replaying tests will now wake up the display if it is in sleep mode.
- Various stability issues with the QImage grabWidget(object) function have been resolved.
- Fixed a bug which caused the AUT to get stuck when replaying menu interactions.
- Taking screenshots on macOS 10.7 ("Lion") now works correctly.
- It is now possible to pick objects even if a completely transparent window is in front of another window (the transparent window is ignored).
- Recording and replaying presses of the Enter key now works correctly.
iOS-specific (iPhone/iPad edition)
Other Changes
- Changed the wrapper library from a dynamic library to a static library for testing on a device. This was done to make the whole setup for device testing easier and less error prone (especially the additional code signing step for the dynamic library caused a lot of problems and is no longer needed).
If you already used device testing with Squish before the 4.2 release, please note that you have to first revert the changes to your Xcode project and follow the steps described in Notes on Testing iOS Apps in an iPhone or iPad.
Reverting the changes means that you have to remove the
libsquishcocoatouchwrapper.dylib
from your project and remove it from the Other Code Signing Flags entry in your project settings. You should also remove themacbuiltinhook.h
from your Xcode project. Then you are ready to do the necessary changes for Squish 4.2.
New Features
- Added support for iOS 5.
- Introduced iOS as its own test suite type. This means that you no longer have to create a Mac test suite and use the
iphonelauncher
utility as the AUT. If you have a iOS test suite, you can specify the iOS app (built for running in the simulator) directly as an AUT.Your old test suites will continue to work. But when you create new test suites, you should start using the iOS test type instead.
If you want to convert your existing test suites to the new test type, you can open the
suite.conf
of your test suite in a text editor and change the lineWRAPPERS=Mac
toWRAPPERS=iOS
. Then you can open the test suite in thesquishide
and change Application fromiphonelauncher
to your iOS application. If you specified any Arguments other than your iOS app, you have to move them to the Launcher Arguments line edit. And you should also remove the path to your iOS app from the Arguments line edit (the entry should be empty).
Important Bug Fixes
- Fixed various issues with the touchAndDrag(objectOrName, x, y, dx, dy) function.
- A bug which broke executing touchAndDrag(objectOrName, x, y, dx, dy) right after executing clickObject(objectOrName) has been fixed.
Tk-specific
New Features
- Added a runtime configuration setting to enable or disable the TkInter name generation.
Important Bug Fixes
- A problem which made it impossible to disable hooking Tk applications' sub-processes applications on Unix has been fixed.
Quality Center-specific
New Features
- Quality Center 11 is now supported.
- Screenshots generated by FAIL or FATAL results are now attached to the test run.
Important Bug Fixes
- The
qcimporter
utility program now allows importing test cases which have whitespace in their names. - Fixed a problem which caused the test status to be wrong when executing Squish tests from within Quality Center.
- In case the plugin fails to launch squishrunner, an appropriate test result is logged in Quality Center.
- Resolved an issue which caused the result viewer to show the results of an older test run (instead of the selected run) in some cases.
Source Packages
Important Bug Fixes
- Source packages can now be compiled with Xcode 4.2 on macOS.
Documentation
New Features
- Ruby versions of the examples have been added.
Important Bug Fixes
- Minor improvements and additions have been made throughout.
- The documentation of the Quality Center plugin was rewritten from scratch, now reflecting the current state of things and discussign more recent Quality Center versions.
© 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.