Integrations
SHAFT connects with tools across the testing ecosystem. Below is every supported integration with its configuration.
Test Management
Jira
Report test execution results and automatically create bugs for failed tests.
jiraInteraction=true
jiraUrl=https://your-instance.atlassian.net
projectKey=PROJ
authorization=your-api-token
reportTestCasesExecution=true
ReportBugs=true
assignee=jira-user-id
📖 Step-by-step Jira setup guide →
Xray
Xray extends Jira with structured test management — test plans, test sets, and coverage reports.
How it works: SHAFT's Jira integration automatically feeds execution data into Xray. Annotate tests with Jira issue keys and Xray links them to test cases.
@Test(description = "PROJ-123: Verify login flow")
public void loginTest() { /* ... */ }
Xray picks up the issue key from the test description and maps the result.
Cloud Testing Platforms
BrowserStack
Execute tests on 3,000+ real device and browser combinations.
- Web Testing
- Mobile Testing
executionAddress=https://hub-cloud.browserstack.com/wd/hub
targetBrowserName=chrome
# Credentials (use environment variables in CI)
browserStack.user=${BROWSERSTACK_USERNAME}
browserStack.key=${BROWSERSTACK_ACCESS_KEY}
# Capabilities
browserStack.os=Windows
browserStack.osVersion=11
browserStack.browserVersion=latest
browserStack.projectName=My Project
browserStack.buildName=Build 1
executionAddress=https://hub-cloud.browserstack.com/wd/hub
targetPlatform=ANDROID
browserStack.user=${BROWSERSTACK_USERNAME}
browserStack.key=${BROWSERSTACK_ACCESS_KEY}
mobile_app=bs://your_uploaded_app_hash
mobile_deviceName=Google Pixel 7
mobile_platformVersion=13.0
Upload your app first:
curl -u "USERNAME:ACCESS_KEY" \
-X POST "https://api-cloud.browserstack.com/app-automate/upload" \
-F "file=@/path/to/app.apk"
LambdaTest
Run tests on 3,000+ browser and OS combinations with video recording, screenshots, and network logs.
- Web Testing
- Mobile Testing
executionAddress=https://hub.lambdatest.com/wd/hub
targetBrowserName=chrome
lambdaTest.user=${LAMBDATEST_USERNAME}
lambdaTest.accessKey=${LAMBDATEST_ACCESS_KEY}
lambdaTest.platformName=Windows 11
lambdaTest.browserVersion=latest
lambdaTest.project=My Project
lambdaTest.build=Build 1
executionAddress=https://mobile-hub.lambdatest.com/wd/hub
targetPlatform=ANDROID
lambdaTest.user=${LAMBDATEST_USERNAME}
lambdaTest.accessKey=${LAMBDATEST_ACCESS_KEY}
mobile_app=lt://your_uploaded_app_id
mobile_deviceName=Galaxy S23
mobile_platformVersion=13
Visual Testing & AI
OpenCV
SHAFT uses OpenCV for image-based element detection and visual validation. It ships with SHAFT — no separate installation required.
// Visual element identification (find element by image)
driver.element().click(
SHAFT.GUI.Locator.hasImage("expected-button.png")
);
// Visual validation — compare a screenshot to a baseline
driver.assertThat(locator)
.matchesReferenceImage()
.perform();
Store reference images in src/test/resources/dynamicObjectRepository/ for visual locators.
ShutterBug
Built-in screenshot engine for full-page captures, element-level screenshots, and image comparison. All screenshots are automatically attached to Allure reports.
// Screenshots happen automatically on validation points.
// To force a screenshot at any point:
driver.browser().captureScreenshot();
Healenium
Self-healing locators that automatically adapt when the UI changes. Healenium uses machine learning to find the most probable replacement when a locator fails.
Setup:
-
Start the Healenium backend (Docker):
docker-compose -f healenium-docker-compose.yml up -d -
Configure SHAFT:
custom.propertieshealenium_serverUrl=http://localhost:7878
When a locator breaks, Healenium:
- Catches the
NoSuchElementException - Finds the best-matching element using its ML model
- Heals the locator and continues the test
- Reports the healing in the Healenium dashboard