Features and modules
The required shaft-engine artifact provides the public facade and core test
automation capabilities. Three dependency-heavy integrations are optional.
Feature-to-module map
| Feature | Maven artifact |
|---|---|
| Web, mobile/Appium/Flutter, API, database, CLI, test data, accessibility, reporting, screenshots | shaft-engine |
| Direct BrowserStack WebDriver/Appium sessions and app upload | shaft-engine |
| BrowserStack SDK interception, multi-platform YAML, and SDK orchestration | shaft-browserstack |
| Appium Android/iOS driver-native recording | shaft-engine |
| Local non-headless desktop recording | shaft-video |
| Reference-image assertions and image-path touch actions | shaft-visual |
| Deterministic explainable web element recovery | shaft-heal |
Screenshot highlighting, animated GIFs, and compareImageFolders(...) | shaft-engine |
See the upgrade guide for the exact method boundaries.
Use the BOM to align the core engine with any optional modules you add:
pom.xml
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.github.shafthq</groupId>
<artifactId>shaft-bom</artifactId>
<version>${shaft.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>io.github.shafthq</groupId>
<artifactId>shaft-engine</artifactId>
</dependency>
<dependency>
<groupId>io.github.shafthq</groupId>
<artifactId>shaft-visual</artifactId>
</dependency>
</dependencies>
Smart Features
SHAFT provides a lot of out-of-the-box convenience features to facilitate your testing process and eliminate the need for boilerplate code.
All of SHAFT's smart features target the three pillars of successful test automation:
- Scalability: The ability to run tests on multiple devices and browsers in parallel.
- Reliability: The ability to run tests without flakiness and with detailed reporting.
- Maintainability: The ability to easily maintain and update tests as the application changes.
Scalability
| CI/CD integration | Cloud device farm integration | Headless testing | Parallel execution | Containerized execution |
|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | ✅ |
Reliability
| Automated synchronization | Logging | Reporting | Screenshots/Attachments | Video recording |
|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | Core for Appium/remote; shaft-video for local desktop |
Maintainability
| Fluent design | Locator builder | Smart locators | Native WebDriver access | Element/Browser validations builder | Visual validations |
|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | ✅ | shaft-visual |
Supported Platforms
Browsers
| Linux | macOS | Windows | Android | iOS | |
|---|---|---|---|---|---|
| Google Chrome | ✅ | ✅ | ✅ | ✅ | ✅ |
| Microsoft Edge | ✅ | ✅ | ✅ | _ | _ |
| Mozilla Firefox | ✅ | ✅ | ✅ | _ | _ |
| Apple Safari | _ | ✅ | _ | _ | ✅ |
Apps
| Android | iOS | Windows | |
|---|---|---|---|
| Native | ✅ | ✅ | N/A |
| Hybrid | ✅ | ✅ | N/A |
| Flutter | ✅ | ✅ | N/A |
| WPF | N/A | N/A | ✅ |
Other
| API | Database | CLI | JSON | YAML | Excel | Property | |
|---|---|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Test Orchestration
| TestNG | JUnit | Cucumber |
|---|---|---|
| ✅ | ✅ | ✅ |