Table of Contents
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 .zip
file) to
download each time you upgrade.
Added new functions, mouseMove
,
mousePress
, and mouseRelease
for 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 --resultdir
option 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.
Fixed debugging callbacks in JavaScript.
Added a File.size
function for JavaScript.
Made sure that all binary packages contain JavaScript SQL support and scripting languages support.
Added support for switching encodings on JavaScript
File
instances (e.g., to make it easier to work with Windows file
encodings).
Show JavaScript's this
object when
debugging “owned” functions.
Made sure that application context objects returned by
the applicationContextList
function have their
name
property 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 --config
option's
eagerAUTShutdown
action.)
Squish no longer crashes when the
object.properties
function encounters
unreadable properties.
Fixed a squishrunner problem that could occur when an AUT suddenly exited.
Fixed the Perl constants passed to the
sendEvent
function if the AUT is started using the
startApplication
function rather than
implicitly.
When recording using the --testsuite
option, squishrunner now supports the --aut
option.
Fixed some race conditions during the AUT's startup process that could make squishrunner crash.
If file squishserverrc
cannot be
found Squish will fallback to using
squishserverrc.txt
.
Added a new Library
class to load C and C++
libraries. This features the Library.prototype.invoke
function for calling functions in DLLs and a
Library.initModule
function. At the moment only functions
with the primitive signature void
are
supported.funcName
()
Added a new TSL function, list_select_item
using GUIObjectProxy
.
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 waitForObject
or 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 squishinfo
and
testData
.
Added
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.conf
file 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
menu now has a menu option and a separate menu option that do exactly what they say.Added a
menu option to the menu.Added a
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 Squish-registered applications.
button for attachable AUTs shown in the Manage AUTs dialog. This makes it easy to change the host and port settings ofThe attachable”
applications. Similary, it is now possible to record an attachable AUT
in which case an attachToApplication
statement will be
recorded rather than a startApplication
call.
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.
Fixed a bug which could make the JavaScript Script Console lock up.
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 "{foo='bar'}.a.b.c"
.
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
pressAndHold
function and a JavaScript-based QML extension
mechanism.
Added an extension for Qt Quick Components for Qt/Desktop
Introduced a new installSignalHandler
function for eavesdropping on Qt signals.
Improved Squish's response to reloads in
QWebView
s.
Made name generation significantly faster.
Added support for using the QProcess
class
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 QUrl
for auto-wrapped classes.
Custom QObject
classes' enums are now
automatically wrapped.
Added support for getting the values of
QPointF
, QRectF
, and QIcon
properties with dynamic wrapping.
When wrapping QObject
-based classes
Squish now also wraps properties of type QVariant
and
properties of other Qt types.
Added support for properties of type QChar
,
char
and unsigned
char
.
Improved graphics/view support so that the focus item
can be the subject of a call to the type
function.
Enhanced Squish's ability to spy and pick in
QGraphicsWebView
widgets so that Squish can now spy
recursively into HTML elements.
Made the grabWidget
function handle null
objects gracefully.
Improved robustness by invalidating Squish's internal
object cache when Squish detects that a QObject
has been
deleted.
Correctly record and replay interactions with empty combobox items.
Added mouseClick
overloads for
Q3TableItem
s and
Q3ListViewItem
s.
Fixed crash which could occur when an embedded HTML component opened a popup window.
For QDeclarativeImage
s the
source
property 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
clickLink
statements on
embedded HTML viewers.
Added support for finer-grained movement in the
dragItem
function 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 openContextMenu
was not
recorded when it should have been.
Added script conversions to and from
QVariant
objects.
Improved the lookup of QActions
by taking
account the QObject
name
and
visible
properties.
Fixed crashes for an NSWindow without a content view. (This occurs, for example, in Photoshop CS5.)
Added QWebView
constructors.
Fixed the recording of type
on
QGraphicsProxyWidget
s.
Fixed AUT crashes on exit on macOS.
Added a castToQObject
overload that accepts
a QObject
and down-casts it to the most-derived type. Safer
than using cast
for this special purpose.
Improved the speed of subprocess handling.
Fixed the recording of relative coordinates for Qt 3
QListView
items.
Added support for doing activateItem
calls
on QAction
objects that were retrieved using Qt API calls
(such as menuAction
) rather than using
findObject
.
Fixed the finding of custom
QGraphicsTextItem
s 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/lib
are 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
CLASSPATH
environment variable.
Added support for the testing of Eclipse Helios AUTs on
macOS—in general all applications that have both an executable
and a .app
directory 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.
The basetype
pseudo-property is now
recorded for AWT objects that have an inner class type.
Fixed a problem with waitForObjectItem
calls 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 type
function 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 raiseWindow
function. This function
tries to raise the browser over other windows that may overlap it.
Added a new --config
option action of
setBrowserPath
to 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 scrollTo
function.
Added support for object picking through touch events on browsers that provide this feature.
Fixed the recording of setText
when 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
--webbrowserargs
option.
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 visible
property for Excel
tables.
Made it possible to use wildcards (* and ?) in 'Extra Windows'.
Added a selected
property on MFC ListBoxItem
objects.
Added an itemCount
property 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 postMessageLong
method for
WindowsControl
s.
Added a setForegroundWindow
function.
Added a nativeObject
property 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
UltraWinGrid
, UltraWinTree
,
UltraWinTabs
, UltraStatusBar
, and
UltraToolbar
components.
Made the Object Map name reuse feature much less expensive for Windows tests.
Added a getActiveXProperty
function.
Added support for identifying Windows objects by
subproperties. For example, "{type='Window'
nativeObject.Text='Update'}"
.
It is now possible for the Windows wrapper to ignore processes by specifying “Blacklisted Processes” in the wrapper configuration file.
The _startwinaut.exe
is 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 .bat
files 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_name
property. Installation instructions are in the file
vb6hook/README.txt
.
Started work on an Exontrol extension. Enquire with sales@froglogic.com for availability.
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 .app
directory 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
type("<Return>")
.
Fixed internal object cache problem.
The touchAndDrag
function now gracefully
handles interacting with null objects.
Added an extra step in touchAndDrag
replaying to correctly mimic the initial drag trigger.
Added support for the attachToApplication
function.
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
type
function.
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.
The User Guide has been reorganized to group toolkit-specific sections together.
The User Guide has new Qt-specific sections covering the support for Qt signal handlers and the QML Extension API.
The User Guide has a new section that shows how to do keyword-driven testing.
The User Guide's coverage of shared scripts and data now also covers shared global scripts. And the IDE Reference Manual now has a section on the Global Scripts view.
The Test Script APIs are now in their own manual (before they were in the Tools Reference Manual).
The Installation Guide now has information on Safari Testing (on iOS devices), on Maemo devices, and on MeeGo.
The Add-Ons Reference manual now covers how to integrate the Squish IDE with an existing Eclipse and the TestTrack TCM integration.
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-utils
configure 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 n
option (where
n
is the number of jobs to do in
parallel) to the Squish build tool.
Added
--withmoc
,
--withrcc
, and
--withuic
configure 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.