B Release notes
B.1 QF-Test version 10.0
B.1.1 Changes that can affect test execution
-
QF-Test itself now requires at least Java version 21. This is independent of the Java version for the SUT, where compatibility with Java back to version 8 is still being maintained. An SUT application based on Java Swing, JavaFX or SWT should always be started with its own, dedicated JRE and not the one from QF-Test.
Note The internal Java version will be raised to Java 25 as soon as a recurring Windows issue in the JDK is fixed. As a general rule, QF-Test should always be run with the JRE provided during installation except for special case like the need to use a plugin that requires a higher Java version.
-
The Apache POI library has been updated to version 5.5.1. Its API has changed, which may break scripts
written against the old version. To maintain backward compatibility, the file
poi.jaris no longer on the classpath of QF-Test, so you can simply drop thepoi.jarfrom an older QF-Test release into theplugin/qftestdirectory to continue using the old API.
B.1.2 Version 10.0.0 - December 9, 2025
New features:
- QF-Test is now available in different editions: QF-Test for web browsers, accessibility, WebAPI and web service testing; QF-Test Desktop for Java and native Windows applications; QF-Test Mobile for Android and iOS apps. QF-Test Pro combines all technologies and additionally supports hybrid applications. Existing customers can continue to use QF-Test Pro as usual within the scope of their current licenses.
- The new WebAPI feature for testing web services comes with several dedicated nodes and the ability to import Postman collections. See "WebAPI – Web services testing" for general information, "WebAPI" for details of the new nodes and "WebAPI scripting API" for the script-level API.
-
Starting with version 10, the AI era also begins for QF-Test: the options described in "Artificial Intelligence" allow you to define which LLM providers to use. With the new
Check text with AI node, you can then check texts from UI components against any semantic criteria.
In addition, arbitrary AI requests can be executed at runtime via script by calling
ai.ask(see "The ai module"). - QF-Test can now handle images much more easily and flexibly. With the new Set image node, images can be defined as QF-Test variables whereas the Fetch image node fetches images dynamically from the SUT. Image variables can be used in Check image as an alternative to the previously stored image as well as in various procedures that have been extended accordingly.
- Accessibility testing is now configured via the new YAML-based Accessibility Checks node, with additional checks for keyboard focus visibility and correct use of the "lang" attribute.
- QF-Test can now handle invalid values in node attributes more flexibly. This allows for a smoother form of editing (modeless editing). Invalid values are highlighted and the "OK" and "Cancel" buttons are now optional. See "Basic editing" for details and options.
-
Projects now have additional features that can be activated by editing the
qftest.qpjfile as described in "The file qftest.qpj". This makes it possible to define project-specific include directories for test suites and to specify files to include or exclude explicitly or by reading a.gitignorefile. - The dialogs shown for errors with the debugger active now offer additional actions for easier continuation of the execution.
- When renaming Variable definitions in a Procedure or Parameter default values in a Test case or Test set node, QF-Test now also offers to automatically update references to those variables below the changed node.
- The Test step node now also has a Condition attribute similar to Test case and Test set.
- The HTML documentation has been further improved with a new secondary sidebar for easier navigation.
- "Copy to clipboard" buttons have been added to relevant fields in test suites and run logs as well as to important messages in the report and examples in the manual.
-
Persistent marks from doctags like
@blueare now also shown in the run log. -
Comparing version numbers as strings is not a good idea - the update to QF-Test version 10 is a case in
point. The new procedures in
qfs.utils.versionin the standard libraryqfs.qftmake it easy to compare even complex version numbers with multiple parts and additional labels. -
The new standard library procedure
qfs.databinder.bindJSONadds the ability to iterate over a JSON array when called from a Data driver node, and the new procedureqfs.utils.json.compareJSONValuescomplementsqfs.utils.json.compareJSONFilesto compare JSON values that are already bound as variables. -
Web
The new procedure
qfs.web.browser.general.printToPDFin the standard libraryqfs.qftenables direct creation and download of a PDF file from a web page controlled via CDP-Driver connection mode. -
To support login screens with 2-factor-authentication (2FA), the new standard library procedure
qfs.utils.generateTOTPcan be used. -
The new standard library procedure
qfs.utils.image.readMatrixCodecan be used to read the content of a QR code or bar code. The matching procedureqfs.utils.image.createMatrixCodecan be used to create images for visual codes. -
Web
The new CustomWebResolver
siblingrule allows to specify relations between neighboring elements (see "Configuration category genericClasses"). - Android The recording window for mobile applications now provides options for controlling swipe recording modes: in addition to the coordinate-based method, a simple directional swipe mode (up, down, left, right) and an intelligent mode are available. It is also possible to specify whether the swipe time should be recorded.
Version updates:
- Support was added for testing applications based on Java 26.
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.38 alias "2025-12".
- Groovy has been updated to version 4.0.29.
- Web The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 137.
- Web The axe core library used for web accessibility tests has been updated to version 4.11.0.
- Web QF-Test now also supports tests with JxBrowser version 8.14.
- Web The bundled cdp4j library has been updated to version 7.1.13.
- Web The bundled jQuery UI library has been updated to version 1.14.1.
- Electron QF-Test now also supports tests with Electron versions 37.7.0, 38.5.0 and 39.0.0.
- Web QF-Test now also supports tests for Fluent UI version 8.125.0.
- iOS The embedded device agent for iOS was updated to WDA version 10.2.1.
- The bundled undertow library has been updated to version 2.3.20.
- The bundled Apache Commons-CSV library has been updated to version 1.14.1, Commons-IO to version 2.20.0, Commons-Codec to version 1.19.0 and Commons-Collections to version 4.5.0.
Bugs fixed:
- Changes to the default stream encodings and the respective system properties in Java 21 and higher have been taken into account to fix character encoding errors in the QF-Test terminal and the script consoles.
- Obfuscated display of encrypted variables in the run log is now more reliable.
-
Web
Calculation of the associated label in web applications has been fixed for cases where
forattribute of a label points to a node with anidthat contains numbers. The Aria attributearia-labelledbyis now also recognized. Care was taken to maintain backward compatibility so that components recorded using a different label type due to the previous error or missing feature will still work. - Web Calculation of indentation for nested tree nodes in a web resolver has been fixed for a rare edge case.
- The algorithm for automatically assigning internal IDs to nodes has been redesigned to reduce the number of ID changes when working collaboratively on a test suite, thereby reducing the likelihood of merge conflicts.
B.2 QF-Test version 9.0
B.2.1 Version 9.0.6 - September 10, 2025
New features:
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.37 alias "2025-09".
- Android The QF-Test Android service is added to the Doze whitelist, allowing it to keep running without restrictions from the power-saving (Doze/standby) mode of Android.
-
It is now possible to specify automatic variable expansion in the return value of the
standard library
qfs.qftproceduresqfs.shellutils.exec,qfs.utils.readTextFromFileandqfs.utils.clipboard.getTextFromClipboard.
Version updates:
- iOS The embedded device agent for iOS was updated to WDA version 10.1.0.
- iOS The verification of the environment setup for iOS has been adapted for iOS 26.
- Web QF-Test now also supports tests with JxBrowser versions 7.44, 8.11, 8.12 and 8.13.
- Web The bundled cdp4j library has been updated to version 7.1.12.
- The bundled Closure Compiler version has been updated to version v20220502-qfs-r1.
- The bundled Jackson library has been updated to version 2.20.0.
- The bundled jsch library has been updated to version 2.27.2.
- The embedded JUnit Jupiter 5 library has been updated to version 5.14.1 and the JUnit 4 library to version 4.13.2.
- The bundled ini4j library has been updated to version 0.5.6-sm-221214.
- The bundled InfluxDB library has been updated to version 7.3.0.
- The JGraphX library is not required anymore and therefore no longer shipped with QF-Test.
Beseitigte Bugs:
B.2.2 Version 9.0.5 - July 30, 2025
New features:
- The status line message for step execution now includes the client name.
- Web The error level of how to handle errors in a web application can now be also set to the level "message".
Version updates:
- The JRE distributed with QF-Test has been updated to Temurin OpenJDK version 17.0.16.
- The integrated Netty library has been updated to a fork in which a critical security issue was fixed. The code behind the issue was never used by QF-Test but the old library did show up in security scanners.
- Android QF-Test now registers its Android library as an accessibility tool and thus also supports API versions 34 and 35.
- Web QF-Test now also supports tests for Ext JS version 7.9.0.
- Web QF-Test now also supports tests for ZK version 10.2.
- Web QF-Test now also supports tests for Angular Material version 20.1.
- Web QF-Test now also supports tests with JxBrowser versions 7.43.2 and 8.9.0.
- Web The bundled cdp4j library has been updated to version 7.1.11.
Bugs fixed:
- Reading an empty CSV file could fail.
- Web QF-Test now correctly recognizes tree nodes in Vaadin 24.7 as well as their indentation.
- Android In some cases incorrect coordinates were recorded for mouse clicks on Android and iOS if the option Record MouseEvents without coordinates where possible was enabled.
- Android The attribute Clear target component first is now also set during recording on both iOS and Android.
- Android Under certain conditions it was not possible to record text from password fields in Android and iOS applications.
B.2.3 Version 9.0.4 - June 11, 2025
Version updates:
- Support was added for testing applications based on Java 25.
- Groovy has been updated to version 4.0.27.
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.36 alias "2025-06".
- Electron Support for Electron has been updated to Electron versions 35.5.0 and 36.4.0.
- Web Support for JxBrowser has been updated to JxBrowser version 7.43, 8.6, 8.7 and 8.8.
- Web The bundled cdp4j library has been updated to version 7.1.10.
- Web The CustomWebResolver provided with QF-Test now also supports tests for Angular Material version 20 and for ZK version 10.1.0.
- The embedded JUnit library was updated to version 5.13.1.
- iOS The embedded device agent for iOS was updated to WDA version 9.14.1.
Bugs fixed:
-
A new option allows to define object types which should not be shared between processes in variables (see
Object classes to exclude from serialization). The default
java.awt.Componentis used to work around issues in serializing Swing components. - Web The rounded corners introduced in recent versions of the Edge browser interfered with the location detection algorithm of QF-Test which has now been updated to compensate for that effect.
- Web For web tests with several browser tabs that all match the same component or SmartID QF-Test now always prefers the active tab.
- Mac Hard mouse clicks with modifiers other than shift or control were not always performed correctly.
- Web When clearing the browser cache for Chrome QF-Test now also removes synchronization data because malformed data can lead to Chrome crashing upon startup.
- Windows-Tests On Windows an SUT client can now again be started using a UNC path as the executable.
B.2.4 Version 9.0.3 - April 29, 2025
Version updates:
- The JRE distributed with QF-Test has been updated to Temurin OpenJDK version 17.0.15.
Bugs fixed:
- Web Starting with QF-Test 9.0.2, opening Chrome in QF-Driver mode on Windows could trigger an error dialog. Even though the dialog did not block test execution it was still annoying.
- The workaround from QF-Test 9.0.2 for a Java bug on Windows caused an issue itself in case the working directory of QF-Test was a UNC path.
-
In Jython scripts, a
BigDecimalobject retrieved viarc.getNumcould not be compared to numbers of other types. -
Trying to retrieve a return value via expansion of
${qftest:return}caused aMissingPropertyExceptionin case a procedure terminated without explicit return. Now the empty string is returned again in this case. - Web In accessibility tests, trying to take screenshots of components without a valid size could lead to an exception.
- Windows-Tests For Windows applications on Windows 11, trying to record a check or inspect a component could lead to a temporary freeze of the SUT.
B.2.5 Version 9.0.2 - April 9, 2025
New features:
- Data drivers now preserve known object types. Data tables allow to specify object types explicitly via the context menu of a cell or a header as well as by using the special group 'as'.
- A new debug icon for the "run" toolbar button now indicates that debug mode is active.
- Web Clean text field input in Firefox is now automatically retried if it was not successfully executed by the browser.
Version updates:
- Web The Vaadin CustomWebResolver now also supports Vaadin 24.7.
- Electron Support for Electron has been updated to Electron versions 34.5.0 and 35.1.3.
- Support for JxBrowser has been updated to JxBrowser version 8.5.1.
- The embedded device agent for iOS was updated to WDA version 9.3.3.
- Web The bundled cdp4j library has been updated to version 7.1.8.
Bugs fixed:
- Changing system variables in the QF-Test options caused a failure leading to a defect system configuration file.
- QF-Test now works around a Java bug on Windows that could cause startup of an SUT client to fail in case the path to the QF-Test agent library contained spaces.
- The dependency cleanup was not shown in the run log when executing tests via '-batch -calldaemon -stopclean'.
- Web You can now change the user agent of a browser at runtime when using QF-Driver.
- Mac In macOS, project directories can now be opened via the file selection dialog.
B.2.6 Version 9.0.1 - March 12, 2025
New features:
- The design and functionality of the HTML manual have been further improved.
Version updates:
- Web The bundled cdp4j library has been updated to version 7.1.7.
- Web Support for JxBrowser has been updated for JxBrowser version 8.4.0.
- Web The bundled GeckoDriver has been updated to version 0.36.0.
Bugs fixed:
- Web Screenshots in reports for accessibility tests are now more consistent, even if heavy scrolling is required. Also, scaling is now correctly taken into account when drawing the frames.
- Web The 'editable' check for the Select component in Vaadin now correctly returns 'false' because the only possible interaction is to choose an entry from the given list of options.
- Mac On macOS 15.3 QF-Test was sometimes not able to take screenshots, despite correct privacy settings.
-
Calling
rc.callProcedurein an SUT script could cause an exception if one of the parameters was not serializable. - Trying to open the UI Inspector while the "High contrast" UI theme was active failed with an exception.
B.2.7 Changes that can affect test execution
-
Web
After deprecation in QF-Test 8.0, support for JavaScript-only "WebResolvers" has now been removed. This does
not affect the definition or execution of "CustomWebResolvers" or resolvers implemented via the
resolversmodule. - Swing After deprecation in QF-Test 7.1, support for WebStart in Oracle Java has now been removed. This does not affect OpenWebStart which remains supported.
- With the updated HTML version of the QF-Test manual and tutorial, which now includes a fast, local full text search engine, the need for a PDF variant is gone. The PDF version is now deprecated for removal in a future QF-Test version.
-
Web QF-Test now respects the ARIA CSS attribute
aria-disabledby default. Elements with this tag are now considered disabled even if they are effectively functional. This can cause tests that used to work to run into aDisabledComponentException. However, such cases are rare and with respect to accessibility, such a state should be considered an error in the application or UI toolkit and ideally fixed.As a quick remedy, the feature can be disabled with the following SUT script:
rc.setOption(Options.OPT_WEB_IGNORE_ARIA_DISABLED, true)
B.2.8 Version 9.0.0 - February 20, 2025
New features:
-
With this version QF-Test introduces accessibility testing for web applications to ensure compliance with
WCAG and other standards. QF-Test integrates the proven axe-core library but also introduces new features
like testing the color contrast of graphical elements. A special focus is on informative HTML reports
including overview and individual screenshots for the errors that occurred. The quickstart assistant, an
example test suite and the procedures in the package
qfs.accessibility.webof the standard libraryqfs.qftmay serve as entry points. -
Variables in QF-Test are now no longer limited to strings but can be set to arbitrary objects. Object values
can be accessed in scripts using the new
rc.getObj(...)methods while $-expansion converts the values to strings during final expansion. Forwarding values - e.g.client = $(client)retains their type. Some procedures in the standard libraryqfs.qftnow return objects instead of strings and a variable of typeList<String>can now be used to define several parameters at once in a Start process node. All of these fundamental changes are fully backwards-compatible. For further information, see "Variables", "Variables" and the new Explicit object type attribute of Set variable and Return nodes or read the blog about object variables. - The HTML version of the QF-Test documentation has undergone a major overhaul. With a beautiful new layout including a sidebar for quick navigation as well as a dark mode it now also comes with a fast, local full text search engine.
-
The HTML report now also has a dark mode and improved navigation. By default, thumbnails for report
screenshots are now created with a different algorithm based on maximum width and height (see
-report-scale-thumbnails <percent>). - The visual UI inspector now has a search field for filtering the nodes in the tree display. It can now also be opened via a keyboard shortcut. Its default value Shift+Ctrl+F11 can be changed via the option Hotkey for opening the UI inspector.
- File names for included test suites can now reference environment variables or system properties via the syntax ${env:...} or ${system:...}. This also works for entries in the Directories holding test suite libraries option.
- The new option Test suites included in a new test suite can be used to specify test suites to automatically add to the Include files when creating a new test suite.
-
The new doctag
@optionsets a QF-Test option temporarily to the given value. See "Doctags for test execution" for further information. - Via the new "decrypt" variable group QF-Test can now use encrypted data wherever variable expansion is possible. To improve confidentiality QF-Test never implicitly logs variable expansion for this group.
- The new option Maximum length of logged variable values now defines a limit for the size of run log entries for variable expansion or definition.
- Steps in a run log can now be removed, e.g. to purge confidential data in screenshots or messages before passing the run log on. For transparency reasons and to retain the total number of errors, placeholders are inserted instead.
- The new option Default algorithm for image checks can be used to define a default algorithm for image checks.
-
The new package
qfs.pdf.filein the standard libraryqfs.qftcontains procedures for handling attachments in PDF files. - The specific QF-Test Docker images are now available for both x64 and arm64 architectures on Dockerhub. This enables seamless use on a wider range of devices and platforms, including modern ARM-based systems such as Apple Silicon.
- Executing a Component node no longer causes an error but instead highlights the component in the SUT, similar to the context menu action.
- The new option Show class or type of components determines what to show for a Component node in the tree - its class, the more specific type or a combination of both.
- When copying nodes from a test suite or run log the text variant in the clipboard is now more consistent and useful.
-
Web
The YAML syntax in Install CustomWebResolver nodes now makes it easier to define ancestor relations via
ancestor. Existing configurations remain valid but can be migrated to the new syntax via "Reformat". Also, it is now possible to combinecssandattributein agenericClassesmapping.
Version updates:
- The JRE distributed with QF-Test for Linux and macOS has been updated to Temurin OpenJDK version 17.0.14.
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.35 alias "2025-03".
- Jython was updated to version 2.7.4.
- Web The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 131.
- Web The Vaadin resolver has been updated for Vaadin versions from 24.6.
- Web The bundled cdp4j library has been updated to version 7.1.6.
- Web Support for JxBrowser has been updated for JxBrowser version 7.42.0 and 8.3.0.
- The embedded JUnit library was updated to version 5.11.4.
- The JSch library provided with QF-Test has been updated to version 0.2.13 and now supports rsa-sha2-256 and rsa-sha2-512.
Bugs fixed:
- The value of ${qftest:project.dir} was occasionally unavailable.
- JavaFX A JavaFX Spinner control is now mapped to the generic class Spinner and its increment and decrement buttons are now recorded as Button components.
- Mac On macOS, the target folder for a report could not be selected from the file chooser.
- On the latest Windows version QF-Test failed to reliably terminate headless Edge browser instances.
B.3 QF-Test version 8.0
B.3.1 Version 8.0.2 - December 05, 2024
New features:
- Support was added for testing applications based on Java 24.
- The JRE distributed with QF-Test for Linux and macOS has been updated to Temurin OpenJDK version 17.0.13.
- Groovy has been updated to version 4.0.24.
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.34 alias "2024-12".
- Web Support for JxBrowser has been updated for JxBrowser version 8.2.0.
- Web The bundled cdp4j library has been updated to version 7.1.5.
- Web The Vaadin resolver has been updated with improved mappings of Accordion and Calendar for Vaadin versions from 14 and corrected mapping of HierarchicalMenu for Vaadin versions from 24.4.
- Web The Smart GWT resolver has been updated for Smart GWT version 13.1p.
- iOS The embedded device agent for iOS was updated to WDA version 8.11.1.
Bugs fixed:
- Reading CSV files with a CSV data file node was broken in QF-Test versions 8.0.0 and 8.0.1: The character sequence '\t' was inadvertently treated as a TAB character.
- Clients from sub processes of the SUT could get the same name in some cases.
- Web For some special Trees the Vaadin resolver could not determine the correct indentation of nodes.
B.3.2 Version 8.0.1 - September 11, 2024
New features:
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.33 alias "2024-09".
- Web The bundled cdp4j library has been updated to version 7.1.4.
- Web Support for JxBrowser version 7.41 was added.
- iOS The embedded device agent for iOS was updated to WDA version 8.9.1.
Bugs fixed:
- Windows The JRE distributed with QF-Test for Windows has been rolled back to Temurin OpenJDK version 17.0.11 because the current Java version contains a bug that breaks virtual screen handling and can cause HeadlessExceptions.
- Importing components with an extra suite view open could cause an exception.
- Windows-Tests A UI Automation element of type SpinButton is now recorded as Button. Existing recordings remain valid.
- Mac On some macOS systems, execution of web, PDF, iOS or Android tests could become extremely slow after running for a while.
- Web If the specified browser could not be found on macOS, QF-Test showed a misleading error message.
B.3.3 Changes that can affect test execution
-
QF-Test itself now requires at least Java version 17. This is independent of the Java version for the SUT, where compatibility with Java back to version 8 is still being maintained. An SUT application based on Java Swing, JavaFX or SWT should always be started with its own, dedicated JRE and not the one from QF-Test.
Except for special cases like the need to use a plugin that requires a higher Java version, QF-Test should be run with the JRE provided during installation.
Note The JRE used for QF-Test no longer includes the JavaFX modules. The modules required for running the JavaFX demos for QF-Test are provided separately.
-
Upon startup QF-Test now ignores the environment variable
CLASSPATH. If necessary,QFTEST_CLASSPATHcan be used instead. -
Support for 32 bit software was deprecated in QF-Test 7.0 and is now removed completely with the following
exceptions:
- Testing of native 32 bit Windows applications on 64 bit Windows systems with the QF-Test Windows engine remains fully supported.
- Testing of Swing or JavaFX applications running in a 32 bit Java VM still works but is no longer officially supported.
-
Web In QF-Test versions before 8.0, the ID attribute of DOM nodes in web applications was used as the name of a component only if the ID was "unique enough" in the hierarchical context. For compatibility reasons this was maintained even after better and more efficient methods for handling non-unique names were introduced.
Web With the new variant of the option Use ID attribute as name the default is to always use ID attributes as names, irrespective of uniqueness. To maintain compatibility for tests with older components the option is set to "Only if unique" when migrating from an existing configuration.
- The separate option for the font size for the shared terminal in the QF-Test workbench has been replaced with the general option Font size (pt).
- The outdated GNU regexp library has been removed from QF-Test along with the option "Use old-style GNU regexps".
- Working without workbench view - i.e. with a separate window for each test suite - has been deprecated. The respective option has been moved from the »View« menu to the options dialog.
-
Web
The support for JavaScript-only "WebResolvers" has been deprecated.
This does not affect the definition or execution of "CustomWebResolvers"
or resolvers implemented via the
resolversmodule. - Web The timeout for most requests in CDP-Driver connection mode has been reduced from 10 to 3 seconds for alignment with WebDriver connection mode.
B.3.4 Version 8.0.0 - August 8, 2024
New features:
- iOS The new iOS engine adds support for testing iOS applications in a simulator running on macOS or a real device connected to a macOS system. See "iOS application testing" for further information.
- JavaFX Support for JPro was greatly improved and updated to the current JPro version 2024.3. JPro brings JavaFX applications into the browser and QF-Test can simultaneously interact with both technologies in a way that ensures that tests written for JavaFX can run almost identically against JPro and the browser. See "Webswing and JPro: Java desktop application testing in a browser" for an explanation of the concepts and the demo test suite for JPro, accessible via the menu »Help«-»Explore sample test suites...«, entry "JPro JavaFX CarConfig Suite".
- The new UI theme "Solarized" is a standard theme based on the concept of using the same well-balanced foreground colors in dark and light mode that many people find pleasing. It can be activated via the menu »View«-»UI theme«.
- QF-Test now includes its own assertion library for scripting, inspired by Chai.js.
- The new JSON module simplifies handling of JSON objects in Groovy and Jython scripts as well as serialization to QF-Test variables.
- Mac QF-Test now runs as a native ARM process on macOS systems with Apple Silicon processors, leading to significant performance improvements.
- The JRE distributed with QF-Test has been updated to Temurin OpenJDK version 17.0.12.
- Web The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 126.
- Support for Webswing has been updated for the current Webswing version 24.1.
- Web Support for JxBrowser has been updated for JxBrowser version 7.40 as well as for the upcoming version 8.
- Groovy has been updated to version 4.0.22.
- Web The bundled cdp4j library has been updated to version 7.1.3.
- Web The bundled GeckoDriver has been updated to version 0.35.0.
-
Electron
QF-Test now supports the new object type
BaseWindowof Electron version 30. - The embedded WebP image compression library has been updated to version 1.4.0.
- The embedded Apache Commons IO library has been updated to version 2.16.1 and Apache Commons CSV to 1.11.0.
- Web The option Use ID attribute as name now has a third value. The new default is to always use ID attributes as names, irrespective of uniqueness. Where backwards compatibility is required, use the former default setting "Only if unique". See Changes that can affect test execution for further information.
- Web Generic class mappings in the Install CustomWebResolver step can now map multiple alternative HTML tag names and CSS classes in a single mapping.
-
Web
Mapping a suitable component to the new generic class
ModalOverlayprevents QF-Test from bypassing the modal overlay and executing mouse events on elements covered by it. -
Web
The new interface
TreeIndentationResolvercan be implemented to assist QF-Test in determining the structure of tree nodes in a web application. See "The TreeIndentationResolver Interface" for details. - The layout of the HTML report is now better suited for smaller screens and printing.
-
The new command line argument
-nopluginscan be used to temporarily suppress the use of plugins in order to find out whether a given problem might be caused by a plugin. - The menu has been reorganized with recent files move to a sub menu and default bookmarks added for important library and sample suites.
Bugs fixed:
- The sort order of attributes in the XML files for test suites and run logs is now independent of the system locale.
-
When intercepting the IO streams
System.outandSystem.errof the SUT QF-Test now takes extra care not to interfere with their implicit encoding. - Android The apk file required by QF-Test for interacting with the accessibility interface on Android devices has been updated and signed for compatibility with newer Android versions.
-
Web
The default installation of Firefox on Linux no longer accepts profile directories located outside
of the
~/.mozilladirectory. QF-Test now detects and works around that situation by creating a dedicated Firefox testing profile directory in~/.mozillainstead of the in QF-Test user directory. - Web On Windows systems headless browsers are now always started unscaled, independent of the scaling factor of the current desktop session.
- Electron The emulated web File System API for Electron applications can now read and write multiple files in parallel.
- Mac In some special cases QF-Test might have blocked on macOS systems when trying to bring one of its application windows to the front.
-
The procedure
qfs.autowin.acrobat.saveAsTextin the standard libraryqfs.qftnow also works for the English Acrobat Reader version 24.512 and up. - The QF-Test Gradle plugin now correctly forwards the "license" property to QF-Test.
B.4 QF-Test version 7.1
B.4.1 Version 7.1.5 - July 16, 2024
New features:
- SWT The visual UI Inspector is now also available for Eclipse/SWT applications and thus for all QF-Test UI engines.
- Web The bundled cdp4j library was updated to version 7.1.2.
- Web The search engine selection dialog in Chrome is suppressed.
Bugs fixed:
- Using an item as scope could lead to false positive component resolution if the target element didn't exist inside the scope.
- Web Components inside a FRAME in a second browser window were not detected reliably.
B.4.2 Version 7.1.4 - June 12, 2024
New features:
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.32 alias "2024-06".
- Web Support for JxBrowser version 7.37, 7.38 and 7.39 was added.
Bugs fixed:
- When running the Windows installer in silent mode, older QF-Test versions are no longer uninstalled.
-
Saving PDF files via the procedure
qfs.autowin.acrobat.savePDFwas not possible when the Acrobat option "show online storage when saving files" was deactivated. - When creating testdoc documentation with the option for test steps deactivated, teststeps are now also removed from the XML variant, not just the HTML version.
- Web Webdrivers for newer versions of Microsoft Edge are now downloaded automatically again.
- Web Automatic scrolling in web applications has been improved for special cases, where intermediate ancestors in the component hierarchy are invisible.
- Web In web applications with multiple documents the QF-Test UI inspector sometimes failed to retrieve the detail information for a node.
- In some cases importing node.js modules in JavaScript scripts didn't work.
B.4.3 Version 7.1.3 - April 24, 2024
New features:
- Support was added for testing applications based on Java 23.
- The JRE distributed with QF-Test has been updated to Temurin OpenJDK version 17.0.11.
- Groovy was updated to version 4.0.21.
- The bundled cdp4j library was updated to version 7.1.1.
- JavaFX The visual UI Inspector is now also available for JavaFX applications and has received a few minor improvements for all supported engines.
- The special variable group "qftest" now provides additional values for client properties (see "Special groups").
- Web When starting Chrome from QF-Test, its new privacy banner is now disabled by default.
Bugs fixed:
- When increasing the value of the option Font size (pt), attributes like Condition in If-nodes were not displayed correctly.
- The @noreport doctag now also works with Procedure call nodes.
-
The skipped test counter was incorrect when a Test case with a forced dependency cleanup was exited
from a script with
skipTestCase. -
Web
Injecting a JavaScript function via the deprecated procedure
updateCustomWebResolverPropertiesin the standard libraryqfs.qftwas broken in Firefox.
B.4.4 Version 7.1.2 - March 14, 2024
New features:
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.31 alias "2024-03".
- Electron Improved detection of new windows in Electron applications.
- For improved clarity the interactive terminal windows for the various script languages in QF-Test and the SUT are now labelled as consoles.
Bugs fixed:
- The recording button in the toolbar is now correctly displayed when changing the toolbar icon size.
B.4.5 Version 7.1.1 - February 27, 2024
The only change to this version is the removal of three executable files from the embedded cdp4j library that were suddenly flagged as malicious by various scanners. Those files were part of QF-Test since version 6.0.4 (November 2022), have never been used by QF-Test and should be harmless. Further information will be provided when we know more.
B.4.6 Changes that can affect test execution
- Support for WebStart in Oracle Java 8 is now deprecated and has been marked for removal in a future QF-Test version. This does not affect OpenWebStart.
- Support for applets has been removed from QF-Test. Internet Explorer was the last browser to support applets and support for Internet Explorer was deprecated in QF-Test version 6.0 and removed in QF-Test version 7.0.
- The start of QF-Test with a JRE other than the bundled one, especially with Java 8, is now deprecated. This has no impact on the java versions supported for the SUT.
-
The embedded cdp4j library was updated to version 7. This implies a namespace change of the cdp4j classes from
io.webfolder.cdptocom.cdp4j. If such classes are directly referenced in SUT scripts, the imports have to be adapted accordingly.
CustomWebResolver
After replacing the hard-to-digest qfs.web.ajax.installCustomWebResolver call with the
Install CustomWebResolver node in QF-Test 7.0 the underlying code has now been further optimized and cleansed.
In some cases, adjustments may be required. Please contact our support team if you need any help with
this. Specifically, the following points are affected:
- Web The evaluation order of the CustomWebResolver categories "genericClasses" and "redirectClasses" is now well-defined: The first match wins, based primarily on the order of entries in the Install CustomWebResolver node (see "The Install CustomWebResolver node" for details). For existing CWR configurations it is possible that entries apply that were not taken into account before.
- Web The Install CustomWebResolver step no longer supports the outdated categories "indirectFeatureClasses", "insertClassesFront", "textRedirectInFetch" and "goodClasses" as well as any previously deprecated categories including "ieHardClasses" and "ieSemiHardClasses".
B.4.7 Version 7.1.0 - February 20, 2024
New features:
- QF-Test now also provides a high contrast theme in light and dark mode.
- The visualization of steps in the trees for test suites and run logs has been freshened to a more condensed style that is highly configurable. See Display for the various new options.
- Support was added for testing applications based on Java 22.
- Web Web applications built with modern Vaadin frameworks (from 14 on) are now supported out of the box. Also included is support to enable basic testability for Flutter-Web-based applications as well as generic component recognition for web applications implementing the WCAG ARIA guidelines for accessibility.
- Swing The visual UI Inspector is now also available for Windows and Swing/AWT applications, as well as web views embedded in Java applications (see "UI Inspector").
- The UI inspector now provides an easy way to copy a suggested SmartID.
- Conditions in If and other nodes can now be implemented in any scripting language, not just Jython. The default scripting language for new nodes can be defined in the option Default script language for conditions.
- The steps Error, Warning and Message can now optionally print the message to the QF-Test terminal.
- Empty arguments in steps starting an SUT client are now ignored by default (see option Ignore empty argument lines when starting a client for details).
- Windows The Windows installer for QF-Test now directly supports uninstalling older QF-Test versions.
- The JRE distributed with QF-Test has been updated to Temurin OpenJDK version 17.0.10.
- Groovy was updated to version 4.0.18.
- Web The embedded Chrome browser used for QF-Driver mode was updated to CEF version 120.
- Web The embedded cdp4j library was updated to version 7.0.1. This also updates the Chrome Devtools Protocol API to r1245094.
- Web The bundled GeckoDriver was updated to version 0.34.0.
- The various CarConfigurator applications used for demos and trainings have been filled with new data and updated to a new look. The demo test suites for these applications now contain further examples of SmartID usage.
- Web Added newer mobile devices specifications to mobile emulation mode.
- Web The attribute Method in the Server HTTP request node now also supports variable values and the new attribute Additional headers can be used to define additional headers on a textual basis which is easier to address at script level than the Headers table.
-
The new package
qfs.utils.jsonin the standard libraryqfs.qftprovides utility procedures for comparing JSON files. -
The mail handling procedures in the package
qfs.utils.email.pop3of the standard libraryqfs.qftnow support SSL encrypted connections. -
Android
With the new package
qfs.autoscreen.androidit is now possible to create image based tests for Android applications. - The recording button in the toolbar now indicates whether SmartID recording is active.
-
The new class
ImageRepDraweradds support for simple drawing operations onImageRepobjects at script level (see "The ImageRepDrawer class"). - Web The flexibility of the CustomWebResolver configuration has been improved in the categories "redirectClasses", "abstractCoordinatesClasses", "ignoreTags", and "browserHardClickClasses", for example it is now more often possible to use regular expressions in the definitions.
-
Web
Calls to the procedure
qfs.web.ajax.updateCustomWebResolverPropertiescan now also be converted into Install CustomWebResolver nodes. -
Web
It is now possible to use a procedure with an
installCustomWebResolvercall as "base" of an Install CustomWebResolver step configuration. -
Web
The QF-Test pseudo DOM API was extended by the
callJSmethod to execute JavaScript code in the web document context without implicitly callingwindow.eval().
Bugs fixed:
- When replaying events the timeout values from the two options Wait for non-existent component (ms) and Wait for non-existent item (ms) are now taken into account individually and not just as a simple summation.
-
It is now possible to use a 'QF-Test component ID' as String parameter for the
ImageWrapper.grabImagemethod. - After a tabulator character was pasted into a script editor field, moving the cursor could lead to an exception.
- JavaFX A modal JavaFX window is now recorded with class name 'Dialog'.
- Web It is now possible to send MOVED and SIZED events to the HTML component of a web page (using the Component event step) to define the position and size of the inner browser area.
- Web In component recording mode for web applications QF-Test now ignores invisible DOM nodes. The old behaviour can be restored via rc.setOption(Options.OPT_WEB_RECORD_INVISIBLE_ELEMENTS, true).
- Web In some cases automatic Chromedriver download failed due to Chrome printing an unexpected error message during version detection.
- Web Regular expressions in the CustomWebResolver category "ignoreTags" are now correctly parsed.
- Web Elements with CSS class "visually-hidden" are now treated as invisible components in QF-Test.
- Web In some special cases QF-Test could not connect to the Edge browser upon start.
- Web CSS styling informationen contained in STYLE tags could mistakenly get interpreted as text content.
B.5 QF-Test version 7.0
B.5.1 Version 7.0.8 - December 5, 2023
New features:
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.30 alias "2023-12".
- Web Support for JxBrowser version 7.36 was added.
Bugs fixed:
- Report nodes created with an empty @teststep doctag are now shown with expanded variable values.
- Mac On macOS QF-Test was sometimes freezing during startup in case the WebP image compression library was not available.
- Web In electron applications, popup menu item clicks could not be replayed unless a pulldown menu item was clicked beforehand.
- Web The Microsoft Edge browser crashed when a new empty tab was opened manually.
- Android The SUT client for android did not terminate automatically after closing the emulator if the recording window was open at that time.
B.5.2 Version 7.0.7 - October 11, 2023
New features:
- Web The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 117 which fixes the WebP security vulnerability.
- Web The embedded websocket library was updated to Undertow 2.2.26.
-
The script method
rc.overrideElementnow also supports overriding nested SmartIDs. It is now complemented by the new methodrc.getOverrideElement. See "Override components" and "The rc module: Run context API" for details.
Bugs fixed:
- Test reports created in batch mode with QF-Test versions from 7.0.4 to 7.0.6 could show broken HTML when opened by navigating from the summary to a detail report.
B.5.3 Version 7.0.6 - September 29, 2023
Bugs fixed:
- The embedded WebP library used for image compression in testsuites and run logs was updated to version 1.3.2. In this version a severe security vulnerability (CVE-2023-4863) was fixed.
B.5.4 Version 7.0.5 - September 20, 2023
New features:
-
The procedures
qfs.autowin.acrobat.savePDFandqfs.autowin.acrobat.saveAsTextin the standard libraryqfs.qftwere updated for Acrobat Reader versions 23 and higher. - Web Support for JxBrowser version 7.35 was added.
- Web QF-Test now supports capture and replay of clicks on popup menus in Electron applications.
Bugs fixed:
-
Interactive QF-Test failed to start if a plugin contained an incompatible version of
org.w3c.css.sachelper classes. - Web QF-Test now uses the new headless Chrome mode also on Linux. Without that headless Chrome version 117 and higher failed to start.
B.5.5 Version 7.0.4 - August 30, 2023
New features:
- The JRE distributed with QF-Test has been updated to Temurin OpenJDK version 17.0.8.1_1.
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.29 alias "2023-09".
- Web Support for JxBrowser version 7.34 was added.
- Mac On Apple Silicon devices, browsers connected via CDP-Driver are now launched with native ARM support, noticeably improving performance.
- Most toolbar buttons now have a "What's this?" entry in their context menu, leading to the respective documentation in the manual.
Bugs fixed:
-
The
jackson.jarlibrary for YAML and JSON parsing no longer creates conflicts if another Jackson library is added to the QF-Test plugin directory. - Highlighting the scope component via the context menu of the node or the @scope doctag now works correctly again.
- Web Automatic download of ChromeDriver and WebDriver binaries for Google Chrome and Microsoft Edge now works again. In both cases the respective URL and/or site layout changed.
- Electron When starting an Electron application, QF-Test occasionally waited for the full timeout even if the connection could be established quickly.
B.5.6 Version 7.0.3 - Juli 13, 2023
Bugs fixed:
- In rare cases a test run was aborted with an exception when QF-Test tried to save a split run log and encountered an incorrectly created empty screenshot.
-
Recognition of components via the old qfs:label algorithm could fail in special cases where
an
ExtraFeatureResolverwas registered. - Variables in doctags of Execute shell command nodes are now expanded correctly.
-
Swing
In rare cases addressing a line as a sub item in a
JTextAreacould cause aNullPointerException. -
Web
When replaying a Fetch geometry node on a non-existing sub item in a web application, the geometry of
the parent component was mistakenly returned. Now the correct
IndexNotFoundExceptionis thrown instead. -
Android
The procedure
qfs.android.adbUtils.appPackage.getCurrentPackagein the standard libraryqfs.qftnow also works on Android devices that don't provide agrepprogram.
B.5.7 Version 7.0.2 - June 22, 2023
New features:
- Support for JxBrowser version 7.33 was added.
Bugs fixed:
- When starting QF-Test version 7.0.1 to only show a run log and later opening a test suite the previous session was not restored.
- On Windows with a scaled monitor the PDF client now displays a scaled document with frames and check highlights correctly aligned. Image checks are created at 100% resolution and thus should remain compatible with image checks from a non-scaled monitor.
- Web The installation of a CustomWebResolver lead to an exception in case it contained erroneous JavaScript commands. Now an error is logged instead.
- Web The Install CustomWebResolver node failed if some jar file in the plugin folder provided a conflicting Jackson library.
B.5.8 Version 7.0.1 - May 31, 2023
New features:
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.28 alias "2023-06".
- Mac Support for testing clients running with an ARM Java on macOS was added.
- Web Support for JxBrowser version 7.32 was added.
- Startup of QF-Test is now noticeably faster, in interactive mode as well as batch mode.
-
The new special variable
${qftest:suite.name}expands to the name of the test suite as defined in the root node. - Web New CWR node mappings and categories are now inserted at the cursor position instead of at the very end.
- When using compact run logs (see option Create compact run log) it is now possible to exclude nodes from compactification via the doctag @dontcompactify (see "Doctags").
Bugs fixed:
- QF-Test now starts with the system property -Dsun.io.useCanonCaches=true to enable canonical filename caches for Java version 17 in order to avoid performance degradation caused by large projects on slow file systems. This restores the behavior of previous Java versions.
- Some procedures in the standard library failed when called with a SmartID due to use of ${qftest:engine.$(id)}. SmartIDs that don't include an explicit GUI engine now use the GUI engine "default".
- Entries in configuration files were no longer sorted if QF-Test was running with Java 17.
- Web Occasionally check mode remained activated in a Browser even after stopping recording, thus blocking further interaction.
- Web If a website was used as scope for a SmartID, the scope was not updated correctly when navigating.
- Web Deleting a file via the File System Access API could throw an exception in special cases.
- Web Duplicated categories in a CWR configuration are no longer ignored and trigger an error instead.
- Swing Screenshots of Swing windows are now taken with higher quality.
- On Windows with a scaled monitor the PDF client now displays a scaled document with frames and check highlights correctly aligned. Image checks are created at 100% resolution and thus should remain compatible with image checks from a non-scaled monitor.
B.5.9 Changes that can affect test execution
New Java version for QF-Test
QF-Test is now distributed with Java 17 as its own JRE. Running QF-Test with Java 8 is deprecated, meaning it is still supported for QF-Test version 7.0 but may get removed at some later point.
This change can affect Java application tests which rely on using QF-Test's Java version instead of explicitly specifying a Java binary for starting the SUT. If you run into problems due to this you have two options:
Short-term workaround: You can switch back to Java 8 via the QF-Test Java configuration or the command line.
Long-term solution: The preferred solution is to explicitly specify a dedicated Java version matching the application's requirements in the Start Java SUT client node or, better yet, use a Start SUT client node to launch the application via a script or executable that ensures the correct environment including the Java version.
New algorithm for determining associated labels
Note
In most cases label resolution should continue to work out of the box. The most notable exceptions are
ExtraFeatureResolvers working with the qfs:label ExtraFeature. These will need to
be updated as described in "The ExtraFeatureResolver Interface". For help with updates or for means to
disable the new algorithm entirely, please get in touch with our support team.
The algorithm for determining the associated label for a component has been rewritten from scratch for better performance, clarity and increased flexibility. The new qfs:label* variants like qfs:labelLeft or qfs:labelText can be used to designate specific label variants, with qfs:labelBest as the new counterpart for the legacy extra feature qfs:label. Please see "qfs:label* variants" for detailed information about the many new options.
In order to maximize backwards compatibility, the legacy algorithm is still maintained and used to resolve
the qfs:label extra feature so tests based on recorded Component nodes should not be
negatively affected. If desired, recording can be switched to the legacy algorithm and
qfs:label via the option Recording of qfs:label* variants.
For replay with SmartIDs the situation is slightly different. Without explicit qualifier or with the qualifier "label=" or "qlabel=", SmartIDs are resolved based on the new algorithm with qfs:labelBest. In most cases this should work as before. In case it fails you can either re-record the affected SmartID or change its qualifier to "qfs:label=" to enforce using the old algorithm.
Further breaking changes:
-
Web
Support for Internet Explorer was deprecated in QF-Test version 6.0 and has now been removed, as it has
reached End of Life. The IE-specific procedures
qfs.web.browser.settings.enableCompatibilityModeandqfs.web.browser.general.isIE6were removed from the standard libraryqfs.qft. - Web Support for Firefox version 43 and older using connection mode QF-Driver was deprecated in QF-Test version 6.0 and has now been removed.
- Support for 32bit software is now deprecated for removal in a future QF-Test version. This applies to the Java versions QF-Test runs on as well as all supported SUT versions. In case you still need to support tests for specific 32bit applications, please get in touch with our support team.
-
The format of HTTP headers returned by the Server HTTP request node was updated for easier parsing.
Examples are provided in the procedures
checkHttpResponseHeaderandgetHeaderValuein the web services demo suite, accessible via the menu item »Help«-»Explore sample test suites...«. -
For faster startup IPv6 is now disabled in QF-Test, where it is not needed. This has no impact on the SUT and
in case IPv6 is required for a QF-Test plugin it can be reactivated via the command line argument
-ipv6. -
When resolving a nested or scoped SmartID the already resolved parent or scope component was wrongly
taken into account again, so that e.g.
#Panel:Some title@#Panel:<0>would target the Panel "Some title" instead of its first child Panel. - Options like SmartID recording that have an effect in both QF-Test and the SUT can now be set in a Server script node and will get automatically forwarded to all SUT clients.
B.5.10 Version 7.0.0 - April 27, 2023
New features:
- The new dark mode is just the most visible aspect of the streamlined UI with slightly larger fonts and icons and more spacing in general. See menu »View«-»UI Theme« and option Font size (pt).
- The development of SmartIDs has left the preview stage. Based on the reimplementation of the algorithm for finding the associated or nearest label of a component, they combine simplicity with precise and efficient component recognition in many situations. The new qfs:label* variants also apply to classic Component nodes. For detailed information please see "SmartID" and "qfs:label* variants" as well as the various options described in "SmartID und qfs:label".
-
Web
The new Install CustomWebResolver node for implementing a CustomWebResolver for web applications replaces the
rather cryptic Procedure call to
qfs.web.ajax.installCustomWebResolver. Existing calls will of course continue to work, but can also easily be transformed into the new node via the context menu item »Transform node into« as described in "The Install CustomWebResolver node". - Web There is now a visual UI Inspector for web and Android applications (see "UI Inspector").
- With the help of the new nodes Error, Warning and Message it is now possible to directly log errors, warnings or plain messages anywhere in the test suite with the added bonus of configurable screenshots and diagnostic logs.
- QF-Test based tests can now easily be integrated into JUnit 5 tests. This simplifies the execution of QF-Test based tests from an IDE like IntelliJ or Eclipse. Also, a Gradle plugin is now available for including QF-Test based tests in build pipelines controlled by Gradle. See "JUnit 5 Jupiter" for details.
- The XML format for saving test suites is now configurable. For example, new test suites are now saved with UTF-8 encoding by default and with longer lines. Existing suites are not changed by default, but can be converted in one go. The new format can still be read by older QF-Test versions. Further information is provided in "Saving test suites" and "Call syntax".
- XML reports are now saved with UTF-8 encoding by default.
- Support was added for testing applications based on Java 21.
- Groovy was updated to version 4.0.11.
- Web The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 108.
- Web Support for JxBrowser version 7.31 was added.
- The embedded JUnit library was updated to version 5.9.2.
- Web Support was added for the web framework Fluent UI React version 8.
- Web QF-Test now supports accessing local files from tested web applications using the File System Access API in WebDriver and CDP-Driver connection mode so that capture and replay for this use case should now work out-of-the-box.
- Web Pseudo attributes can be used to simplify resolvers using JavaScript to retrieve values from a browser. In certain cases they can improve performance. For a closer look see Web – Pseudo Attributes.
- QF-Test now provides readily accessible templates for frequently used scripts like resolvers via the Templates popup in Server script, SUT script and Unit test nodes. It is also possible to define additional templates that show up in the list.
- Via the new option Show step types for named tree nodes it is possible to hide redundant parts of the tree node descriptions in test suites and run logs.
- Clicking on a line number in a script step now selects the whole line.
- If the new option Automatically open created nodes is activated, new nodes are already expanded after insertion.
- The name of the result variable of a Procedure call node is now shown in the tree. The result of the call can also be displayed in the run log after the name of the procedure by activating the new option Show return values of procedures.
- The buttons in the QF-Test toolbar can now be rearranged by dragging with the mouse. The original layout can be restored via the menu »View«-»Toolbar«.
-
The new special variable
${qftest:language}expands to the current language of the QF-Test user interface. -
The new special variable
${qftest:project.dir}expands to the directory of the project to which the current test suite belongs. - Tree items in the SUT can now be addressed by a combination of numerical, textual and regular expression indices.
- A Data driver node below a Test step node can now be packed into a nested Test step.
- A Comment node can now be inserted above the currently selected node via the »Insert« menu or the keystroke Shift+Ctrl+7.
- If a Wait for client to connect node is used to wait for a dedicated engine, that engine is now displayed in the tree.
- Mac The QF-Test application icon for macOS was adapted to modern standards.
- Web Many new mobile device specifications were added for mobile emulation mode.
Bugs fixed:
-
An exception was thrown in the procedure
qfs.utils.xml.compareXMLFilesif one of the two files was empty. -
Jython scripts that rely on the system property
python.security.respectJavaAccessibility=falsefor accessing private class members now also work with Java 9 and higher. - Web Check and component recording could not be properly activated in parallel in web tests with CDP-Driver or WebDriver connection mode.
- Web Running a mobile emulation test with CDP-Driver connection mode was updated for newer Chrome versions.
-
Web
In special cases the execution speed of tests for web applications can be noticeably improved via
MainTextResolverorWholeTextResolversvariants without default parameter. -
Web
In rare cases, use of the @:: syntax in the
genericClassesparameter of the procedureqfs.web.ajax.installCustomWebResolvercould lead to a CSS class being inadvertently mapped to the class of the node. - Android Text input has been improved for Android devices with API level 33 and higher.
B.6 QF-Test version 6.0
B.6.1 Version 6.0.5 - March 15, 2023
New features:
- Support was added for testing applications based on Java 20.
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.27 alias "2023-03".
- The JRE distributed with QF-Test has been updated to Zulu OpenJDK Version 8_362.
- Groovy was updated to version 4.0.10.
- The embedded JUnit library was updated to version 5.9.2.
- Web QF-Test now uses the "new headless mode" of Chromium-based browsers.
- Web Support for JxBrowser versions 7.29 and 7.30 was added.
- Web The bundled GeckoDriver was updated to version 0.32.2.
-
Web
QF-Test can now also intercept starting an external browser via
Desktop.open().
Bugs fixed:
-
Jython now also works with Java 9 or higher if the system property
python.security.respectJavaAccessibilityis set tofalsein order to directly access private class members. -
The SAX variant of the procedure
qfs.utils.xml.compareXMLFilesin the standard libraryqfs.qftnow ignores leading and trailing whitespace in thenoCheckparameter. - Web When using the WebDriver connection mode, alert dialogs originating from IFRAMEs might not have been displayed.
- Web With CDP-Driver connection mode on Windows QF-Test did not switch browser tabs correctly before replaying a hard mouse event. Also, empty tabs from downloads could remain open.
- Electron It is now possible to set the working directory for the start of an Electron application.
-
The module
qfis now also available in JUnit Groovy Scripts.
B.6.2 Version 6.0.4 - November 29, 2022
New features:
- The JRE distributed with QF-Test has been updated to Zulu OpenJDK Version 8_352.
- For the SUT QF-Test now also supports the Semeru OpenJDK from IBM.
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.26 alias "2022-12".
- The QF-Test manual now references the official QF-Test docker images in "Usage of QF-Test in Docker Environments".
-
With the new methods
rc.pushOptionandrc.popOptionit is now possible to temporarily override an option without disturbing existing settings. Procedures in theqfs.qftstandard library now use these methods instead of the less suitedsetOption/unsetOption. - When recording SmartIDs (see "SmartID") the option Always record class for SmartID now determines whether the class is always prepended. It is active by default. Besides readability this can have a significant impact on replay performance.
- The embedded JUnit library was updated to version 5.9.1.
- Web The bundled cdp4j library was updated to version 6.2.0.
- Web Support for JxBrowser version 7.28 was added.
- Web The bundled GeckoDriver was updated to version 0.32.0.
- Web The CustomWebResolver for Angular Material has been updated for the latest release of the framework.
- Web In web tests with CDP-Driver connection mode it is now possible to control the print dialog with QF-Test.
- Web The selection event of type "reload" can now be used as an alias for "refresh" to reload the displayed web page.
-
Electron
The procedures in the package
qfs.web.browser.externalof the standard libraryqfs.qft, which can be used to intercept the start of an external browser process from the SUT and redirect it to QF-Test, now also work with Electron applications.
Bugs fixed:
- Web The automated mapping of Tables and TreeTables in the web resolver for Primefaces was updated to support Primefaces version 12.0.
- Web Chrome with QF-Driver connection mode could crash in special cases after a failed navigation.
- Android In rare cases special characters in the text of Android components could terminate the connection to an Android device.
B.6.3 Version 6.0.3 - September 6, 2022
New features:
- The JRE distributed with QF-Test has been updated to Zulu OpenJDK version 8_345.
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.25 alias "2022-09".
- Web Support for JxBrowser version 7.27 was added.
-
The methods
getFirstChild,getNextSibling,getPreviousSibling,getFirstElementChild,getNextElementSiblingandgetPreviousElementSiblingwere added to the QF-Test pseudo DOM API. See "The abstract Node class" for details.
Bugs fixed:
- Web When performing an upload with CDP-Driver connection mode, a TestException is now thrown in case the specified file does not exist.
- Web In rare cases the information about sub-items was lost when recording a mouse click in a web application.
- Web In some cases a browser window was mistakenly closed in case of a WebDriver timeout triggered for a different frame.
- Web Overlays in web applications driven by the Angular framework might not have been recognized correctly.
- SWT For SWT applications on Linux, replaying a selection on a ToolItem in a vertical ToolBar could trigger the wrong item.
B.6.4 Version 6.0.2 - July 20, 2022
New features:
-
Clean shutdown of running QF-Test instances - especially in batch mode - has been greatly improved. With the
new command line arguments
-allow-shutdown [<shutdown ID>]and-shutdown <ID>it is now possible to target individual QF-Test processes based on their process ID or a previously specified shutdown ID. The former command line arguments-allowkillingand-kill-kunning-instancesstill work but are now deprecated. -
The command line argument
-clearglobalsnow also works for calldaemon mode (see "Controlling a daemon from QF-Test's command line"). To that end theDaemonRunContextAPI has two new methods,setGlobalsandclearGlobals(see "Daemon API"). - Web Support for JxBrowser version 7.26 was added.
-
The faster variant of the procedure
qfs.utils.xml.compareXMLFilesin the standard libraryqfs.qftnow also supports sorting. - For SmartIDs the prefix of special features like "Tab: some tab" or "Label: some label" is now optional. See "SmartID" for details about SmartID syntax.
Bugs fixed:
- When logging screenshots of individual windows, QF-Test mistakenly also used to create images for embedded windows from different GUI engines.
- When editing options, assigning duplicate hot keys is no longer allowed.
-
Web
The pseudo DOM method
DomNode.getElementsByTagNamenow also returns slotted elements. - Web Text from slotted elements was not taken into account when determining the feature of web components.
- Web In direct download mode existing files are no longer overwritten by default but saved with a unique name.
- SWT Replay of TAB keystrokes is now significantly faster for SWT on Windows.
B.6.5 Version 6.0.1 - June 9, 2022
New features:
- SWT QF-Test now supports tests for applications based on Eclipse/SWT 4.24 alias "2022-06".
-
There is a new variable group to conveniently escape special characters in SmartIDs.
${quotesmartid:...}deals with the item syntax characters '@', '&' and '%' as well as the SmartID special characters ':', '=', '<' and '>'.
Bugs fixed:
- Android Replay of text input for android applications has been improved.
- Web In web applications a GenericClassNameResolver registered on "DOM_NODE" was not called correctly.
- SWT Replaying text input as single events for SWT applications running on Ubuntu 22 could lead to garbled text with the order of some characters changed. QF-Test now replays these events with improved synchronisation.
B.6.6 Changes that can affect test execution
- Web Support for testing Firefox using QF-Driver connection mode, which is limited to Firefox versions 43 and lower, has been deprecated for removal in a future QF-Test version. Please consider using current Firefox versions with WebDriver connection mode instead.
- Web Support for testing Internet Explorer, which has officially reached end-of-life, has been deprecated for removal in a future QF-Test version.
- Web Support for testing Opera using WebDriver connection mode has been deprecated for removal in a future QF-Test version. Please use CDP-Driver connection mode instead.
- Web When testing web applications in CDP-Driver or WebDriver connection mode, slottable nodes are no longer referenced as direct children of the WebComponent node, but as children of their assigned slot node. This is unlikely to break existing tests, but if it does, please contact QFS support.
-
Swing
The way QF-Test internally addresses table columns in a Swing JTable was changed from model-based to
view-based. This has no effect if table columns or cells are addressed with a textual index @... or %...
or if the order of the columns in the table view and model is identical. In case a test based on numeric
column indexes &... fails you can either update the column index or restore the previous functionality
with an SUT script of the form
rc.setOption(Options.OPT_SWING_TABLE_USE_VIEW_COLUMN, false). -
Windows-Tests
The internal API of the UI automation library has been reworked to simplify class names
(e.g. "AutomationWindow" became "Window"). If you use the
uiautomodule directly in your scripts and reference class names directly, you may need to adapt the class names according to the supplied JavaDoc.
B.6.7 Version 6.0.0 - May 17, 2022
New features:
- The new Android engine adds support for testing Android applications in an emulator or a real device. See "Android application testing" for further information.
-
Though the embedded JRE of QF-Test is still version 8 - currently at relase 8_332 - QF-Test can now also be
started with Java 17 (see command line argument
-java <executable>(deprecated)). This provides crisp display on scaled monitors and enables support for plugins that require newer Java versions. - Support was added for testing applications based on Java 19.
- In order to reduce the chances of creating screenshots showing sensitive data during a test run QF-Test now takes screenshots only from relevant monitors that show a window that belongs to QF-Test or a connected SUT. While this default setting is useful for personal workstations it may be preferable to turn it off for dedicated test systems via the new option Limit screenshots to relevant screens.
- The HTML report has undergone a major overhaul. Readability is improved thanks to many subtle details with a more pleasant design and screenshots and error messages are shown as an overlay when clicked, including navigation between screenshots.
- Report creation can now also be triggered via a new toolbar button in the run log window.
-
In reports, the name of a test suite, which can be specified in the Name attribute of the root node,
is now used in place of the file name of the test suite. This can be configured in the report creation
dialog or in batch mode via the new command line argument
-report-include-suitename. - Display of duration indicators for a better understanding of the run-time behaviour of a test run can be turned on for run logs via a new toolbar button and the »View« menu. See "Run-time behavior" and the options Show relative duration indicators and Duration indicator kind for further information.
- Activating the new option Create screenshots for warnings causes screenshot creation for warnings in the run log in addition to those for errors and exceptions.
- It is now possible to link nodes in a test suite to external resources or documents via the @link doctag. Via a right-click the target can then be opened in a browser or the application associate with the file type. See Doctags for reporting and documentation for further information.
- Groovy was updated to version 4.
-
The new parameters
warningDelayanderrorDelayin the procedureqfs.utils.logMemoryin the standard libraryqfs.qftare used to introduce a short delay in case thewarningLimitorerrorLimitare exceeded, followed by an additional garbage collection and another check. -
The performance and memory consumption of the qfs.qft procedure
qfs.utils.xml.compareXMLFileshave been improved. - Web Display and responsiveness of the highlights in check mode were significantly improved for CDP-Driver and WebDriver connection mode.
- Web The handling of WebComponents using ShadowDOMs and slots has been improved for testing web application in CDP-Driver or WebDriver connection mode (QF-Driver support is still pending): The shadow root node is now accessible as the only child of its host node and slotted nodes are referenced as children of their assigned slot node.
- Web Text retrieval with CDP-Driver connection mode has been greatly improved and the DOM hierarchy is now consistent with other connection modes.
- Web Performance of image checks in headless browsers has been improved.
- Web QF-Test now supports multiple parallel downloads in web-tests with CDP-Driver connection mode.
-
Web
The new procedure
qfs.web.browser.settings.setDirectDownloadin the standard libraryqfs.qftallows to download files directly into the directory provided, suppressing the download dialog. Currently for CDP-Driver connection mode only. - Web The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 100.
- Web Support for JxBrowser versions 7.23 and 7.24 was added.
- Web The bundled cdp4j library has been updated to version 5.5.0.
- Web The bundled GeckoDriver was updated to version 0.31.0.
-
Web
The method
FrameNode.getFrameElement()was added to the pseudo-DOM API of QF-Test. -
Web
Via the parameter
consoleOutputValuein the proceduresqfs.web.browser.settings.doStartupSettingsandqfs.web.browser.settings.setTerminalLogsin the standard libraryqfs.qftit is now possible to also set the type of the terminal logs. - Windows-Tests The embedded UI automation library has been updated to version 0.7.0.
- Mac On macOS the occasionally showing message dialogs about Safari browser automation are now handled automatically by QF-Test and no longer block test execution.
Preview features:
The following features are not yet complete, but development has reached a point where they are already of great use and the released functionality can be relied upon without concerns about backwards compatibility.
- SmartIDs enable a flexible, easy recognition of components directly from the QF-Test component ID without recording component information first. Please see "SmartID" and Component nodes versus SmartID for detailed information.
- Thanks to the new integration with Robot Framework, QF-Test procedures can be used as Robot Framework keywords.
Bugs fixed:
-
Windows
The mini-installer files for Windows -
minisetup.exeandminisetup_admin.exe- can now be run in silent and very-silent mode, similar to the full installation. - Mac QF-Test might crash when replaying hard key events on macOS.
- When using split run logs, the maximum number of screenshots for a run log was not always respected, if the option Count screenshots individually for each split log was turned off.
-
The procedure
qfs.autowin.acrobat.saveAsTextin the standard libraryqfs.qftnow also works for Acrobat Reader version 22.1 and up. -
A call of
rc.clearTestRunListeners()in a server script in batch mode broke the output resulting from the command line argument-verbose [<level>]. - Web Detection of the Chrome window for semihard clicks has been improved.
- Web For current Opera versions in WebDriver connection mode QF-Test now supports automatic download of the required ChromeDriver version.
- Electron The window of an electron application was inadvertently resized upon startup when tested with CDP-Driver connection mode.
- Electron Popups were not recognized when testing an Electron application in CDP-Driver connection mode.