QF-Test version 4.1

Video Video about the new features in version 4.1: 'QF-Test Features 4.1'.

Version 4.1.6 - October 27, 2017

New features:

  • Web The embedded Selenium API was updated to version 3.6.0, ChromeDriver to version 2.33 (with support up to Chrome version 62), and Mozilla GeckoDriver to version 0.19 which adds support for Firefox 55 - 57.
  • Web Window and Panel nodes from the supported AJAX toolkits now have a dedicated title check.

Bugs fixed:

  • A workaround was implemented for a bug in the Linux JRE 8_152 that could cause QF-Test to hang during startup.
  • Swing A Swing based SUT started remotely via the procedure qfs.daemon.startRemoteSUT did not connect if the option Connect via QF-Test agent was deactivated in the daemon.
  • JavaFX Support was added for interaction with the JavaFX HTMLEditor component, including checks for its raw HTML code and the displayed text.
  • Web When recording HTTP requests, some special characters were not saved with the correct encoding.
  • SWT Handling of frames in the SWT embedded Browser now works again.
Version 4.1.5 - August 9, 2017

New features:

  • The embedded ChromeDriver was updated to version 2.33 (with support up to Chrome version 62), and Mozilla Geckodriver to version 0.19 which includes support for Firefox 55 and higher.

Bugs fixed:

  • A race condition in the load testing demo suite has been fixed.
  • The code completion window for scripts was accidentally showing up in the run log.
  • The procedure qfs.utils.files.readExcelFile in the qfs.qft standard library now correctly handles Excel files containing empty rows.
  • A Groovy GString returned from a resolver method is now converted correctly to a Java string for further processing.
  • A regression in the performance of component recognition based on qfs:label has been fixed and performance of Swing tests has improved in general.
  • When executing manual tests based on the suite ManualTestRunner.qft the size and location of ManualStepDialog windows is now preserved.
  • JavaFX A modal JavaFX dialog that got opened during replay of a WINDOW_CLOSING event could lead to a DeadlockTimeoutException.
  • JavaFX The editable check was missing for JavaFX ComboBoxes.
  • JavaFX Support for the JavaFX SplitMenuButton has been improved so that clicks on the main button and the arrow button are recorded differently.
  • Web Creating many JxBrowser instances could lead to a memory leak.
  • Web Waiting twice for the same web page to load did not fail as expected in case the page was not refreshed in between.
  • Web Playback of a selection event on a list in Firefox with QF-Driver mode now triggers a change event only in case the list selection really changes.
Version 4.1.4 - June 1, 2017

New features:

  • SWT Support for Eclipse/SWT 4.7 "Oxygen" has been added.
  • Web The embedded Selenium WebDriver framework was updated to version 3.4.0, ChromeDriver to version 2.29 (with support up to Chrome version 58) and GeckoDriver to 0.16.1 which includes support for Firefox 53 and higher.
  • Web Support for the AJAX toolkit Qooxdoo has been updated to latest generic class concept.
  • When continuing test execution after a break, the bottom-right view now automatically switches from the variables to the terminal.
  • Tabs in the project view now have a context menu and can be closed via a middle button click.
  • Web The manual chapter about modifying the CustomWebResolver for AJAX toolkits has been updated to match the latest state of development (section 49.1).
  • The procedure qfs.autowin.acrobat.saveAsText now automatically handles the protected mode warnings by clicking "Enable all functions".
  • By using the new method resolvers.addSpecificExtraFeatureMatcher to register an ExtraFeatureMatcher with the resolvers module, the feature name can be specified at registration time.

Bugs fixed:

  • A possible NumberFormatException - introduced in QF-Test 4.1.3 - for batch mode execution with -verbose [<level>] has been fixed.
  • In some cases using the advanced replace dialog to replace the regular expression .* with an empty string could lead to an exception or to table entries being deleted without confirmation.
  • TestLink import scripts could have been broken in case of unicode characters in test case names of TestLink.
  • When text containing double quotes got pasted from the system clipboard to variables or any other table the double quotes could get lost.
  • When determining extra feature qfs:label for ComboBox, Spinner or Slider components, the tool tip could mistakenly get used instead of the nearest label.
  • The @rerun doctag was not properly evaluated in a node with additional lines in the comment.
  • The command line argument -plugindir <directory> was ignored in batch mode.
  • Selecting a component via the chooser might create an explicit reference even though the component was part of an included test suite.
  • Explicit component references within the local test suite were not taken into account when looking for unused components.
  • Analyzing references of relative test-calls didn't work correctly.
  • Duration and realtime are now updated correctly when merging run logs.
  • In case the fallback library for Jython version 2.5 is installed the Jython package cache now gets activated by default as it was in QF-Test version 4.0.
  • If the option Intelligent scrolling in trees was deactivated there were cases when the selected node was not scrolled visible in the tree at all, e.g. after a search or when entering the debugger.
  • Web In some cases custom mappings of classes were not taken into account for testing with AJAX resolvers.
  • Web The libraries required for hardware accelerated graphics in the embedded Chrome browser were removed again because they could cause a crash when opening a popup window.
  • Web Caching of non-standard attributes in the embedded Chrome browser was broken in QF-Test version 4.1.3 which could lead to component recognition issues in special cases.
  • Web Many debug messages from GeckoDriver and Mozilla Marionette are now filtered from the shared terminal.
  • In some cases clearing the browser cache during startup could cause Edge to hang for up to several minutes.
  • JavaFX The entry for showing available methods was missing from the menu for JavaFX component recording.
Version 4.1.3 - March 29, 2017

Important notes:

  • Selenium WebDriver for Firefox only supports the latest two Firefox versions plus the most recent ESR release. At the point of this QF-Test release that means Firefox 51, 52 and 52ESR. We try to improve on that as best we can and still support Firefox 38ESR, 45 and higher, but older Firefox versions simply don't run as well as current ones. There was a major change for Selenium WebDriver between Firefox 47 and 48 and WebDriver based tests run much faster with Firefox 48 upwards. For long-term support we currently recommend to use Firefox version 52ESR.

New features:

  • Web A major focus for this release is performance, especially for web testing. It has been drastically improved for WebDriver mode and JxBrowser and also significantly for web testing in general. The extent of some of the effects depends on the actual application and its implementation.
  • Web Thanks to the performance improvements, recording in WebDriver mode has stabilized and should now produce the same results as in QF-Driver mode.
  • Recording and replay of mouse double clicks is now more intuitive and consistent across all GUI engines. In the past, a 'Mouse event' node with event type 'Mouse click' and 'Click count' set to 2 was shown as a 'Double click' event, even though it was only the second of the two clicks required to simulate a double click. Such nodes are now called 'Followup click' and there is a new event type 'Double click' that properly simulates all the individual events for a complete double click in a single node.
  • test suites can now be closed by clicking on their tab with the middle mouse button.
  • The procedure qfs.database.executeSelectStatement in the QF-Test standard library qfs.qft has been improved with respect to the usage of a property group for the result set. The group is now cleared before being populated with the current result and the number of records is available via the property 'count'.
  • It is now possible to configure fallback values for placeholders in the template file for recording procedures.
  • QF-Test now shows the full path to the current test suite as well as the QF-Test version in the title bar of the main window. This can be reduced to just the file name via the option Show complete file path and QF-Test version in the title bar.
  • Web WebDriver was updated for the latest Firefox and Chrome versions and QF-Test is now also compatible with the version of Microsoft Edge Browser shipped with the upcoming Windows 10 "Creators Update".

Bugs fixed:

  • Up to now resolvers were registered globally, applying to all GUI engines, which could lead to unwanted side-effects in hybrid applications. By setting the 'GUI engine' attribute in the 'SUT script' node that registers the resolver it is now possible to restrict the resolver to the desired engine.
  • QF-Test now works around an issue in Jython 2.7 that prevented QF-Test startup in case the user's home directory contained international characters.
  • Groovy was updated to version 2.4.8 which fixes a leak of PermGen space in Java 7.
  • When stopping recording too quickly, the last recorded events, checks, components or procedures could get lost. Synchronization with the SUT has been improved so that this should now happen only in cases of extreme load.
  • When switching between projects the expansion state of the tree nodes in the project view was lost.
  • Summary output of a batch run with -verbose [<level>] did not conform to the information displayed in the status bar and in the report.
  • Web JxBrowser components with preloaded content are properly handled now.
  • Web'Text input' nodes now also work for embedded browsers (FX WebView, JxBrowser and SWT embedded browsers) if 'Replay single events' is deactivated. Replay of single events also mostly works, but the events have to be simulated as hard events which is currently possible on Windows only.
  • Web Some TEXT nodes in a web application were treated as disabled in WebDriver mode.
  • Web After page modifications the WebDriver-API did not always assign the correct QF-Test component for a WebDriver element.
  • Web Closing a secondary window of an Edge browser could inadvertently terminate the whole browser process. Also, browser shutdown in WebDriver mode has been improved for all browsers.
  • Web Several issues for the embedded WebView browser in JavaFX have been fixed, including mutation handling, refresh and goto commands and return values from evalJS.
  • Web Firefox settings are now only made persistent in the test profile if the system property "qftest.web.mozilla.save_profile" is set to true during browser startup.
  • Web The QF-Test installation now includes libraries for the embedded Chrome browser in QF-Driver mode that are required for hardware accelerated graphics.
  • SWT On Linux, tests for Eclipse with embedded JavaFX components could cause a hard deadlock at Gtk level. This has been fixed for Eclipse/SWT versions 4.3 and higher.
Version 4.1.2 - January 13, 2017

New features:

  • SWT Support for Eclipse/SWT 4.6 "Neon" has been updated for Eclipse version 4.6 SR2.

    Note The mechanism for auto-scaling SWT-based UIs on high-DPI monitors is still deactivated by default when the SWT plugin is instrumented by QF-Test. The property to re-enable it has been renamed to swt.autoScale in SWT version 4.6 SR2.

  • Resolvers are a panacea for all kinds of component recognition problems. To make them easier to write QF-Test 4.1 introduced an updated resolvers module which is now complemented by a rewrite of subsection 52.1.7 which makes resolvers more accessible than ever.
  • The names of all registered resolvers can now be retrieved by calling the method resolvers.listNames().
  • When performing automatic rerun of nodes, the beginning of an attempt is now logged as both a message and an annotation. The doctags for automatic rerun have been extended to enable catching a specific exception and to suppress log messages. See section 23.3 for further information.
  • The 'QF-Test ID' of a 'Test case' or 'Test set' node can now be retrieved at test execution time via ${qftest:testcase.id} or ${qftest:testset.id}.
  • It is now possible to transform 'Check items' into 'Check selectable items' nodes and vice versa.
  • If the value for the command line argument -usercfg <file> or -systemcfg <file> points to a directory, the configuration file is now read from or created within the specified directory.
  • When editing options QF-Test now shows a warning in case a configuration file cannot be written.

Bugs fixed:

  • QF-Test now logs a warning in case the engine of a component retrieved by calling rc.getComponent in an 'SUT script' node does not match the engine executing the script. Starting with the medium upgrade QF-Test 4.2 this will cause an exception. Trying to pass a component of the wrong GUI engine to rc.overrideElement leads to an exception right away.
  • When editing the details of a node and closing the test suite without confirming the edit first, the changes were discarded.
  • In case a resolver fails with an exception, other registered resolvers are executed anyway, like they were in QF-Test 4.0.
  • QF-Test now removes temporary files created by WebDriver implementations.
  • JavaFX Cells in custom Table components with non-standard cell ordering are addressed correctly now.
  • SWT QF-Test could cause a deadlock in Eclipse/SWT applications with multiple Display instances.
  • Web When fetching the geometry of items in a web application the values for the parent component were retrieved instead.
  • Web For web applications leading and trailing whitespace is now removed from names returned from NameResolvers.
  • Web Automatic scrolling for image checks on items was broken in web applications.
Version 4.1.1 - November 23, 2016

New features:

  • The project view now comes with a filter at the top of the tree that matches on test suite names and limits the hierarchy accordingly, which is very useful for quickly finding test suites in large projects.
  • On macOS all keyboard shortcuts should now be conforming to Mac standards and use Mac-friendly modifier keys.
  • Web Selenium WebDriver was updated to version 3.0.1.
  • The documentation and samples for keyword driven testing have been extended with a new example for behavior driven testing (BDT, see section 29.4).
  • The parameters for the @rerun doctag were extended to include a newerrorlevel=keep option and the new keepfirst parameter. See subsection 23.3.2 for further information.
  • The 'Execution timeout' attribute is now also available for 'Test step' nodes.

Bugs fixed:

  • QF-Test did not start if the Java version for QF-Test was still instrumented by an older QF-Test version (pre 4.1). Though JRE instrumentation has been deprecated for many years, such a case is still possible. QF-Test now detects that situation and helps with deinstrumentation of the JRE.
  • The test for busy panes was missing when performing a check using the generic retry mechanism introduced in QF-Test 4.1.0.
  • When interactively selecting a component for an event node the current target was not pre-selected in the chooser dialog.
  • Trying to update failed checks from the error list after closing the originating run log caused an unexpected exception.
  • When using the databinder.bindList API for performing data-driven testing, QF-Test now ignores empty lists instead of running a single iteration without data.
  • When importing test results into TestLink, skipped test cases are now correctly reported as skipped.
  • The former WebDriver API was renamed to WebDriverConnection (see section 52.12) to avoid confusion with Selenium's WebDriver object.
  • The error message for expiration of a -timeout <milliseconds> command line argument of a batch call now clearly refers to the -timeout <milliseconds> argument instead of the root node of the test suite.
  • In large projects editing component IDs in parameter tables no longer causes delays while QF-Test is looking for the component to highlight.
  • When searching through a project with an invalid regular expression many errors messages were shown instead of just one.
  • Short timeouts for visible false checks on components were not honored.
  • Swing If the option Instrument AWT EventQueue is active, QF-Test now establishes a connection with the awt:security engine in case Java WebStart shows an authentication dialog. Please note that in such a case the 'GUI engine' attribute of the 'Wait for client to connect' node must be set to awt:security.
  • Web Class resolution for AJAX toolkits was broken for some special cases.
  • Web The editable check didn't work for TextFields in the PrimeFaces toolkit.
  • Web When recording a click that triggers an alert dialog in WebDriver mode, the order of the recorded events was not always correct.
  • Web Auto-detection for AJAX toolkit resolvers has been improved. It now prints concise messages to the terminal and cleanly handles the case when no toolkit is detected.
Highlights of version 4.1

The following major new features have been implemented for QF-Test version 4.1:

DescriptionFurther info
Additional browsers via Selenium WebDriver Includes Firefox 44 and up, Edge and Safari as well as Chrome on Linux and macOS (Web testing), includes support for executing Selenium scripts from QF-Test and for mixing both (section 52.12). Performance and functionality not yet on par with QF-Driver, requires Java 8
Dedicated QF-Test App for macOS Support for Swing, Java FX and Web (WebDriver mode for Safari, Chrome and Firefox). No SWT support at this point.
Eclipse plugin Special Run Configurations that combine starting the SUT, launching QF-Test and possibly running initial test steps directly from Eclipse (section 27.1).
Jython update to version 2.7, Groovy to version 2.4.7 See subsection B.9.7.8 for incompatibilities and fallback to Jython 2.5 / Groovy 2.1.
License server mechanism QF-Test licenses can be floated globally instead of just across the local network. If interested, please get in touch with QFS via sales@qfs.de
64 bit browser support on all systems In QF-Driver connection mode browser and JRE architecture must match (chapter 14)
Support for the AJAX framework Kendo UI
Improved synchronization for web tests QF-Test tracks HTTP requests in the browser to avoid triggering events while AJAX calls are still pending (options Synchronize with HTTP requests, Timeout for HTTP request synchronization (ms) and Extended HTTP request timeout for new documents (ms)). QF-Driver mode only.
Web: Support for component resolution via XPath and CSS-selectors Addressing via XPath and/or CSS selectors
Alternative connection mechanism for Swing Works out-of-the-box in many of the problematic cases with Java WebStart, applets or custom EventQueues (Instrument AWT EventQueue)
Execution timeout Limit the maximum execution time for individual sequences, test cases, test sets or whole batch runs. ('Execution timeout' attribute, -timeout <milliseconds> command line argument)
Rerun capabilities: Re-execution of failed test cases or sequences automatically or manually from the run log. Re-execution of nodes (Rerun)
Merging run logs Merging run logs
Generic retry Smarter replay that better handles timing issues, especially components that vanish or get replaced just while QF-Test was trying to access them.
Locating procedures or components with variable names/IDs Variable expansion is now also possible in a static context so that jumping from a procedure call like "checksFor${qftest:testcase.name}" to the correct procedure works. To that end QF-Test even caches the most recent variable values from the last execution.
Updates to the QF-Test manual include new chapters about keyword-driven testing and load-testing as well as a major rewrite of important topics and more comprehensive documentation for QF-Test's pseudo DOM API and for creating resolvers of all kinds. Organizing the test suite, 'Dependency' nodes, Keyword-driven testing with QF-Test, Performing GUI-based load tests, Pseudo DOM API, The NameResolver Interface
Table B.4:  Highlights in QF-Test version 4.1
Changes that can affect test execution
Jython 2.7

The upgrade to Jython 2.7 was necessary due to conflicts with native libraries in the WebDriver module. Besides, Jython 2.5 was quite outdated and the Python modules coming with Jython 2.7 are more modern and mature. If the potential issues listed below are causing too much trouble, you can switch back to Jython 2.5. To do so, please download the file https://archive.qfs.de/pub/qftest/jython-2.5.1.jar and use that to replace the file lib/jython.jar in QF-Test's installation directory.

Groovy 2.4

This upgrade was not strictly necessary, but it is prefereable not to fall too far behind the official Groovy Release. Groovy 2.4 still mostly works with Java 6, so the only drawback is if you still need support for a legacy application based on Java 5. In that case you can download the file https://archive.qfs.de/pub/qftest/groovy-all-2.1.0.jar and use that to replace the file lib/groovy-all.jar in QF-Test's installation directory.

  • Java 6 or higher required.
New Swing connection mechanism
This mechanism should be able to handle even very tricky Swing SUTs that implement their own EventQueue, especially in combination with WebStart or applets. It is active by default. In case it does cause problems with your SUT it can be disabled via the option Instrument AWT EventQueue.
Chrome no longer supports Java applets
Google has completely dropped support for Java applets in Chrome. This includes the Chrome browser embedded by QF-Test which was updated to CEF version 45.
Software that is no longer supported

Note Please see section 1.1 for a detailed list of system requirements and supported technology versions.

QFS is taking pains to support even very old software. QF-Test should still run, for example, under Windows XP or with an SUT based on Java 5 or 6 but for systems that are no longer supported by their own vendors we cannot provide full support.

Libraries that are required for the Firefox and Eclipse/SWT versions listed below are no longer part of the default installation of QF-Test. The majority is still being maintained, albeit with limited testing. For Eclipse/SWT 3.5 - 3.8 simply download https://archive.qfs.de/pub/qftest/swt_legacy.zip and extract the contents into the swt directory of your QF-Test installation. For support of older browsers, please get in touch with QFS via support@qfs.de.

Official support has been dropped for Java 5, Java 6, Internet Explorer 10 and older, Firefox 37 and older as well as Eclipse/SWT 3.8 and older.

Version 4.1.0 - October 6, 2016

New features:

  • The rerun capabilities are now officially available and documented in section 23.3.
  • The QF-Test Jenkins plugin was updated for Jenkins version 2.1.
  • On macOS QF-Test now uses the standard key bindings for that system. Users that prefer Windows bindings (or simply have gotten used to QF-Test's non-Mac bindings) can keep them via the command line argument -keybindings=classic.
  • The QF-Test macOS App now includes a bundled JRE so manual JRE installation is no longer required.
  • Web Support for the AJAX toolkit Vaadin was updated so that the Vaadin resolver can now be customized as described in section 49.1.
  • When debugging tests, QF-Test now shows a warning when 'Continue execution from here' is attempted on a node that is not part of the current execution stack as doing so would lose the current variable bindings.
  • Chooser dialogs now include a search filter.
  • It is now possible to directly highlight the target component via the popup menu for QF-Test IDs contained in variable tables or rc.getComponent statements in SUT scripts.

Bugs fixed:

  • The QF-Test Java Configuration Tool (qfconfig) always displayed the default Java program upon startup.
  • The small arrows showing tree node execution state were not always displayed correctly.
  • Errors resulting from execution timeout are now shown correctly in the report.
  • Web In WebDriver mode QF-Test now avoids starting two Chrome instances with the same user profile directory.
  • Web Jars in the QF-Test plugin directory could interfere with the startup of a WebDriver based SUT.
  • Web Alerts can now be handled on all WebDriver based browsers.
Version 4.1.0-rc2 - September 2, 2016

New features:

  • Groovy was updated to version 2.4.7. QF-Test now requires at least Java 7 unless Groovy is rolled back to version 2.1.0 as explained in subsection B.9.7.8.
  • Web WebDriver support is significantly improved and performance is much better. Firefox 48 and higher now also work as Selenium was upgraded to support for Firefox Marionette.
  • Web For web QF-Test now supports component resolution using XPath and CSS selectors. See Addressing via XPath and/or CSS selectors for details.
  • The procedure qfs.utils.xml.compareXMLFiles was improved with better filtering and the ability to ignore missing tags or attributes when specified in the "noCheck" parameter.
  • Web On Windows, 'Text input' nodes can now be replayed for JxBrowser.
  • The procedure qfs.utils.email.sendEmail in the standard library qfs.qft now also supports attachments.
  • Jython was modified to catch and suppress NotImplementedErrors caused by implementing only parts of an interface which was OK with Jython 2.5. This behavior can be modified by setting the system property qftest.workarounds.abstractMethodsHandling to one of the values "ignore", "warning", "error" or "exception".

Bugs fixed:

  • JavaFX Uncaught exceptions on the JavaFX application thread were correctly reported by QF-Test, but in some cases they were not passed on which might hide bugs in the SUT or at least prevent testing the SUT's own handling of uncaught exceptions.
  • Occasionally a call to DaemonLocator.locateInstance(long timeout) might locate a daemon, but "forget" it again before returning the result after the timeout was reached.
Version 4.1.0-rc1 - July 29, 2016

Changes compared to QF-Test version 4.0.11:

New features:

  • Web The new browser connection mode based on Selenium WebDriver adds support for additional browsers including Firefox 44 and up, Edge and Safari as well as Chrome now also on Linux and macOS.
  • Selenium scripts can now be run from inside QF-Test and mixing of QF-Test and Selenium tests is possible. See section 52.12 for how to access the WebDriver API from 'SUT script' nodes.
  • QF-Test now officially supports Swing, JavaFX and Web testing on macOS. A dedicated installer is available.
  • Jython was updated to version 2.7.0. QF-Test now requires at least Java 7 unless Jython is rolled back to version 2.5.1 as explained in subsection B.9.7.8.
  • By using our new license server mechanism, licenses can now be floated globally instead of just across the local network. If interested, please get in touch with QFS via sales@qfs.de.
  • Web 64 bit browsers are now supported on all systems.
  • Web Support was added for the AJAX framework Kendo UI.
  • Many existing AJAX resolvers were updated and generalized and are now easier to customize. See Special support for various web frameworks and Improving component recognition with a CustomWebResolver for further information.
  • Web In QF-Driver mode QF-Test can now synchronize web tests based on outstanding HTTP requests. This is controlled via the options Synchronize with HTTP requests, Timeout for HTTP request synchronization (ms) and Extended HTTP request timeout for new documents (ms).
  • Swing The new connection mechanism for Swing works out-of-the-box in many of the problematic cases with Java WebStart, applets or custom EventQueues. It can be disabled via the option Instrument AWT EventQueue.
  • The maximum execution time for sequences, test cases, test sets or whole batch runs can now be limited via the attribute 'Execution timeout' and the command line argument -timeout <milliseconds>.
  • Run logs can now be merged as described in Merging run logs.
  • Event replay for all engines now uses an approach we call Generic Retry that better handles timing issues, especially components that vanish or get replaced just while QF-Test was trying to access them.
  • Variable expansion is now also possible in a static context so that jumping from a procedure call like checksFor${qftest:testcase.name} to the correct procedure simply works. QF-Test caches the most recent variable values from the last execution so this is useful even for dynamic bindings.
  • The various data nodes like 'Database' or 'Excel data file' can now also be executed outside a data driver context in order to bind the values directly as variables instead of iterating over the sets. In that case the 'Name' attribute of the node also defines the name of the properties group into which the variables are bound.
  • Swing Support for JxBrowser was updated to JxBrowser version 6.
  • Depending on screen layout it may be preferable to use more space for the tree or for the terminal in QF-Test's user interface. The new menu item »View«-»Terminal«-»Prefer tree over terminal« toggles whether tree or terminal should occupy the lower left region.
  • Improved packing of mouse events should result in cleaner recordings with fewer stray events. For special cases where individual MOUSE_PRESSED or MOUSE_RELEASED events are preferable, disable the option Simplified 'Mouse click' recording.
  • Several chapters in the manual were added (Keyword-driven testing with QF-Test, Performing GUI-based load tests) or rewritten (Organizing the test suite, 'Dependency' nodes and Pseudo DOM API).
  • The embedded script editor now supports the keyboard shortcuts [Shift-Up/Down] to move one or more selected lines up or down and , [Shift-Return] to add a new line after the end of the current line.
  • There is a new toolbar button for opening the most recent run log.
  • Failed boolean checks have a more specific error message that includes the type of check.
  • The DOMProcessor extension API now also supports modifying summary documents.
  • Script APIs are being unified in preparation for additional scripting languages. Implementing and registering resolvers is now easier and more flexible and the autowin and ssh modules are now also available in Groovy.
  • Web There is now a generic string check type for DOM node attributes that can be read via getAttribute. Simply set the 'Check type identifier' to attribute:NAME where NAME is the name of the attribute to check.
  • Pressing [Ctrl-C] in the project tree or on the root node of a test suite copies the path of the test suite to the system clipboard.
  • Locating references now also works for 'Package' nodes. The resulting list contains references to all 'Procedures' in the respective hierarchy.
  • Pasting nodes in a test suite is more flexible. If the current location is not suitable for the kind of node to be pasted but the target is implicitly clear, the node gets automatically inserted at the correct position.
  • Web The version of the Chrome browser provided with QF-Test for QF-Driver mode web tests was update to CEF 45.
  • The procedures qfs.utils.getDate, qfs.utils.getTime and qfs.check.compareDates in the standard library qfs.qft now all have parameters to specify the locale to use for formatting.
  • All getRowCount procedures for Swing, JavaFX and SWT trees have been reworked to provide the number of visible rows. The new parameter "countOnlyVisibleNodes" limits the search to visible rows below a given node. Also added were procedures ...tree.getChildNodeCount with a similar functionality and ...tree.check.checkChildNodeCount for checking the number or child nodes of a node.
  • The directory for exchanging files with an external editor can now be explicitly specified via the option Directory passed temporary files to external editor.
  • Some of the tables in QF-Test detail views were rearranged to increase visibility. Besides, all tables now support adding a new row by double-clicking in the empty area of the table.

Bugs fixed:

  • JavaFX Updates to the ID of a JavaFX node were not tracked correctly.
  • JavaFX The "imagehash" extra feature is now also implemented for JavaFX.
  • Internal storage of images in test suites and run logs is now much more memory-efficient.
  • Web Tests for enabled DOM nodes now also take enclosing FIELDSET nodes into account.
  • Web Association of labels via the "for" attribute is now better supported.
  • Using the debugger command "Continue from here" on a 'Procedure' called from different test suite could mess up the current execution context.