Testing API updates
Pick the test surface that owns the behavior, then follow its full guide for exact Java APIs and lifecycle rules.
Playwright GUI backend
- What it does
- Runs SHAFT GUI actions through Microsoft Playwright.
- Why use it
- Choose Playwright while retaining SHAFT action and evidence APIs.
- Configure
- Install Playwright browsers and create a new SHAFT.GUI.Playwright session.
- Use it
- Navigate, act, validate, then quit the session.
GraphQL API actions
- What it does
- Sends GraphQL operations through SHAFT API actions.
- Why use it
- Test GraphQL queries and mutations with SHAFT validation and evidence.
- Configure
- Create the API service and provide the endpoint and operation payload.
- Use it
- Send the operation and validate the typed response.
Typed API responses and retry policies
- What it does
- Maps supported API responses to Java types and applies explicit retry policies.
- Why use it
- Keep response handling readable and retry only intended transient failures.
- Configure
- Choose the response type and documented retry policy for the request.
- Use it
- Send the request, deserialize the body, then validate its fields.
OpenAPI coverage
- What it does
- Compares exercised API operations with an OpenAPI description.
- Why use it
- See which documented endpoints and operations the suite did not cover.
- Configure
- Provide the OpenAPI document to the contract workflow.
- Use it
- Run the API suite and review the generated coverage output.
Network interception
- What it does
- Observes, modifies, or stubs supported browser network traffic.
- Why use it
- Test failure paths and isolate the UI from unstable dependencies.
- Configure
- Register the documented route or interception handler before navigation.
- Use it
- Exercise the page, assert the intercepted behavior, then remove the handler.
Authentication state and HAR replay
- What it does
- Reuses browser authentication storage and recorded HAR traffic in supported Playwright sessions.
- Why use it
- Skip repeated login setup and replay stable network fixtures.
- Configure
- Create an approved storage-state or HAR file without secrets committed to source.
- Use it
- Load it when creating the session, then run the focused journey.
UI and API contract replay
- What it does
- Records and checks UI and API interactions against reviewable contracts.
- Why use it
- Detect behavior drift without relying only on end-to-end assertions.
- Configure
- Capture a baseline contract through the documented workflow.
- Use it
- Replay it in CI and review intentional contract changes.
Cross-backend browser and mobile namespaces
- What it does
- Organizes supported Selenium, Playwright, and mobile actions under explicit SHAFT namespaces.
- Why use it
- Make the active backend clear while keeping familiar action patterns.
- Configure
- Create the driver type required by the test surface.
- Use it
- Call actions through that driver's browser, element, mobile, or validation namespaces.
Focused validations
- What it does
- Provides scoped browser, element, object, number, file, and API assertion builders.
- Why use it
- State the expected behavior through the validation surface that owns it.
- Configure
- Choose assertThat for hard stops or verifyThat for collected soft checks.
- Use it
- Build the matching validation and execute the test normally.
ARIA snapshots and visual baselines
- What it does
- Checks accessible structure and rendered appearance against reviewed baselines.
- Why use it
- Catch semantic and visual drift that functional assertions miss.
- Configure
- Create the initial approved snapshot or baseline in a stable environment.
- Use it
- Compare on later runs and review every intentional baseline update.
Flutter mobile API
- What it does
- Adds Flutter-aware actions for supported Appium sessions.
- Why use it
- Interact with Flutter controls through their native automation surface.
- Configure
- Install the required Appium Flutter driver and create the documented session.
- Use it
- Locate Flutter elements and call the supported mobile actions.
Android performance evidence
- What it does
- Collects supported Android performance measurements with the test evidence.
- Why use it
- Connect mobile performance observations to the journey that produced them.
- Configure
- Enable the documented Android performance collection for a compatible session.
- Use it
- Run the focused journey and inspect its attached measurements.
Image targets and OCR scroll preview
- What it does
- Uses published image targets, while recognized-text targets remain an unreleased shaft-ocr preview.
- Why use it
- Reach visible controls in image-heavy or native interfaces when a stable element locator is unavailable.
- Configure
- Add shaft-visual for published image targeting. Wait for a containing release before adding shaft-ocr.
- Use it
- Scroll to a stable image target now; evaluate OCR targeting only in an isolated preview environment.
Remote terminal, SFTP, SSH, and port forwarding
- What it does
- Runs supported remote file and shell operations, including SSH port forwarding.
- Why use it
- Include remote-system setup and checks in the test workflow.
- Configure
- Create the documented SSH terminal session with approved host credentials.
- Use it
- Open the connection, perform the bounded operation, validate its result, then close it.
Create a supported Playwright session explicitly:
SHAFT.GUI.Playwright driver = new SHAFT.GUI.Playwright();