Version 4.1.0 Beta 1
- There is now a single package that contains everything—the new IDE, the Squish tools, and the classic IDE, so there is only one package (a
.zipfile) to download each time you upgrade.
- Added new functions,
mouseReleasefor all toolkits.
- Added new visualization features that show differences between expected and actual images. In addition to strict pixel-by-pixel comparisons, it is also possible to configure them to do a couple of kinds of "fuzzy" matching.
- Added a new squishrunner
--resultdiroption to set the output directory for test results. This was introduced to make it possible to set up a custom directory for test results such as failed images of screenshot verification point comparisons. The report file's default format has now been updated to squishrunner xml2.1 format.
- In addition to the existing support for sharing scripts across all the test cases in a test suite, it is now possible to share scripts globally so that they are accessible by any test case in any test suite. This feature is also supported by the new IDE which can be used to create and manage global script directories and the scripts they contain.
- Special characters in verification point property values are now handled correctly.
- Added a
Fileinstances (e.g., to make it easier to work with Windows file encodings).
thisobject when debugging "owned" functions.
- Made sure that application context objects returned by the
applicationContextListfunction have their
nameproperty correctly updated for subprocesses.
- AUT processes are no longer killed too early. Older versions of Squish waited for the AUT's GUI to shut down and then killed the process if it didn't terminate of its own accord. This could cause problems for AUTs that shut down their GUI but wanted to continue processing afterwards. Now Squish waits for the process to terminate—and only if it doesn't terminate after a reasonable amount of time does Squish kill it. (This new approach can be disabled using squishrunner
- Squish no longer crashes when the
object.propertiesfunction encounters unreadable properties.
- Fixed a squishrunner problem that could occur when an AUT suddenly exited.
- Fixed the Perl constants passed to the
sendEventfunction if the AUT is started using the
startApplicationfunction rather than implicitly.
- When recording using the
--testsuiteoption, squishrunner now supports the
- Fixed some race conditions during the AUT's startup process that could make squishrunner crash.
- If file
squishserverrccannot be found Squish will fallback to using
- Added a new
Libraryclass to load C and C++ libraries. This features the
Library.prototype.invokefunction for calling functions in DLLs and a
Library.initModulefunction. At the moment only functions with the primitive signature
void funcName()are supported.
- Added a new TSL function,
- Added a Pause/Resume button to the Control Bar so that it is possible to pause and resume test case execution.
- Added completion support for Symbolic Names. For example, if you press Ctrl+Space after typing
findObject, the IDE will look up Symbolic Names from the Object Map that you can choose from. Completion support has also been added to support some of Squish's built in objects such as
- Added Recent Test Results button to the Test Results view that when clicked provides a drop-down list of the ten most recent test execution results for each suite.
- Added a GUI setting to change the output directory used for recent test results.
- Added a new Mask Editor tool.
- Improved support for Screenshot Verification Points by allowing edit masks and customizable comparison modes.
- Added support for nested subdirectories in test suite and test case resources.
- Added support for opening Test Suites by dragging and dropping their directory or
suite.conffile onto the IDE. Similarly, support for adding test resources by dragging and dropping has been added.
- Test cases can be reordered in the Test Suites view's Test Cases list using drag and drop. (When an entire test suite is executed the those test cases that are checked are executed in order from top to bottom in the list.)
- Added support for checking or unchecking multiple Test Cases in one go.
- The Squish menu now has a Close Test Suite menu option and a separate Delete Test Suite menu option that do exactly what they say.
- Added a Run Test Suite menu option to the Squish menu.
- Added a Copy Property Value menu option to the to Object Properties view's context menu.
- Switched to a more capable third party editor (PyDev) for editing Python scripts. This provides better syntax highlighting, improved code completion, and many other useful features.
- Added an Edit button for attachable AUTs shown in the Manage AUTs dialog. This makes it easy to change the host and port settings of Squish-registered applications.
- The Launch AUT action now also supports selecting one of the registered "attachable" applications. Similary, it is now possible to record an attachable AUT in which case an
attachToApplicationstatement will be recorded rather than a
- Added an option for removing entries from Screenshot Verification Points.
- Fixed a problem where the Object Map could accidentally lose entries.
- Prevented QTP causing errors in the IDE.
- Fixed a problem that could occur during the extraction of failed screenshot information when the test result message contained quotes.
- Fixed a problem that could occur when viewing screenshots made due to failed verifications.
- Test suites can now only be deleted when their associated AUT is not being run.
- Accidentally renaming the main test script file is now prevented.
- Fixed a problem that could occur when handling Property Verification Points with multi-line text comparisons.
- Prevented the appearance of multiple verification point editors that could occur in some situations when starting verification point creation.
- Added a GUI option to switch on or off the logging of Squish's internal tool communications—froglogic support engineers may ask you to switch this on to help debug problems.
- Fixed some cases where Null Pointer Exceptions occurred.
- Ensured that the focus is given to newly opened editors.
- Introduced a new Global Scripts view for the management and editing of globally shared scripts.
- Improved the layout of the verification point editor.
- Verification points can now be fully deleted (including all their properties).
- Verification points are now correctly created even when using the deprecated hierarchical naming scheme.
- The Add Mapped AUT dialog now behaves correctly when canceled.
- Fixed spurious deadlocks that could occur when checking an object in the Application Objects view.
- Fixed the displayed result text when a verification point is not verified (i.e., the when the test failed).
- Set the default identation width to four spaces for Perl. (This can, of course, be changed through the IDE's Preferences dialog.)
- Fixed rendering problems that could occur with the focus-cell highlighter.
- Fixed a problem that could occur when reloading externally modified CSV data files.
- Fixed a problem that could occur when fetching image screenshots to be used as the expected image in cases where the object wasn't previously selected in the Spy.
- Fixed the usage of the Squish IDE plugins in a standard Eclipse installation. Ask froglogic Technical Support for installation instructions.
- Fixed a problem that occurred when grabbing screenshots of an object whose name contains dots.
- Fixed spurious startup hangs that could occur on Windows.
- Fixed a problem that could occur when executing multiple suites immediately after each other.
- Fixed a problem with Spy context handling in multi-AUT scenarios.
- Fixed a problem that could occur when handling legacy object names such as
- Limited the maximum length of the stored squishserver output.
- Screenshots are now only grabbed after the IDE has been completely hidden.
- Added support for various QML components including the recording and playback of "flick" actions, the detection of HTML and GridView components, and synchronization on animations. Also added a new
- Added an extension for Qt Quick Components for Qt/Desktop
- Introduced a new
installSignalHandlerfunction for eavesdropping on Qt signals.
- Improved Squish's response to reloads in
- Made name generation significantly faster.
- Added support for using the
QProcessclass in test scripts.
- Improved the error message when invalid row or column values are used when searching for a table or tree item.
- Added support for properties of type
QUrlfor auto-wrapped classes.
QObjectclasses' enums are now automatically wrapped.
- Added support for getting the values of
QIconproperties with dynamic wrapping.
- When wrapping
QObject-based classes Squish now also wraps properties of type
QVariantand properties of other Qt types.
- Added support for properties of type
- Improved graphics/view support so that the focus item can be the subject of a call to the
- Enhanced Squish's ability to spy and pick in
QGraphicsWebViewwidgets so that Squish can now spy recursively into HTML elements.
- Made the
grabWidgetfunction handle null objects gracefully.
- Improved robustness by invalidating Squish's internal object cache when Squish detects that a
QObjecthas been deleted.
- Correctly record and replay interactions with empty combobox items.
- Fixed crash which could occur when an embedded HTML component opened a popup window.
sourceproperty is now recorded and matching has been fixed accordingly.
- Binary packages build with MSVC 10 are now available.
- MinGW packages for Qt >= 4.7 are now built with a newer compiler version. This fixes crashes that occurred during recording on Windows 7 with the standard style using animations.
- MeeGo device RPM packages are now available upon request.
- Avoid incorrectly recording multiple
clickLinkstatements on embedded HTML viewers.
- Added support for finer-grained movement in the
dragItemfunction for more realistic replay.
- Fixed the enabling and disabling of native file dialogs on X11 systems.
- Fixed testing of Qt 4 tables and trees that have a non-default root item set.
- Fixed a case where
openContextMenuwas not recorded when it should have been.
- Added script conversions to and from
- Improved the lookup of
QActionsby taking account the
- Fixed crashes for an NSWindow without a content view. (This occurs, for example, in Photoshop CS5.)
- Fixed the recording of
- Fixed AUT crashes on exit on macOS.
- Added a
castToQObjectoverload that accepts a
QObjectand down-casts it to the most-derived type. Safer than using
castfor this special purpose.
- Improved the speed of subprocess handling.
- Fixed the recording of relative coordinates for Qt 3
- Added support for doing
QActionobjects that were retrieved using Qt API calls (such as
menuAction) rather than using
- Fixed the finding of custom
QGraphicsTextItems with Qt 4.5 and older.
- Made hardcoded Qt library path names optional. Previously, it was necessary to specify the absolute path name of the Qt library used by the AUT. Now, the setup tool can be used to set Squish to use dynamic detection.
- Unix only: standard paths like
/usr/libare no longer added to the library search paths to avoid library conflicts.
- Dropped support for AUTs built with Qt 2.3 and 3.0. Later Qt 3 versions, e.g., 3.1 and later, are still supported.
- Dropped support for the remaining wstring functions due to wchar_t problems.
- Dropped special support for hooking into AUTs that are statically linked against Qt. This has not been supported by Qt itself since Qt 4.1. This change also allows using AUTs which are not themselves based on Qt but which start Qt-based subprocesses. The recording of such subprocesses is now possible.
All Java AUTs.
- When spying, the object picker no longer highlights widgets on hidden tabs.
- Fixed a problem with Tree items and column picking when the Tree has been scrolled.
- Fixed menu recording when the mouse is dragged.
- Typing double-quotes is no longer recorded as a special key combination.
- Provided a more robust launcher call for 32-bit applications on macOS with JDK version 1.6 or later.
- The Java wrapper now honors the "Whitelisted Objects" of native Windows controls.
- Squish now uses a more robust setting of the
- Added support for the testing of Eclipse Helios AUTs on macOS—in general all applications that have both an executable and a
.appdirectory with the same name.
- Fixed the coordinate calculation when replaying clicks on scrolled views.
- Fixed crashes that occurred when using the IBM JVM.
- Prevent Windows C Run-Time Error R6034 when trying to start Java applications with 64-bit JREs.
Java AWT/Swing AUTs.
basetypepseudo-property is now recorded for AWT objects that have an inner class type.
- Fixed a problem with
waitForObjectItemcalls for Swing menu items on macOS.
- Fixed the Java screen capturing support for AWT.
Java SWT AUTs.
- Various fixes for the bounding rectangles of SWT menus and menu items.
- Prevented mouse presses going to the AUT when picking an SWT (Gtk) object in the Spy.
- Squish now looks for SWT Cocoa when Carbon is not found on 32-bit macOS
- Fixed a problem with SWT/Cocoa menu handling.
- Fixed a problem with the SWT/Cocoa
typefunction replaying when modifiers are used.
- Fixed the calculation of SWT/Cocoa List item bounds.
- Fixed the calculation of bounds for SWT/Cocoa TableColumns when the Table is scrolled.
- Fixed an off-by-one error when handling SWT Table items.
- Worked around a text-typing bug in the SWT Cocoa implementation on macOS.
- Fixed architecture detection of SWT module on Windows.
- Introduced an alternative, proxy-based approach to Web testing that makes it possible to test more browsers in more contexts—for example, Chrome, Opera, and Mobile Safari (the latter on iOS devices).
- Added a property that holds an object's DOM path.
- Added a
raiseWindowfunction. This function tries to raise the browser over other windows that may overlap it.
- Added a new
--configoption action of
setBrowserPathto the squishrunner. This makes it possible for the new IDE to be able to update the browser executable (in particular for the proxy-case).
- Add a
- Added support for object picking through touch events on browsers that provide this feature.
- Fixed the recording of
setTextwhen typing text is interrupted by other events such as focus changes.
- Fixed the fetching of properties from remote browsers and from browsers that respond very slowly.
- Allow multiple Firefox instances to be driven from a single user account on a Unix system.
- Fixed the passing of double quotes via the squishrunner
- Fixed the fetching of style properties in Firefox.
- Greatly speeded up lookups for native Windows controls in large GUIs by changing the order in which the object hierarchy is traversed.
- Improved the playback speed for object names with leftObject and/or aboveObject properties.
- No longer accidentally use the wrong menu in some cases when clicking on menu items in Windows Forms applications.
- Improved the reliability of recording for Windows Forms menu items.
- Mouse clicks are no longer recorded on disabled toolbar items.
- Improved Squish's event processing to enhance the reliability of the recording of mouse and keyboard actions.
- Added support for testing PowerBuilder-based applications. Inquire with support for more details.
- Stopped the mouse cursor from changing position when picking native Windows objects.
- Added support for the CA Plex ObGrid control.
- Made it possible for the toolkit wrappers (Qt, Web etc.) to specify the list of objects which the Windows wrapper should ignore by specifying a list of object names.
- Fixed blocking events when picking objects.
- Fixed the recording of table cell clicks when the mouse down event causes the cell to turn into an edit field.
- Added a
visibleproperty for Excel tables.
- Made it possible to use wildcards (* and ?) in 'Extra Windows'.
- Added a
selectedproperty on MFC ListBoxItem objects.
- Added an
itemCountproperty that holds the number of items contained in objects which contain other items, such as tree views, list views, list boxes, menus, menu items, tabs, and status bars.
- Added a
- Added a
- Added a
nativeObjectproperty for all Windows Forms objects. This property can be used to access all the Windows Forms object's native properties.
- Added support for the Infragistics
- Made the Object Map name reuse feature much less expensive for Windows tests.
- Added a
- Added support for identifying Windows objects by subproperties. For example,
- It is now possible for the Windows wrapper to ignore processes by specifying "Blacklisted Processes" in the wrapper configuration file.
_startwinaut.exeis now correctly terminated after test execution.
- The startwinaut.exe can now accept AUT executable names without absolute paths.
- Improved MsoCommandBar identification.
- Imroved the reliability of combobox expansion when a list item is selected.
- It is now possible to use
.batfiles as AUTs for Windows test suites.
- Hooking into 32-bit Windows Forms applications now works on both 32-bit and 64-bit Windows.
- Introduced a Visual Basic module which, when injected into a VB6 application, adds support for the
vb_nameproperty. Installation instructions are in the file
- Started work on an Exontrol extension. Enquire with firstname.lastname@example.org for availability.
Mac-specific (Cocoa/Carbon edition)
- Added support for macOS 10.6.
- Added support for testing 64-bit AUTs.
- Fixed a problem with verification point generation for Boolean properties.
- Fixed a squishserver problem regarding the detection of 32-bit and 64-bit executables.
- Improved the reliability of finding the executable when there is both an AUT executable and a
.appdirectory of the same name.
- Added special case support for
type("UITextField", "<Return>")so that the onscreen keyboard is hidden and the actions associated with the Return are executed.
- Correctly record
- Fixed internal object cache problem.
touchAndDragfunction now gracefully handles interacting with null objects.
- Added an extra step in
touchAndDragreplaying to correctly mimic the initial drag trigger.
- Added support for the
- Added support for launching Tk AUTs with the Squish startaut tool.
- Fixed a problem with the replay of iwidgets TabNotebook clicks.
- Made the windows fallback wrapper work correctly.
- Fixed a problem that prevented building Squish/Tk on 64-bit Windows.
- Added support for the recording and replaying of image-information on menu items.
- Fixed a problem with object identification when recording in the face of overlapping windows.
- Fixed a problem with clicking native widgets that are children of Tk windows.
- Squish now ensures that listbox items are visible before clicking them.
- Squish now ensures that tkTable widget items are visible before clicking them.
- Squish now highlights widgets that could be picked in spy mode as the mouse hovers over them.
- Fixed the handling of mixed-case strings in the
- Added a statically linked Tk example.
- The Qt, Java AWT/Swing, Java SWT, Windows, macOS, and Tk tutorials have all been updated and harmonized for Squish 4.
- All the newly added Squish functions and features have been documented (with some of the larger items mentioned below). All the documentation has had numerous updates, improvements and corrections.
- A global "back of the book"-style index has been added which covers all of the documentation.
- The PDF version of the manual has been improved.
- For split builds, the
--enable-ide-utilsconfigure option is now needed.
- The Squish build system now automatically detects the Qt include directory on debian and debian-based systems.
- Qt 4 headers are now read from the dedicated sub-directories such as
QtCore/; this avoids compiler warnings that would otherwise occur with Qt 4.7.
- Squish can now be compiled with a custom Qt namespace.
- Experimental support for parallel builds has been added. Pass the
-j noption (where
nis the number of jobs to do in parallel) to the Squish build tool.
--withuicconfigure options for customized Qt installations such as those found in the MeeGo SDKs.
- It is now possible to do builds for the Qt Simulator.
- Support for compiling with mingw-w64 has been added..
- Qt visibility detection has been enabled on Solaris.
- The Classic IDE has been renamed squishclassicide.
- The Classic IDE had a bug that could result in 100% CPU usage (i.e., hanging) when doing snippet recording; this has now been worked around.