QF-Test version 4.2

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

Version 4.2.5 - July 11, 2018

New features:

  • Web The embedded Selenium WebDriver framework was updated to version 3.13.0 and Mozilla GeckoDriver to version 0.21.0 which adds support for Firefox 61.

Bugs fixed:

  • Until now, settings for a user or system option that was newly introduced by a QF-Test update were dropped from the configuration files when working with an older QF-Test version. Starting with QF-Test version 4.2.5 such option settings are now always retained.
  • Web Errors shown by Microsoft Edge in a notification bar are now automatically dismissed.
  • Placing an Oracle DB driver jar with a broken manifest in the QF-Test plugin directory could interfere with loading test suites.
  • When running QF-Test in demo mode, activating a license did not enable the save menu item immediately.
Version 4.2.4 - June 14, 2018

New features:

  • Web The embedded Selenium WebDriver framework was updated to version 3.12.0 and ChromeDriver to version 2.40 (with support up to Chrome version 68). Firefox version 60 is also supported.
  • Web On Windows Insider Builds QF-Test now detects and handles the new deployment model of the Microsoft WebDriver for Edge.

Bugs fixed:

  • The options for interactively selecting the GUI engine licenses were deactivated even in case of a mixed engine license.
  • Data drivers for very large Excel files now need less memory.
  • When exporting a Test Project from Testlink for QF-Test an existing node_order definition is now handled correctly.
  • In the report expected errors inside nested test cases were counted as normal errors. Also, expected errors are now easier to identify in the run log.
  • The 'Server HTTP request' node now supports empty values for HTTP headers.
  • Stopping clients now works properly on a Windows Embedded system.
  • Web Startup of Google Chrome on Linux did not work consistently in QF-Test 4.2.3.
  • Web Trying to clear a non-existing cache folder when starting Microsoft Edge could cause an exception.
Version 4.2.3 - May 3, 2018

New features:

  • Web The embedded Selenium WebDriver framework was updated to version 3.11.0 and ChromeDriver to version 2.38 (with support up to Chrome version 67), and Mozilla GeckoDriver to version 0.20.1 which adds support for Firefox 59. The 32bit Linux version of ChromeDriver was removed from QF-Test as it is no longer supported by the Chrome development team. If needed, the last available version (2.33) can be downloaded manually from the ChromeDriver archive.
  • QF-Test now supports the Shadow DOM API and thus interaction with web elements that are embedded in an open ShadowRoot.
  • To bridge the gap until a full Windows engine is available for QF-Test the qfs.autowin package in the standard library qfs.qft has been extended to make use of Windows UIAutomation. It includes several new procedures to automate simple tests for native Windows applications. Please see chapter 50 for detailed information.
  • When moving the mouse cursor over the menu entry for a connected client in the »Clients« menu, the main window of the respective client gets highlighted.
  • The new variable group ${idlocal:...} is similar to ${id:...} with the added effect of enforcing component lookup in the test suite that is current at the time of expansion. See section 6.5 for further information.
  • The debug information for component recognition in the run log is now more readable and - like other text fields in the run log - can be opened in an external editor via the new new keyboard shortcut [Shift-Control-Return].

Bugs fixed:

  • The deprecation warning dialog for Java WebStart in Java 9 or higher is now handled automatically by QF-Test
  • When refactoring or analyzing test suites, rc.callProcedure calls are now taken into account everywhere, i.e. in every variable attribute and not just in script nodes.
  • A data driver iteration inside a 'Test step' can now be interrupted via a 'Break' node like any other node iteration.
  • Web Firefox in QF-Driver mode could crash on Linux when processing certain non-UTF-8-encoded strings.
  • Web For Chrome in QF-Driver mode right button mouse clicks did not work correctly in qooxdoo applications.
  • Web A missing "http:" protocol header in a proxy auto-config URL is now gets automatically corrected.
  • JavaFX Getting the name for an embedded Swing window from the enclosing JavaFX SwingNode now also works with Java update 8u171.
Version 4.2.2 - March 9, 2018

New features:

  • Web The embedded Selenium WebDriver framework was updated to version 3.10.0 and ChromeDriver to version 2.36 (with support up to Chrome version 66).
  • Web Mobile emulation mode now supports device-specific insets.
  • JavaFX Support was added for JavaFX SubScene components.

Bugs fixed:

  • Windows On Windows the wrong qftest.exe and qftestc.exe files slipped into the release bundles so that the bin directory of the JRE was still added to the front of the PATH environment variable which could interfere with SUT startup. Also, the command line argument -plugindir <directory> no longer had any effect.
  • Web When using WebDriver connection mode with QF-Test 4.2.1 in some cases the browser could no longer receive input after highlighting a component.
  • Web The webResolvers module (see section 52.2) now also supports registering a BusyApplicationDetector.
Version 4.2.1 - February 26, 2018

New features:

  • Testing of Java 10 based SUTs is now supported.
  • Web The embedded Selenium WebDriver framework was updated to version 3.9.1, ChromeDriver to version 2.35 (with support up to Chrome version 64), and Mozilla GeckoDriver to version 0.19.1 which adds support for Firefox 58.
  • Web Chrome can now be started in mobile emulation mode via the new 'Procedure' qfs.web.browser.general.openMobileEmulation in the standard library qfs.qft.
  • Web Proxy settings are now also supported for Firefox and Chrome with WebDriver connection.
  • When nesting test cases via a 'Test call' node the new attribute 'Act like a procedure call' determines how exceptions are handled inside the call. The now obsolete backwards compatibility option "Don't treat test calls inside test cases like procedures" has been removed.
  • The new 'Procedure' qfs.utils.waitForOneOfNComponents in the standard library qfs.qft can be used to wait for one of several components to appear.
  • The 'Procedure' qfs.utils.readTextFromFile in the standard library qfs.qft can now handle different file encodings via the optional parameter fileencoding.
  • Markers and breakpoints can now be made persistent by adding the doctags @breakpoint, @red, @green etc. See section 60.1 for further information about doctags.
  • The parameters errorlevel and newerrorlevel for the @rerun doctag are now optional. See subsection 23.3.2 for details.
  • The 'Database password' attribute of the 'Database' node can now be encrypted.
  • QF-Test now supports native full-screen mode on macOS via the menu entry »View«-»Fullscreen« and the keyboard shortcut [⌃⌘-F]
  • On macOS the keyboard shortcut for reloading test suites was changed to [⌘-R]
  • Linux On Linux systems the embedded code editor now supports pasting text via the middle mouse button.

Bugs fixed:

  • The PDF viewer now correctly rotates PDF documents.
  • In Groovy scripts the rc.callProcedure call was broken when trying to use keyword argument syntax.
  • In Groovy scripts the rc.getNum method call inadvertently returned long instead of int.
  • In a few cases a broken system property set by QF-Test could interfere with SUT startup.
  • The bin directory of the JRE used for running QF-Test is now appended to the environment variable PATH for the SUT and not prepended as it was in QF-Test versions before 4.2.
Highlights of version 4.2

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

DescriptionFurther info
Java 9 and 10 support SUT only for now. Includes support for the new Java module system "Project Jigsaw"
Testing of PDF documents See chapter 17
Additional scripting language JavaScript Equivalent to Jython and Groovy, see section 11.5
Support for Angular Includes UI toolkits Bootstrap and AngularJS Material, see section 49.2
Support for Smart GWT See section 49.2
Dedicated nodes for static and live unit tests See 'Unit test' node
Headless web-testing WebDriver mode only, requires Chrome 60 or higher or Firefox 56 or higher
Testing of REST services Supports GET, POST, HEAD, OPTIONS, PUT, DELETE and TRACE see 'Server HTTP request' node
The QF-Test tutorial was rewritten from scratch Tutorial
Table B.3:  Highlights in QF-Test version 4.2
Changes that can affect test execution
  • The joint functionality in the 'Start/Open browser' node has been replaced by distinct 'Start web engine' and 'Open browser window' nodes. Conversion is automatic unless the attributes of the old 'Start/Open browser' are contradictory in which case the node remains unchanged and things will work as before. Such nodes should be manually replaced with the new nodes at some point.
  • Another somewhat surprising feature for browser startup has also been deprecated: All procedures in the qfs.web.browser.startup package now require a running web engine. For backwards compatibility you can set the new parameter 'startBrowserIfNotRunning' to true in order to implicitly start a browser if necessary.
  • The implementation of the rc scripting API was unified for all scripting languages. This can lead to subtle differences with Jython boolean values converted to strings, varying between "True", "true" and "1" or "False", "false" and "0". This can affect malformed boolean tests written as a String comparison, e.g. "$(x)" == "false" instead of not $(x).
  • Boolean attributes that can be made editable via the '$' button are now evaluated as a Jython expression, same as the 'Condition' attribute of an 'If' node. This can lead to different results or script exceptions in some cases. If this breaks existing tests in just a few places the tests should be updated as this behaviour is much more flexible and consistent. Alternatively you can activate the option Don't evaluate variable boolean attributes (before 4.2) to get back the old behaviour.
  • The old 'Test' node has been deprecated and the rest of its previously unique functionality is now available elsewhere: Data drivers below test case level can now be implemented by placing a 'Data driver' node inside a 'Test step' node and the @noreport doctag can be used to prevent a 'Test case' node from showing up in the report (see chapter 60 for background information about doctags).
  • The ubiquitous warnings for not-quite-perfect component recognition have been demoted to message level. The warnings can be restored by activating the option Log warning instead of message.
  • Web When using a CustomWebResolver for web applications, 'Fetch text' and 'Check text' for TextField and TextArea components now both retrieve the same text. Besides, table, tree or list cells with entries implemented as TextField or TextArea now return the displayed text so some checks may need to be updated. This fix can be disabled via the option Don't fetch text for generic classes with generic class approach (before 4.2).
  • Swing For Swing applications all tooltips are now considered empty in case the Swing TooltipManager is disabled.
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 6 but for systems that are no longer supported by their own vendors we cannot provide full support.

Support for Java 5 has been dropped entirely. SUTs based on Java 6 still run by automatically switching back to older Jython and Groovy versions.

Libraries that are required for Firefox versions 44-51 and Eclipse/SWT version 3.6 and older are not part of the default installation of QF-Test. They are still being maintained, albeit with limited testing. For Eclipse/SWT 3.5 - 3.6 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.

Version 4.2.0 - January 10, 2018

Changes compared to QF-Test version 4.1.6:

New features:

  • QF-Test can now test applications based on Java 9. This includes support for the new Java 9 module system ("Project Jigsaw") without having to resort to the "Big Kill Switch", i.e. the command line argument --illegal-access.
  • Testing PDF documents like a normal application in a dedicated PDF viewer with textual and graphical checks for individual elements.
  • JavaScript was added as new scripting language equal to Jython and Groovy for 'Server script' and 'SUT script' nodes. This encompasses the ECMAScript 8 standard and all QF-Test scripting modules like resolvers, rc or autowin are available in JavaScript.
  • Web Support was added for the popular AJAX framework Angular, including support for the UI toolkits Bootstrap and AngularJS Material.
  • Web Support was added for the AJAX toolkit Smart GWT.
  • The new 'Unit test' node can run JUnit tests and integrate the results in the QF-Test run log and report. Tests can be implemented in Java or as scripts and run statically or dynamically in a 'live' SUT as an alternative to writing mocks.
  • Web Support was added for headless web-testing using the headless versions of Chrome and Firefox.
  • Web The 'Server HTTP request' node now supports testing REST services via the additional methods HEAD, PUT, DELETE, TRACE and CONNECT and it is now possible to specify custom headers for the HTTP request.
  • The QF-Test tutorial was rewritten from scratch.
  • The re-implemented Quickstart Wizard combines a concise workflow with an improved design.
  • The »Help«-»Info« dialog has a new tab "System info" that shows many QF-Test settings and system information.
  • Attributes like the 'Condition' condition of an 'If' node which are evaluated by the Jython interpreter now have syntax highlighting and support for code completion.
  • Web The embedded Chrome browser used for QF-Driver mode has been updated to CEF version 57.
  • The command line argument -run now also works for interactive mode to directly start test execution when running QF-Test. This is complemented by the new -suitesfile <file> argument that can be used to specify a text-file containing the test suites and tests to execute.
  • There are new commands available for controlling QF-Test from the command line. The new batch argument -interrupt-running-instances can be used to suspend tests running in the local machine. Similarly, -kill-kunning-instances will cleanly terminate running instances, including interactive ones, provided they were started with the argument -allowkilling. Cleanly here means that batch tests are stopped, dependencies rolled back and run logs are saved.
  • Windows The new Windows setup program for QF-Test adheres to the current Windows conventions for placing different kinds of files in various locations. There's still an option to use the old layout with all files in a single place.
  • Mac On macOS, application arguments can now be configured from within QF-Test.
  • Mac You can now specify a macOS app directly as the 'Executable' attribute of an 'Start SUT client' node.
  • A 'Sequence' node can now also be transformed into a 'Loop' or 'While' node.
  • Calls to deprecated procedures or test cases are now also stroke through in the tree view.
  • The 'Load properties' node now supports loading property files encoded as UTF-8 via its new attribute 'File encoding is UTF-8'.
  • Components in the SUT are now highlighted automatically when clicking on a component or event node in QF-Test's tree, irrespective of whether the node was already selected or not. If automatic highlighting is deactivated via the option Highlight selected component in the SUT you can now trigger it explicitly via the context menu of component, event or check nodes as well as QF-Test component IDs in parameter tables and scripts.
  • The boolean values in the 'Extra feature' attributes of a 'Component' or the 'Items' attribute of a 'Check items' node can now make use of variables. Simply double-click the respective table cell to edit the value.
  • Web The new webResolvers module enables implementing resolvers in JavaScript that run directly in the browser. See section 52.2 for detailed information and examples.
  • The extra feature qfs:label now also applies to Window and Dialog components.
  • There are several new (or newly documented) command line options for overriding the directories that are relevant to QF-Test, including -userdir <directory>, -systemdir <directory>, -jythondir <directory>, -groovydir <directory>, -javascriptdir <directory>, -plugindir <directory> and -logdir <directory>.
  • Several definitions for directories relevant for the QF-Test installation have been added to the qftest property group, e.g. ${qftest:dir.log} for the directory into which run logs are saved automatically. See section 6.5 for a detailed list.
  • The sort order of parameter tables like the 'Variable definitions' attribute of a 'Procedure call' node can now be reset to the order of the called node via the table's context menu.

Bugs fixed:

  • Conversion into a regular expression used on a 'QF-Test component ID' attribute now correctly differentiates between the ID and the sub-item syntax.
  • On Ubuntu Linux taking SUT thread dumps and terminating sub-processes of the SUT did not work.
  • Unicode characters outside the Basic Mulitilingual Pane (BMP) are now handled correctly.
  • Swing TooltipResolvers are now also called for non-Swing AWT components.
  • Web The procedure qfs.web.general.integrateFirebug now loads Firebug via https instead of http which prevents issues with mixed content.
  • Web In some cases the text of a MenuItem in a web application could mistakenly include the text of its sub-MenuItems as well.
  • Web Creating many embedded WebView or SWT Browser instances could lead to a memory leak.
  • JavaFX Running a JavaFX based SUT via WebStart could cause some IllegalAccessExceptions.
  • JavaFX Names for the tabs of a JavaFX TabPanel now take possible so-called Graphic elements into account.