Known Issues - Squish 8.1.0 Release¶
Release Date: Dec 4th, 2024
Recommended Update: n/a
All Squish Editions¶
After closing or killing a process that listens on a TCP port (this could be an attachable AUT or squishserver), launching the process again (within 60 seconds) may lead to the process not being able to listen on the same socket again. (squishserver will report Could not bind to 0.0.0.0:4322: Address already in use
or similar.)
Solution:
Use a Squish 8.1 snapshot. Please contact our technical support regarding this. (Fixed on 2025-01-09; SQUISH-18458)
Workarounds
- Use Squish 8.0.0.
Squish for Web¶
Attaching to Chrome using the 'Qt QA Squish Integration' fails after the initial setup¶
We observed that Google Chrome will not automatically start the 'Qt QA Squish Integration' after having installed it into the users normal Chrome profile and launching Chrome. This creates a problem as the attaching to the running instance of Chrome will not work if the background tasks of the extensions are not running. Based on our testing this issue only occurs when the corresponding profile folder was never used with Squish previously and Squish never started the browser in that profile.
We suggest to follow the following additional steps, after installing the 'Qt QA Squish Integration' Extension into the normal users profile as outlined in the installation documentation to mitigate this problem.
- Ensure the 'Qt QA Squish Integration' extension is used for launching the browser, as outlined in the installation documentation
- Launch Chrome via Squish, either from the IDE or by running a Squish test that start Chrome using the
startBrowser
function - Locate the default Chrome profile folder, see the
Chromium
project
documentation
for the location of the user-data directory on your system and locate the
Default
folder inside that folder - Rename the
Default
folder to preserve the original Chrome profile - Locate the Squish-specific Chrome profile folder: In the user data directory used by Squish locate the
Default
folder (%APPDATA%\froglogic\squish\squish_chrome_data_dir
on Windows,$HOME/.squish/squish_chrome_data_dir
on Linux/macOS) - Copy the
Default
folder from the Squish-specific user data directory into the user data directory used by Chrome when started outside of Squish - Copy the file
com.froglogic.nmshelper.chrome.json
from theNativeMessagingHost
folder inside the Squish-specific user data directory over to the corresponding folder in the user data folder used by Chrome - In case you want to use a port other than the default (9935) launch Chrome outside of Squish again and reconfigure the extension
Now launching Chrome outside Squish and attaching to it from a test script should work.
Other Workarounds:
- Continue using the 'froglogic Squish Integraton' for now, Chrome may eventually remove support for this in the coming months though
- Consider using Chromium-based Application support for attaching to automate the browser
- Consider using a different browser, such as Firefox
- Consider if you can let Squish start the browser via
startBrowser
- Consider using Image-based testing, if applicable
Attaching to Chrome using the 'Qt QA Squish Integration' fails intermittently¶
In addition to the initial setup issue we also observed on some systems that the extension is being stopped by Google Chrome and subsequent attempts to attach to the browser would thus fail. This can cause intermittent failures to attach to the browser, usually all subsequent attemps fail then.
In order to mitigate this, an interaction with Chrome can be done before attaching to it, based on our testing. For example switching focus away from and back to the Chrome window using image-based testing, switching tabs inside of the Chrome window via image-based testing or even loading a new window by invoking the Chrome executable with a URL help to resume the Squish extension.
We would suggest to invoke the Chrome executable as part of the test script - using the script-specific API for launching subprocesses - with a simple URL, then attach to the browser and close the tab that has just been opened before continuing the normal test process.
An example script in python would look like this:
import subprocess
def main():
subprocess.call(["C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe", "https://www.google.com"])
attachToBrowser(9935)
waitForObject({"type": "BrowserTab", "title": "Google"}).close()
[..]
Other Workarounds:
- Continue using the 'froglogic Squish Integraton' for now, Chrome may eventually remove support for this in the coming months though
- Consider using Chromium-based Application support for attaching to automate the browser
- Consider using a different browser, like Firefox
- Consider if you can let Squish start the browser via
startBrowser
- Consider using Image-based testing, if applicable
Squish for Web on Linux arm64 packages not available¶
During testing the release we found that browser vendors are not yet providing their browsers for this platform directly. The distributions may provide packages for these browsers, but on our reference distribution Ubuntu 24.04 these are using the flatpack format which is not possible to automate via Squish at the moment.
Given the practical absence of browsers on this platform that would allow automation via Squish we decided against publishing the Squish for Web for Linux/arm64 packages at this point in time as we could not thoroughly test them.
We are monitoring the situation with browser availability and will provide the packages when the common usage scenarios can be supported.
Squish for Tk¶
Attaching to attachable Tk AUT a second time causes it to crash.¶
Known to occur on Linux, Tk 8.6.
Please contact our technical support to inquire about getting a snapshot package.
Solution: Squish 8.1 Snapshot packages built after 2024-01-13 (9.0 release will include the fix)
Workaround: None yet
Squish for Qt¶
Squish for Qt (non-embedded/non cross-compilation) source builds for Qt 6 fail¶
The following error message will occur:
Building /home/myuser/squish/8.1/6.8.0/src/wrappers/qt/squishidl_qlist.h
error: unknown target triple 'unknown', please use -triple or -arch
squishidl: error: Error code: 1. Could not parse translation unit: '/home/myuser/Qt/binary/6.8.0/6.8.0/gcc_64/include/QtCore/qlist.h'
Solution:
Use a Squish 8.1 snapshot. Please contact our technical support regarding this. (Fixed on 2024-12-06; SQUISH-18359)
Workaround: None
Squish IDE¶
Crash on first start or when displaying the welcome page on Ubuntu Linux arm64¶
On some Ubuntu Linux arm64 systems (24.04 or newer) the Squish IDE may crash on first start or when opening the welcome page (from the menu Help → Welcome).
This is because of a bug in webkit2gtk
, a component used by the Eclipse framework (that
the Squish IDE builds upon) to display HTML content on Linux.
The bug
has been resolved upstream in the meantime, webkit2gtk 2.44.2-0ubuntu0.24.04.2
or newer
has the fix (to find out which version of webkit2gtk
is installed, run e.g.
apt list webkit2gtk*
in the command-line).
Workaround: If your Ubuntu system is affected by this bug and cannot be upgraded, setting the following environment variable should prevent the crash and the Squish IDE should open normally again:
export WEBKIT_DISABLE_DMABUF_RENDERER=1