| Table of contents |
| Preface |
| | How to use this manual |
| User manual |
| Installation and startup |
| 1.1 | System requirements |
| | 1.1.1 | Hard- and Software |
| | 1.1.2 | Supported technologies - QF-Test |
| | 1.1.3 | Supported technologies - System under Test |
| 1.2 | Windows Installation |
| | 1.2.1 | Installing via the Windows setup file QF-Test-9.0.0.exe |
| | 1.2.2 | Unpacking the self-extracting archive QF-Test-9.0.0-sfx.exe |
| | 1.2.3 | Completing the installation and configuring Java |
| 1.3 | Linux Installation |
| 1.4 | macOS Installation |
| 1.5 | The license file |
| 1.6 | The configuration files |
| 1.7 | Starting QF-Test |
| 1.8 | Firewall Security Warning |
| The user interface |
| 2.1 | The test suite |
| 2.2 | Basic editing |
| | 2.2.1 | Navigating the tree |
| | 2.2.2 | Insertion marker |
| | 2.2.3 | Moving nodes |
| | 2.2.4 | Transforming nodes |
| | 2.2.5 | Tables |
| | 2.2.6 | Packing and Unpacking |
| | 2.2.7 | Sorting Nodes |
| 2.3 | Advanced editing |
| | 2.3.1 | Searching |
| | 2.3.2 | Replacing |
| | 2.3.3 | Complex searches and replace operations |
| | 2.3.4 | Multiple views |
| | 2.3.5 | Hiding toolbar buttons |
2.0+
| Quickstart your application |
| 3.1 | Setup sequence creation |
| 3.2 | Executing the setup sequence |
| 3.3 | In case the client does not connect ... |
| 3.4 | Program output and the Clients menu |
| 3.5 | An application started indirectly from an already connected SUT |
| Capture and replay |
| 4.1 | Recording sequences |
| 4.2 | Running tests |
| 4.3 | Recording checks |
| 4.4 | Fetching data from the UI |
| 4.5 | Recording components |
| 4.6 | Recording of HTTP requests (GET/POST) |
| Components |
| 5.1 | Components of a GUI |
| 5.2 | Component nodes versus SmartID |
| | 5.2.1 | Improved readability of tests |
| | 5.2.2 | Test-driven development |
| | 5.2.3 | Keyword-driven testing |
| | 5.2.4 | Stability of recognition |
| | 5.2.5 | Maintainability |
| | 5.2.6 | Performance |
| | 5.2.7 | Combining Component nodes and SmartIDs |
| 5.3 | How to achieve robust component recognition |
| | 5.3.1 | How to judge robust component recognition |
| | 5.3.2 | Opportunities for optimization |
| 5.4 | Recognition criteria |
| | 5.4.1 | Class |
| | 5.4.2 | Name |
| | 5.4.3 | Feature |
| | 5.4.4 | Extra features |
| | 5.4.5 | Index |
| | 5.4.6 | Geometry |
| | 5.4.7 | Component hierarchy |
| 5.5 | Component node |
| 5.6 | SmartID |
| | 5.6.1 | Use cases for SmartIDs |
| | 5.6.2 | SmartID syntax for Class name |
| | 5.6.3 | SmartID syntax for Name |
| | 5.6.4 | SmartID syntax for Feature |
| | 5.6.5 | SmartID syntax for Extra features |
| | 5.6.6 | SmartID with index |
| | 5.6.7 | SmartID syntax for component hierarchies |
| | 5.6.8 | Recording and replaying SmartIDs |
| | 5.6.9 | Component QF-Test ID as SmartID |
| 5.7 | Scope |
| 5.8 | Generic components |
| 5.9 | Sub-items: Addressing relative to a parent component |
| | 5.9.1 | Addressing via index |
| | 5.9.2 | Addressing via QPath |
| | 5.9.3 | Addressing via XPath and/or CSS selectors |
| | 5.9.4 | Addressing via Items nodes |
| 5.10 | Troubleshooting component recognition problems |
| | 5.10.1 | Timing synchronisation |
| | 5.10.2 | Recognition |
| 5.11 | Component tree maintenance |
| | 5.11.1 | Clean up the component tree |
| | 5.11.2 | Update Components |
3.1+ | 5.12 | Inspecting components |
| | 5.12.1 | Show methods |
7.0+ | | 5.12.2 | UI Inspector |
| Variables |
| 6.1 | Variable references |
| | 6.1.1 | Referencing simple variables |
| | 6.1.2 | Referencing group variables |
| | 6.1.3 | Referencing variables in scripts and script expressions |
| 6.2 | Variable lookup |
| 6.3 | Defining variables |
| 6.4 | Variable levels |
| | 6.4.1 | Primary stack |
| | 6.4.2 | Seconday stack |
| 6.5 | Displaying variables in debug mode – Example |
| 6.6 | Data types of variables |
| | 6.6.1 | JSON data |
| 6.7 | External data |
| 6.8 | Special groups |
3.0+ | 6.9 | Immediate and lazy binding |
| Problem analysis and debugging |
| 7.1 | The run log |
| | 7.1.1 | Error states |
| | 7.1.2 | Navigating the run log tree |
| | 7.1.3 | Run-time behavior |
| | 7.1.4 | Showing return values |
| | 7.1.5 | Accepting values of failed checks as good |
3.0+ | | 7.1.6 | Split run logs |
| | 7.1.7 | Run log options |
3.3+ | | 7.1.8 | Creating a test suite from the run log |
4.1+ | | 7.1.9 | Merging run logs |
| 7.2 | The debugger |
| | 7.2.1 | Entering the debugger |
| | 7.2.2 | Displaying the current variable values |
| | 7.2.3 | Debugger commands |
| | 7.2.4 | Manipulating breakpoints |
| | 7.2.5 | The debugger window |
| Organizing the test suite |
| 8.1 | Test suite structure |
| 8.2 | Test set and Test case nodes |
2.0+ | | 8.2.1 |
Test management with Test set and Test case nodes |
| | 8.2.2 | Concept |
| | 8.2.3 | Variables and special attributes |
| 8.3 | Sequence and Test step nodes |
| 8.4 | Setup and Cleanup nodes |
| 8.5 | Procedures and Packages |
3.1+ | | 8.5.1 | Local Procedures and Packages |
3.1+ | | 8.5.2 | Relative Procedures |
| | 8.5.3 | Inserting Procedure call nodes |
3.1+ | | 8.5.4 | Parameterizing nodes |
3.0+ | | 8.5.5 | Transforming a Sequence into a Procedure |
| 8.6 | Dependency nodes |
| | 8.6.1 | Concept |
| | 8.6.2 | Usage of Dependencies |
| | 8.6.3 | Dependency execution and Dependency stack |
| | 8.6.4 | Characteristic variables |
| | 8.6.5 | Forced cleanup |
| | 8.6.6 | Rolling back Dependencies |
| | 8.6.7 | Error escalation |
| | 8.6.8 | Error handling |
| | 8.6.9 | Name spaces for Dependencies |
| 8.7 | Documenting test suites |
3.5+
| Projects |
| The standard library |
| Scripting |
| 11.1 | General |
| 11.2 | Script expressions |
| 11.3 | The run context rc |
| | 11.3.1 | Logging messages |
| | 11.3.2 | Performing checks |
| | 11.3.3 | Variables |
| | 11.3.4 | Accessing the SUT's GUI components |
| | 11.3.5 | Calling Procedures |
3.1+ | | 11.3.6 | Setting options |
| | 11.3.7 | Override components |
| 11.4 | Fundamentals of the Jython integration |
| | 11.4.1 | Jython Variables |
| | 11.4.2 | Modules |
| | 11.4.3 | Post-mortem debugging of Jython scripts |
| | 11.4.4 | Boolean type |
| | 11.4.5 | Jython strings and character encodings |
| | 11.4.6 | Getting the name of a Java class |
| | 11.4.7 | A complex example |
| 11.5 | Scripting with Groovy |
| | 11.5.1 | Groovy packages |
| 11.6 | Scripting with JavaScript |
| | 11.6.1 | JavaScript imports |
| | 11.6.2 | NPM modules |
| | 11.6.3 | Print statements |
| | 11.6.4 | Execution |
| Unit Tests |
| 12.1 | Java Classes as the Source for the Unit Test |
| 12.2 | Basics of the Test Scripts |
| | 12.2.1 | Groovy Unit Tests |
| | 12.2.2 | Jython Unit Tests |
| | 12.2.3 | JavaScript Unit test |
| 12.3 | Injections |
| | 12.3.1 | Component-Injections |
| | 12.3.2 | WebDriver-Injections |
| 12.4 | Unit Tests in Report |
| Testing Java desktop applications |
| Web testing |
| 14.1 | Supported browsers |
| 14.2 | General approach |
| 14.3 | Browser connection |
| 14.4 | Recognition of web components and toolkits |
| 14.5 | Cross browser tests |
| 14.6 | Emulation of mobile browsers |
| 14.7 | Web-Tests in headless mode |
| 14.8 | Integrating existing Selenium web tests |
| 14.9 | Selecting the browser installation |
5.0+
| Testing native Windows applications |
| 15.1 | Getting started |
| 15.2 | Technical background |
| 15.3 | Launching/Attaching to an application |
| 15.4 | Recording |
| 15.5 | Components |
| 15.6 | Playback and Patterns |
| 15.7 | Scripting |
| 15.8 | Options |
| | 15.8.1 | Windows scaling |
| | 15.8.2 | Visibility |
| | 15.8.3 | Attaching to a window with a given class |
| | 15.8.4 | Child count limitation |
| 15.9 | (Current) Limitations |
| 15.10 | Links |
6.0+
| Testing Android applications |
| 16.1 | Preconditions and known restrictions |
| | 16.1.1 | Preconditions |
| | 16.1.2 | Known restrictions |
| 16.2 | Emulator or real device |
| 16.3 | Installing Android Studio, emulator and virtual devices (AVD) |
| | 16.3.1 | Android Studio installation |
| | 16.3.2 | Android Studio virtual device configuration |
| 16.4 | Connecting to a real Android device |
| 16.5 | Create a QF-Test setup sequence for Android testing |
| | 16.5.1 | Usage of an Android emulator |
| | 16.5.2 | Usage of a real Android device |
| 16.6 | Record actions and checks for Android |
| 16.7 | Android utility procedures |
6.0+
| Testing iOS applications |
| 17.1 | Preconditions and known restrictions |
| | 17.1.1 | Preconditions |
| | 17.1.2 | Known restrictions |
| 17.2 | Installing Xcode, Simulators and IDB |
| | 17.2.1 | Xcode Installation |
| | 17.2.2 | iOS Development Bridge (idb) Installation |
| 17.3 | Testing on a real iOS device |
| 17.4 | Create a QF-Test Setup sequence for iOS testing |
| 17.5 | Record actions and checks for iOS |
| 17.6 | iOS utility procedures |
| Testing PDF documents |
| 18.1 | PDF Client |
| | 18.1.1 | PDF Client start |
| | 18.1.2 | PDF Client window |
| 18.2 | PDF events |
| | 18.2.1 | Open a PDF document |
| | 18.2.2 | Switch page |
| 18.3 | Checks for PDF components |
| | 18.3.1 | Check text |
| | 18.3.2 | Check image |
| | 18.3.3 | 'Check Font' |
| | 18.3.4 | 'Check Font size' |
| 18.4 | PDF component types |
| 18.5 | PDF component recognition |
9.0.0+
| Accessibility Testing |
| 19.1 | General parameters of the check functions |
| 19.2 | Axe-checks with QF-Test |
| | 19.2.1 | Parameters of axe-checks |
| | 19.2.2 | Axe-core's "impact" rating |
| 19.3 | Color contrast check for simple graphics |
| | 19.3.1 | Parameters of the color contrast check |
| 19.4 | A11y run logs and reports |
| | 19.4.1 | Working with the run log |
| | 19.4.2 | Notes on generating reports |
| Testing Java desktop applications in a browser with Webswing and JPro |
| 20.1 | Technical concepts of JiB for Webswing and JPro |
| Testing Electron applications |
| 21.1 | Starting the Electron Client |
| | 21.1.1 | Electron settings for the quickstart wizard |
| 21.2 | Electron specific functionality of QF-Test |
| | 21.2.1 | Native Menus |
| | 21.2.2 | Native Dialogs |
| | 21.2.3 | Extended Javascript-API |
| 21.3 | Technical remarks on testing Electron applications in WebDriver connection mode |
| Testing web services |
| 22.1 | RESTful web services |
| | 22.1.1 | HTTP standards and web services |
| | 22.1.2 | HTTP request |
| | 22.1.3 | Examples |
| Data-driven testing |
| 23.1 | Data driver examples |
| 23.2 | General use of Data drivers |
| 23.3 | Examples for Data drivers |
| 23.4 | Advanced use |
| Reports and test documentation |
| 24.1 | Reports |
| | 24.1.1 | Report concepts |
| | 24.1.2 | Report contents |
| | 24.1.3 | Creating reports |
| | 24.1.4 | Customizing reports |
| 24.2 | Testdoc documentation for Test sets and Test cases |
| 24.3 | Pkgdoc documentation for Packages, Procedures and Dependencies |
| Test execution |
| 25.1 | Test execution in batch mode |
| | 25.1.1 | Command line usage |
| | 25.1.2 | Windows batch script |
3.0+ | | 25.1.3 | Groovy |
| 25.2 | Executing tests in daemon mode |
| | 25.2.1 | Launching the daemon |
3.0+ | | 25.2.2 | Controlling a daemon from QF-Test's command line |
| | 25.2.3 | Controlling a daemon with the daemon API |
4.1+ | 25.3 | Re-execution of nodes (Rerun) |
| | 25.3.1 | Triggering rerun from a run log |
| | 25.3.2 | Rerunning failing nodes immediately |
| Distributed test development |
| 26.1 | Referencing nodes in another test suite |
| 26.2 | Managing Components |
| 26.3 | Merging test suites |
| | 26.3.1 | Importing Components |
3.3+ | | 26.3.2 |
Importing Procedures and Testcases |
| 26.4 | Strategies for distributed development |
3.1+ | 26.5 | Static validation of test suites |
| | 26.5.1 | Avoiding invalid references |
4.0.3+ | | 26.5.2 | Unused procedures |
3.0+
| Automated Creation of Basic Procedures |
| 27.1 | Introduction |
| 27.2 | How to use the Procedure Builder |
| 27.3 | Configuration of the Procedure Builder |
| | 27.3.1 | The Procedure Builder definition file |
3.0+
| Interaction with Test Management Tools |
| 28.1 | HP ALM - Quality Center |
| | 28.1.1 | Introduction |
| | 28.1.2 | Step-by-step integration guide |
| | 28.1.3 | Troubleshooting |
| 28.2 | Imbus TestBench |
| | 28.2.1 | Introduction |
| | 28.2.2 | Creating QF-Test template from interactions |
| | 28.2.3 | Importing test execution results |
| 28.3 | QMetry |
| | 28.3.1 | Introduction |
| | 28.3.2 | Sample Configuration |
| 28.4 | Klaros |
| | 28.4.1 | Introduction |
| | 28.4.2 | Importing QF-Test results into Klaros |
| 28.5 | TestLink |
| | 28.5.1 | Introduction |
| | 28.5.2 | Generating template test suites for QF-Test from test cases |
| | 28.5.3 | Execution of test cases |
| | 28.5.4 | Importing QF-Test results into TestLink |
| Integration with Development Tools |
| 29.1 | Eclipse |
| | 29.1.1 | Installation |
| | 29.1.2 | Configuration of the test nodes |
| 29.2 | Ant |
| 29.3 | Maven |
3.3+ | 29.4 | Jenkins |
| | 29.4.1 | Install and start Jenkins |
| | 29.4.2 | Requirements for GUI tests |
| | 29.4.3 | Install QF-Test Plugin |
7.0+ | 29.5 | JUnit 5 Jupiter |
| 29.6 | TeamCity CI |
6.0+
| Integration with Robot Framework |
| 30.1 | Introduction |
| 30.2 | Prerequisites and installation |
| 30.3 | Getting started |
| 30.4 | Using the library |
| 30.5 | Creating your own keywords |
| Keyword-driven testing with QF-Test |
| 31.1 | Introduction |
| 31.2 | Simple Keyword-driven testing with QF-Test |
| | 31.2.1 | Business-related Procedures |
| | 31.2.2 | Atomic component-oriented procedures |
| 31.3 | Keyword-driven testing using dynamic or generic components |
| 31.4 | Behavior-driven testing (BDT) |
| | 31.4.1 | Behavior-Driven Testing (BDT) from technical perspective |
| | 31.4.2 | Behavior-Driven Testing (BDT) from business perspective |
| 31.5 | Scenario files |
| 31.6 | Custom test case description |
| 31.7 | Adapting to your software |
| Usage of QF-Test in Docker Environments |
| 32.1 | What is Docker? |
| 32.2 | QF-Test Docker Images |
| Performing GUI-based load tests |
| 33.1 | Background and comparison with other techniques |
| 33.2 | Load testing with QF-Test |
| | 33.2.1 | Provision of test systems |
| | 33.2.2 | Conception of the test run |
| | 33.2.3 | Preparing test systems prior to the test run |
| | 33.2.4 | Test execution |
| | 33.2.5 | Evaluating results |
| 33.3 | Hints on test execution |
| | 33.3.1 | Synchronization |
| | 33.3.2 | Measuring end-to-end response times |
| 33.4 | Troubleshooting |
| 33.5 | Web load testing with headless browsers |
3.0+
| Executing Manual Tests in QF-Test |
| 34.1 | Introduction |
| 34.2 | Step-by-step Guide |
| 34.3 | Structure of the Excel file |
| 34.4 | The ManualTestRunner test suite |
| 34.5 | Results |
| Best Practices |
| Introduction |
| How to start a testing project |
| 36.1 | Infrastructure and testing environment |
| 36.2 | Location of files |
| | 36.2.1 | Network installation |
| 36.3 | Component Recognition |
| Organizing test suites |
| 37.1 | Organizing tests |
| 37.2 | Modularization |
| 37.3 | Parameterization |
| 37.4 | Working in multiple test suites |
| 37.5 | Roles and responsibilities |
| 37.6 | Managing components at different levels |
| 37.7 | Reverse includes |
| Efficient working techniques |
3.5+ | 38.1 | Using QF-Test projects |
| 38.2 | Creating test suites from scratch |
| 38.3 | The standard library qfs.qft |
| 38.4 | Component storage |
| 38.5 | Extending test suites |
| 38.6 | Working in the script editor |
| Hints on setting up test systems |
| 39.1 | Using the task scheduler |
| 39.2 | Remote access to Windows systems |
| 39.3 | Automated logon on Windows systems |
| 39.4 | Test execution on Linux |
| Test execution |
| 40.1 | Dependencies |
| 40.2 | Timeout vs. delay |
| 40.3 | What to do if the run log contains an error |
| Reference manual |
| Options |
| 41.1 | General options |
3.5+ | | 41.1.1 | Project settings |
7.0+ | | 41.1.2 | Saving test suites |
| | 41.1.3 | Display |
| | 41.1.4 | Editing |
| | 41.1.5 | Bookmarks |
| | 41.1.6 | External tools |
| | 41.1.7 | Backup files |
| | 41.1.8 | Library |
| | 41.1.9 | License |
| | 41.1.10 | Updates |
| 41.2 | Recording options |
| | 41.2.1 | Events to record |
| | 41.2.2 | Events to pack |
| | 41.2.3 | Components |
| | 41.2.4 | Recording sub-items |
6.0+ | | 41.2.5 | Recording Window |
| | 41.2.6 | Recording procedures |
| 41.3 | Replay options |
| | 41.3.1 | Client options |
| | 41.3.2 | Terminal options |
| | 41.3.3 | Event handling |
| | 41.3.4 | Component recognition |
| | 41.3.5 | Delays |
| | 41.3.6 | Timeouts |
| | 41.3.7 | Backward compatibility |
7.0+ | 41.4 | SmartID und qfs:label |
6.0+ | 41.5 | Android |
8.0+ | 41.6 | iOS |
| 41.7 | Web options |
| | 41.7.1 | HTTP Requests |
| | 41.7.2 | Backward compatibility |
| 41.8 | SWT options |
| 41.9 | UI Inspector options |
| 41.10 | Debugger options |
| 41.11 | Run log options |
| | 41.11.1 | General run log options |
| | 41.11.2 | Options for splitting run logs |
| | 41.11.3 | Options determining run log content |
4.0+ | | 41.11.4 | Options for mapping between directories with
test suites |
| 41.12 | Variables |
| 41.13 | Runtime only |
| Elements of a test suite |
| 42.1 | The test suite and its structure |
| | 42.1.1 | Test suite |
| 42.2 | Test and Sequence nodes |
| | 42.2.1 | Test case |
| | 42.2.2 | Test set |
| | 42.2.3 | Test call |
| | 42.2.4 | Sequence |
| | 42.2.5 | Test step |
| | 42.2.6 | Sequence with time limit |
| | 42.2.7 | Extras |
| 42.3 | Dependencies |
| | 42.3.1 | Dependency |
| | 42.3.2 | Dependency reference |
| | 42.3.3 | Setup |
| | 42.3.4 | Cleanup |
| | 42.3.5 | Error handler |
| 42.4 | Data driver |
| | 42.4.1 | Data driver |
| | 42.4.2 | Data table |
| | 42.4.3 | Database |
| | 42.4.4 | Excel data file |
| | 42.4.5 | CSV data file |
| | 42.4.6 | Data loop |
| 42.5 | Procedures |
| | 42.5.1 | Procedure |
| | 42.5.2 | Procedure call |
| | 42.5.3 | Return |
| | 42.5.4 | Package |
| | 42.5.5 | Procedures |
| 42.6 | Control structures |
| | 42.6.1 | Loop |
| | 42.6.2 | While |
| | 42.6.3 | Break |
| | 42.6.4 | If |
| | 42.6.5 | Elseif |
| | 42.6.6 | Else |
| | 42.6.7 | Try |
| | 42.6.8 | Catch |
| | 42.6.9 | Finally |
| | 42.6.10 | Throw |
| | 42.6.11 | Rethrow |
| | 42.6.12 | Server script |
| | 42.6.13 | SUT script |
| 42.7 | Processes |
| | 42.7.1 | Start Java SUT client |
| | 42.7.2 | Start SUT client |
| | 42.7.3 | Start process |
| | 42.7.4 | Execute shell command |
| | 42.7.5 | Start web engine |
| | 42.7.6 | Start PDF client |
| | 42.7.7 | Start windows application |
| | 42.7.8 | Attach to windows application |
| | 42.7.9 | Launch Android emulator |
| | 42.7.10 | Connect to Android device |
| | 42.7.11 | Connect to iOS device |
| | 42.7.12 | Wait for client to connect |
| | 42.7.13 | Wait for mobile device |
| | 42.7.14 | Open browser window |
| | 42.7.15 | Launch a mobile app |
| | 42.7.16 | Stop client |
| | 42.7.17 | Wait for process to terminate |
| 42.8 | Events |
| | 42.8.1 | Mouse event |
| | 42.8.2 | Key event |
| | 42.8.3 | Text input |
| | 42.8.4 | Window event |
| | 42.8.5 | Component event |
| | 42.8.6 | Selection |
| | 42.8.7 | File selection |
| 42.9 | Checks |
| | 42.9.1 | Check text |
| | 42.9.2 | Boolean check |
| | 42.9.3 | Check items |
| | 42.9.4 | Check selectable items |
| | 42.9.5 | Check image |
| | 42.9.6 | Check geometry |
| 42.10 | Queries |
| | 42.10.1 | Fetch text |
| | 42.10.2 | Fetch index |
| | 42.10.3 | Fetch geometry |
| 42.11 | Miscellaneous |
| | 42.11.1 | Comment |
| | 42.11.2 | Error |
| | 42.11.3 | Warning |
| | 42.11.4 | Message |
| | 42.11.5 | Set variable |
| | 42.11.6 | Wait for component to appear |
| | 42.11.7 | Wait for document to load |
| | 42.11.8 | Wait for download to finish |
| | 42.11.9 | Load resources |
| | 42.11.10 | Load properties |
| | 42.11.11 | Unit test |
| | 42.11.12 | Install CustomWebResolver |
| 42.12 | HTTP Requests |
| | 42.12.1 | Server HTTP request |
| | 42.12.2 | Browser HTTP request |
| 42.13 | Windows, Components and Items |
| | 42.13.1 | Window |
| | 42.13.2 | Web page |
| | 42.13.3 | Component |
| | 42.13.4 | Item |
| | 42.13.5 | Window group |
| | 42.13.6 | Component group |
| | 42.13.7 | Windows and components |
| 42.14 | Deprecated nodes |
| | 42.14.1 | Test |
| | 42.14.2 | Procedure installCustomWebResolver |
| Exceptions |
| Technical reference |
| Command line arguments and exit codes |
| 44.1 | Call syntax |
| 44.2 | Command line arguments |
| | 44.2.1 | Arguments for the starter script |
| | 44.2.2 | Arguments for the Java VM |
| | 44.2.3 | Arguments for QF-Test |
| | 44.2.4 | Placeholders in the filename parameter for run log and
report |
| 44.3 | Exit codes for QF-Test |
| GUI engines |
| Running an application from QF-Test |
| 46.1 | Various methods to start the SUT |
| | 46.1.1 | A standalone script or executable file |
| | 46.1.2 | An application launched through Java WebStart |
| | 46.1.3 | An application started with java -jar <archive> |
| | 46.1.4 |
An application started with java -classpath <classpath> <class>
|
| | 46.1.5 | A web application in a browser |
| | 46.1.6 | Opening a PDF Document |
| JRE and SWT instrumentation |
| 47.1 | JRE deinstrumentation |
| 47.2 | SWT instrumentation |
| | 47.2.1 | Preparation for manual SWT instrumentation |
| | 47.2.2 | Manual SWT instrumentation for eclipse based applications |
| | 47.2.3 | Manual instrumentation for standalone SWT applications |
| Technical information about components |
| 48.1 | Weighting of recognition features for recorded components |
| 48.2 | Generating the component QF-Test ID |
| 48.3 | SmartIDs - general syntax |
| 48.4 | SmartIDs - special characters |
| 48.5 | Android - list of trivial component identifiers |
| Technical details about miscellaneous issues |
| 49.1 | Drag&Drop |
| 49.2 | Timing |
| 49.3 | Regular expressions |
| 49.4 | Line breaks under Linux and Windows |
| 49.5 | Quoting and escaping special characters |
| 49.6 | Include file resolution |
| Scripting (Jython, Groovy and JavaScript) |
| 50.1 | Module load-path |
| 50.2 | The plugin directory |
| 50.3 | Initialization (Jython) |
| 50.4 | Namespace environment for script execution (Jython) |
| 50.5 | Run context API |
| | 50.5.1 | The expand parameter |
| 50.6 | The qf module |
3.0+ | 50.7 | Image API |
| | 50.7.1 | The ImageWrapper class |
| 50.8 | The JSON module |
| 50.9 | Natural Language Assertions |
| | 50.9.1 | Motivation |
| | 50.9.2 | API documentation |
| | 50.9.3 | Result handling |
| 50.10 | Exception handling |
| 50.11 | Debugging scripts (Jython) |
| Web |
| 51.1 | Improving component recognition with a CustomWebResolver |
| | 51.1.1 | General configuration |
| | 51.1.2 | The Install CustomWebResolver node |
| | 51.1.3 | CustomWebResolver – Tables |
| | 51.1.4 | CustomWebResolver – Tree |
| | 51.1.5 | CustomWebResolver – TreeTable |
| | 51.1.6 | CustomWebResolver – Lists |
| | 51.1.7 | CustomWebResolver – Combo boxes |
| | 51.1.8 | CustomWebResolver – TabPanel and Accordion |
| | 51.1.9 | Example for "CarConfigurator Web" demo |
| 51.2 | Special support for various web frameworks |
| | 51.2.1 | Web framework resolver concepts |
| | 51.2.2 | Setting unique IDs |
| 51.3 | Browser connection mode |
| | 51.3.1 | QF-Driver connection mode |
5.3+ | | 51.3.2 | CDP-Driver connection mode |
| | 51.3.3 | WebDriver in general |
| | 51.3.4 | Known limitations of the WebDriver mode |
| 51.4 | Web – Pseudo Attributes |
| 51.5 | Accessing hidden fields on a web page |
| 51.6 | WebDriver with Safari |
| Controlling native Windows applications via the UIAuto module -
without the QF-Test win engine |
| 52.1 | Proceeding |
| | 52.1.1 | Starting the application |
| | 52.1.2 | Listing the GUI elements of a window |
| | 52.1.3 | Information on single GUI elements |
| | 52.1.4 | Identifiers for GUI elements |
| | 52.1.5 | Actions on GUI elements |
| 52.2 | Example |
| | 52.2.1 | Starting the application |
| | 52.2.2 | GUI element information |
| Controlling and testing native MacOS applications |
| 53.1 | Proceeding |
| | 53.1.1 | Starting the application |
| | 53.1.2 | Listing the GUI elements of a window |
| | 53.1.3 | Information on single GUI elements |
| | 53.1.4 | Identifiers for GUI elements |
| | 53.1.5 | Actions on GUI elements |
| Extension APIs |
| 54.1 | The resolvers module |
| | 54.1.1 | Usage |
| | 54.1.2 | Implementation |
| | 54.1.3 | addResolver |
| | 54.1.4 | removeResolver |
| | 54.1.5 | listNames |
| | 54.1.6 | Accessing 'Best label' |
3.1+ | | 54.1.7 |
The NameResolver Interface |
4.0+ | | 54.1.8 |
The GenericClassNameResolver Interface |
3.1+ | | 54.1.9 |
The ClassNameResolver Interface |
3.1+ | | 54.1.10 |
The FeatureResolver Interface |
| | 54.1.11 | The ExtraFeatureResolver Interface |
3.1+ | | 54.1.12 |
The ItemNameResolver Interface |
3.1+ | | 54.1.13 |
The ItemValueResolver Interface |
| | 54.1.14 | The TreeTableResolver Interface |
| | 54.1.15 | The InterestingParentResolver Interface |
4.1+ | | 54.1.16 |
The TooltipResolver Interface |
| | 54.1.17 | The IdResolver interface |
4.1+ | | 54.1.18 |
The EnabledResolver Interface |
4.1+ | | 54.1.19 |
The VisibilityResolver Interface |
4.1+ | | 54.1.20 |
The MainTextResolver Interface |
4.1+ | | 54.1.21 |
The WholeTextResolver Interface |
4.1+ | | 54.1.22 |
The BusyPaneResolver Interfaces |
4.1+ | | 54.1.23 |
The GlassPaneResolver Interfaces |
8.0+ | | 54.1.24 |
The TreeIndentationResolver Interface |
4.1+ | | 54.1.25 |
The EventSynchronizer Interface |
4.1+ | | 54.1.26 |
The BusyApplicationDetector Interface |
| | 54.1.27 | Matcher |
| | 54.1.28 | External Implementation |
| 54.2 | The ResolverRegistry |
3.1+ | 54.3 |
Implementing custom item types with the ItemResolver interface
|
| | 54.3.1 | ItemResolver concepts |
| | 54.3.2 | The ItemResolver interface |
| | 54.3.3 | The class SubItemIndex |
| | 54.3.4 | The ItemRegistry |
| | 54.3.5 | Default item representations |
3.1+ | 54.4 |
Implementing custom checks with the Checker interface
|
| | 54.4.1 | The Checker interface |
| | 54.4.2 | The class Pair |
| | 54.4.3 |
The CheckType interface and its implementation
DefaultCheckType
|
| | 54.4.4 | The class CheckDataType |
| | 54.4.5 | The class CheckData and its subclasses |
| | 54.4.6 | The CheckerRegistry |
| | 54.4.7 | Custom checker example |
3.2+ | 54.5 |
Working with the Eclipse Graphical Editing Framework (GEF)
|
| | 54.5.1 | Recording GEF items |
| | 54.5.2 | Implementing a GEF ItemNameResolver2 |
| | 54.5.3 | Implementing a GEF ItemValueResolver2 |
3.1+ | 54.6 | Test run listeners |
| | 54.6.1 | The TestRunListener interface |
| | 54.6.2 | The class TestRunEvent |
| | 54.6.3 | The class TestSuiteNode |
4.0.3+ | 54.7 | ResetListener |
| 54.8 | DOM processors |
| | 54.8.1 | The DOMProcessor interface |
| | 54.8.2 | The DOMProcessorRegistry |
| | 54.8.3 | Error handling |
3.0+ | 54.9 | Image API extensions |
| | 54.9.1 | The ImageRep class |
| | 54.9.2 | The ImageComparator interface |
| | 54.9.3 | The ImageRepDrawer class |
| 54.10 | Pseudo DOM API |
| | 54.10.1 | The abstract Node class |
| | 54.10.2 | The DocumentNode class |
| | 54.10.3 | The FrameNode class |
| | 54.10.4 | The DomNode class |
| | 54.10.5 | The DialogNode class |
4.1+ | 54.11 | WebDriver SUT API |
| | 54.11.1 | The WebDriverConnection class |
5.0+ | 54.12 | Windows Control API |
| | 54.12.1 | The WinControl class |
| Daemon mode |
| 55.1 | Daemon concepts |
| 55.2 | Daemon API |
| | 55.2.1 | The DaemonLocator |
| | 55.2.2 | The Daemon |
| | 55.2.3 | The TestRunDaemon |
| | 55.2.4 | The DaemonRunContext |
3.1+ | | 55.2.5 | The DaemonTestRunListener |
3.5+ | 55.3 | Daemon security considerations |
| | 55.3.1 | Creating your own keystore |
| | 55.3.2 | Specifying the keystore |
| | 55.3.3 | Specifying the keystore on the client side |
| The Procedure Builder definition file |
| 56.1 | Placeholders |
4.1.3+ | | 56.1.1 | Fallback values for placeholders |
| 56.2 | Conditions for Package and Procedure Definition |
| 56.3 | Interpretation of the Component Hierarchy |
3.4+ | 56.4 | Details about the @CONDITION tag |
| The ManualStepDialog |
| 57.1 | The ManualStepDialog API |
3.1+
| Details about transforming nodes |
| 58.1 | Introduction |
| 58.2 | Transformation with type changes |
| 58.3 | Additional transformations below the Extras node |
| | 58.3.1 | Transformations without side-effects |
| | 58.3.2 | Transformations with side-effects |
3.3+
| Details about the algorithm for image comparison |
| 59.1 | Introduction |
| 59.2 | Description of algorithms |
| | 59.2.1 | Classic image check |
| | 59.2.2 | Pixel-based identity check |
| | 59.2.3 | Pixel-based similarity check |
| | 59.2.4 | Block-based identity check |
| | 59.2.5 | Block-based similarity check |
| | 59.2.6 | Histogram check |
| | 59.2.7 | Analysis with Discrete Cosine Transformation |
| | 59.2.8 | Block-based analysis with Discrete Cosine Transformation |
| | 59.2.9 | Bilinear Filter |
| 59.3 | Description of special functions |
| | 59.3.1 | Image-in-image search |
3.2+
| Result lists |
| 60.1 | Introduction |
| 60.2 | Specific list actions |
| | 60.2.1 | All types of lists |
| | 60.2.2 | Replacing |
| | 60.2.3 | Error list |
3.5+ | 60.3 | Exporting and loading results |
4.0+
| Generic classes |
| 61.1 | Accordion |
| 61.2 | BusyPane |
| 61.3 | Button |
| 61.4 | Calendar |
| 61.5 | CheckBox |
| 61.6 | Closer |
| 61.7 | ColorPicker |
| 61.8 | ComboBox |
| 61.9 | Divider |
| 61.10 | Expander |
| 61.11 | FileChooser |
| 61.12 | Graphics |
| 61.13 | Icon |
| 61.14 | Indicator |
| 61.15 | Item |
| 61.16 | Label |
| 61.17 | Link |
| 61.18 | List |
| 61.19 | LoadingComponent |
| 61.20 | Maximizer |
| 61.21 | Menu |
| 61.22 | MenuItem |
| 61.23 | Minimizer |
| 61.24 | ModalOverlay |
| 61.25 | Panel |
| 61.26 | Popup |
| 61.27 | ProgressBar |
| 61.28 | RadioButton |
| 61.29 | Restore |
| 61.30 | ScrollBar |
| 61.31 | Separator |
| 61.32 | Sizer |
| 61.33 | Slider |
| 61.34 | Spacer |
| 61.35 | Spinner |
| 61.36 | SplitPanel |
| 61.37 | Table |
| 61.38 | TableCell |
| 61.39 | TableFooter |
| 61.40 | TableHeader |
| 61.41 | TableHeaderCell |
| 61.42 | TableRow |
| 61.43 | TabPanel |
| 61.44 | Text |
| 61.45 | TextArea |
| 61.46 | TextField |
| 61.47 | Thumb |
| 61.48 | ToggleButton |
| 61.49 | ToolBar |
| 61.50 | ToolBarItem |
| 61.51 | ToolTip |
| 61.52 | Tree |
| 61.53 | TreeNode |
| 61.54 | TreeTable |
| 61.55 | Window |
| Doctags |
| 62.1 | Doctags for reporting and documentation |
4.2+ | | 62.1.1 | @noreport Doctag |
| 62.2 | Doctags for Robot Framework |
| 62.3 | Doctags for test execution |
| 62.4 | Doctags for Editing |
| 62.5 | Doctags influencing the procedure builder |
| FAQ - Frequently Asked Questions |
| Release notes |
| B.1 | QF-Test version 9.0 |
| | B.1.1 | Changes that can affect test execution |
| | B.1.2 | Version 9.0.0 - February 20, 2025 |
| B.2 | QF-Test version 8.0 |
| | B.2.1 | Version 8.0.2 - December 05, 2024 |
| | B.2.2 | Version 8.0.1 - September 11, 2024 |
| | B.2.3 | Changes that can affect test execution |
| | B.2.4 | Version 8.0.0 - August 8, 2024 |
| B.3 | QF-Test version 7.1 |
| | B.3.1 | Version 7.1.5 - July 16, 2024 |
| | B.3.2 | Version 7.1.4 - June 12, 2024 |
| | B.3.3 | Version 7.1.3 - April 24, 2024 |
| | B.3.4 | Version 7.1.2 - March 14, 2024 |
| | B.3.5 | Version 7.1.1 - February 27, 2024 |
| | B.3.6 | Changes that can affect test execution |
| | B.3.7 | Version 7.1.0 - February 20, 2024 |
| B.4 | QF-Test version 7.0 |
| | B.4.1 | Version 7.0.8 - December 5, 2023 |
| | B.4.2 | Version 7.0.7 - October 11, 2023 |
| | B.4.3 | Version 7.0.6 - September 29, 2023 |
| | B.4.4 | Version 7.0.5 - September 20, 2023 |
| | B.4.5 | Version 7.0.4 - August 30, 2023 |
| | B.4.6 | Version 7.0.3 - Juli 13, 2023 |
| | B.4.7 | Version 7.0.2 - June 22, 2023 |
| | B.4.8 | Version 7.0.1 - May 31, 2023 |
| | B.4.9 | Changes that can affect test execution |
| | B.4.10 | Version 7.0.0 - April 27, 2023 |
| B.5 | QF-Test version 6.0 |
| | B.5.1 | Version 6.0.5 - March 15, 2023 |
| | B.5.2 | Version 6.0.4 - November 29, 2022 |
| | B.5.3 | Version 6.0.3 - September 6, 2022 |
| | B.5.4 | Version 6.0.2 - July 20, 2022 |
| | B.5.5 | Version 6.0.1 - June 9, 2022 |
| | B.5.6 | Changes that can affect test execution |
| | B.5.7 | Version 6.0.0 - May 17, 2022 |
| B.6 | QF-Test Version 5.4 |
| | B.6.1 | Version 5.4.3 - March 11, 2022 |
| | B.6.2 | Version 5.4.2 - February 18, 2022 |
| | B.6.3 | Version 5.4.1 - January 20, 2022 |
| | B.6.4 | Changes that can affect test execution |
| | B.6.5 | Version 5.4.0 - December 15, 2021 |
| B.7 | QF-Test Version 5.3 |
| | B.7.1 | Version 5.3.4 - September 30, 2021 |
| | B.7.2 | Version 5.3.3 - September 14, 2021 |
| | B.7.3 | Version 5.3.2 - July 21, 2021 |
| | B.7.4 | Version 5.3.1 - June 15, 2021 |
| | B.7.5 | Changes that can affect test execution |
| | B.7.6 | Version 5.3.0 - May 20, 2021 |
| B.8 | QF-Test version 5.2 |
| | B.8.1 | Version 5.2.3 - March 9, 2021 |
| | B.8.2 | Version 5.2.2 - February 12, 2021 |
| | B.8.3 | Version 5.2.1 - December 3, 2020 |
| | B.8.4 | Changes that can affect test execution |
| | B.8.5 | Version 5.2.0 - November 10, 2020 |
| B.9 |
QF-Test version 5.1
|
| | B.9.1 |
Version 5.1.2 - September 15, 2020
|
| | B.9.2 |
Version 5.1.1 - August 26, 2020
|
| | B.9.3 | Changes that can affect test execution |
| | B.9.4 |
Version 5.1.0 - July 8, 2020
|
| B.10 |
QF-Test version 5.0
|
| | B.10.1 |
Version 5.0.3 - June 17, 2020
|
| | B.10.2 |
Version 5.0.2 - May 5, 2020
|
| | B.10.3 |
Version 5.0.1 - March 2, 2020
|
| | B.10.4 | Main new features in version 5 |
| | B.10.5 |
Version 5.0.0 - February 6, 2020
|
| Keyboard shortcuts |
| C.1 | Navigation and editing |
| C.2 | UI Inspector |
| C.3 | Record and replay functions |
| C.4 | Keyboard helper |
| Glossary |
| Privacy |
| E.1 | Server data for version query |
| E.2 | Sending support requests from within QF-Test |
| E.3 | Context Information for Online Manual |
| E.4 | Request Data on WebDriver Download |
| E.5 | Client data in QF-Test log files |
| Third party software |
| List of figures |
| List of tables |