Overview¶
The default set of pre-built Squish for Qt binary packages is targeting the most common Qt configurations. The most important compatibility requirements are listed below.
Other configurations can be targeted by compiling Squish using a source package.
For some alternatives (debug builds, Qt 4 without Qt3Support) froglogic can quickly provide modified builds upon request. For other non-standard configurations (e.g. renamed Qt libraries, embedded systems, modified Qt API or binary interface) please contact technical support for creation of custom builds . Extra charges may apply.
In particular, for the default set Squish binary packages the following requirements must be met:
Requirement #1: ONLY FOR QT BASED APPLICATIONS - Squish for Qt binary packges can only be used to automate Qt applications.
Requirement #2: ONLY FOR DYNAMICALLY LOADED QT LIBRARIES - Squish binary packages can only be used to automate Qt applications that load the Qt libraries dynamically. (For testing statically-linked applications, it is required to build Squish from sources and instrument your application. This process is described in our documentation ).
Requirement #3: COMPILER OF QT LIBRARIES MUST MATCH THE ONE USED FOR THE SQUISH PACKAGE - Squish binary packages must match the compiler (vendor and version) used to compile the Qt libraries of application.
Requirement #4: QT APPLICATION BUILD TYPE MUST BE "RELEASE" - Squish binary packages are release builds, so your Qt application must also be a release build. (If you want to test debug builds please contact froglogic, or create your own debug build of Squish using a source package.)
Requirement #5: APPLICATION'S QT MUST BE BUILT WITH DEFAULT CONFIGURATION - Squish binary packages are built using a Qt that was built with the default configuration. This means that the application must also use Qt libraries that have been built using the default configuration (or one that is compatible with it). Most importantly this means that the Accessibility and Qt3Support modules must be enabled in the AUT's Qt and that the linker flags
LDFLAGS='-Wl,-Bsymbolic-functions'
must not have been used for building Qt.Requirement #6: QT DLLS MUST HAVE THEIR ORIGINAL NAMES - This is actually a variation of the previous requirement: With Squish for Qt binary packages on Windows the Qt libraries used by your application must have the original library names. (Custom names of Qt libraries are supported when building Squish from sources and when using the
-qtlibinfix
configure option of Qt (see-qtlibinfix
at Configuration Options for Qt )).
Dependencies of Squish for Qt (Qt 4) binary packages¶
Library | Mac | Unix | Windows |
---|---|---|---|
QtCore4 | QtCore.framework | libQtCore.so.4 | QtCore4.dll |
QtGui4 | QtGui.framework | libQtGui.so.4 | QtGui4.dll |
QtNetwork | QtNetwork.framework | libQtNetwork.so.4 | QtNetwork4.dll |
Qt3Support | Qt3Support.framework | libQt3Support.so.4 | Qt3Support4.dll |
QtSql | QtSql.framework | libQtSql.so.4 | QtSql4.dll |
QtXml | QtXml.framework | libQtXml.so.4 | QtXml4.dll |
On Windows, Squish for Qt ships with the libraries listed above (*.dll), so that it is possible to test Qt applications that do not include these libraries, without any further steps being necessary.
If these libraries are not provided you get errors such as these in Runner/Server Log
:
The specified module could not be found.
Dependencies of Squish for Qt Pure Qt 4 binary packages¶
Pure Qt 4 (Which means Qt configured without the Qt3Support module) packages are only available on request, so please contact froglogic if you require a pure Qt 4 package.
Library | Mac | Unix | Windows |
---|---|---|---|
QtCore4 | QtCore.framework | libQtCore.so.4 | QtCore4.dll |
QtGui4 | QtGui.framework | libQtGui.so.4 | QtGui4.dll |
QtNetwork | QtNetwork.framework | libQtNetwork.so.4 | QtNetwork4.dll |
QtSql | QtSql.framework | libQtSql.so.4 | QtSql4.dll |
QtXml | QtXml.framework | libQtXml.so.4 | QtXml4.dll |
On Windows, Squish for Qt ships with the libraries listed above (*.dll), so that it is possible to test Qt applications that do not include these libraries, without any further steps being necessary.
Additional dependencies of Pure Qt 4 packages on Windows¶
QtNetwork4.dll
Squish binary packages ship with this library, but it may be slightly incompatible. This can cause the following error when the application starts up under Squish's control:
The specified procedure could not be found
(This won't happen if this library is shipped with your application of course, because in such cases the application will use its own copy of the library rather than Squish's.)
The solution is simply to copy the QtNetwork4.dll
file that the application was built with (i.e., the one used by the Qt that the application was built with) into the same folder as the other library files that your application uses.
Additional requirements for automating QtWebKit¶
Squish supports automating QtWebKit interaction via an extension. (The extension ships with Squish for Qt, but requires an additional Squish for Web license to be usable.) Qt binaries above Qt 5.6 no longer include QtWebkit, so binary releases of Squish for Qt versions higher than that won't work with Webkit either, without a "quick install" step with a custom build of Qt.
The Squish QtWebKit extension depends on the following libraries:
Library | Mac | Unix | Windows |
---|---|---|---|
phonon | phonon.framework | Not required | Not required |
QtDeclarative | QtDeclarative.framework | libQtDeclarative.so.4 | QtDeclarative4.dll |
QtOpenGL | QtOpenGL.framework | Not required | Not required |
QtScript | QtScript.framework | libQtScript.so.4 | QtScript4.dll |
QtSvg | QtSvg.framework | Not required | Not required |
QtXmlPatterns | QtXmlPatterns.framework | libQtXmlPatterns.so.4 | QtXmlPatterns4.dll |
On Windows it should be sufficient to copy these files to the SQUISH_DIR\bin
folder.
On Mac OS X these should be copied into the Frameworks folder of the application (for example /Applications/MyApp.app/Contents/Framework
).
Possible workarounds¶
If the requirements listed above (or ones compatible with them) are not met, it may be possible to use the Qt libraries supplied with the Squish binary package. To try this out, first make sure that you make a backup of your application's libraries! Then copy Squish's Qt libraries into the directory that has your application's Qt libraries, overwriting the originals (hence the need to backup first). Now try recording and playing back tests.
If you still cannot get things to work, restore the application to its original Qt libraries. Download a Squish binary package and build Squish from source using the same Qt libraries as your application uses.
Note that if your application uses Qt without Qt3Support, contact froglogic support so that we can build you a Squish binary package without Qt3Support that can be used with your application and its Qt libraries.