Video about the new features in version 4.2: 'QF-Test Features 4.2'.
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.
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.
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 51 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.6
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.
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 53.2) now also supports registering a
BusyApplicationDetector
.
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 61.1 for further information about doctags.
-
The parameters
errorlevel
and newerrorlevel
for the @rerun doctag are now
optional. See subsection 24.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.
The following major new features have been implemented for QF-Test version 4.2:
| Description | Further 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 18 |
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 50.2 |
Support for Smart GWT
|
See section 50.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 | |
-
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 61 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.
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
.
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 53.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.6 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.