This repository is cloned from the original Google WindowTester Pro code base.
This repository focuses on getting Java/Swing UI under test.
The part of Eclipse/SWT is out of scope and has been removed in the active branches.
WindowTester Pro is a UI test generation tool for testing Swing Java applications.
WindowTester Pro eliminates the need to manually create test cases to test GUIs by automating the
process of GUI testing.
Using WindowTester Pro, developers can easily create tests for every GUI they create.
The tests generated by WindowTester Pro are standard JUnit tests thus they
can be run within your IDE, or they can be automated to run using Maven.
- Write automated UI checks as code in JUnit style
- Check the state of any (Swing/AWT) UI elements using assertions
- Apply UI interaction like keystrokes, mouse clicks, and more
- JDK 21
- JUnit 6
Supported platforms:
- Windows
- Linux
- macOS
The runtime library provides base functionality so WindowTester can operate on a screen:
<dependency>
<groupId>io.github.r4fterman</groupId>
<artifactId>com.windowtester.runtime</artifactId>
<version>6.0.0</version>
</dependency>The runtime library provides base functionality so WindowTester can operate on Java/Swing:
<dependency>
<groupId>io.github.r4fterman</groupId>
<artifactId>com.windowtester.swing.runtime</artifactId>
<version>6.0.0</version>
</dependency>Abbot provides robot functionality to interact with the UI:
<dependency>
<groupId>io.github.r4fterman</groupId>
<artifactId>abbot</artifactId>
<version>6.0.0</version>
</dependency>The recorder library provides functionality to record a manual UI interaction and replay it automatically:
<dependency>
<groupId>io.github.r4fterman</groupId>
<artifactId>com.windowtester.swing.recorder</artifactId>
<version>6.0.0</version>
</dependency>This project uses the Google Java Style Guide.
Code formatting is automatically applied via spotless-maven-plugin in a local pre-commit hook.
➡️ Contributors don’t need to run anything manually – whenever you commit, your code will be formatted automatically before being pushed.
This project is licensed under the Eclipse License v1.0.