Skip to main content

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.

src/main/resources/properties/JIRA.properties
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.

custom.properties
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

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"

📚 BrowserStack documentation

LambdaTest

Run tests on 3,000+ browser and OS combinations with video recording, screenshots, and network logs.

custom.properties
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

📚 LambdaTest documentation


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();
tip

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:

  1. Start the Healenium backend (Docker):

    docker-compose -f healenium-docker-compose.yml up -d
  2. Configure SHAFT:

    custom.properties
    healenium_serverUrl=http://localhost:7878

When a locator breaks, Healenium:

  1. Catches the NoSuchElementException
  2. Finds the best-matching element using its ML model
  3. Heals the locator and continues the test
  4. Reports the healing in the Healenium dashboard

📚 Healenium documentation


What's Next?