Skip to content

Connectors

The Connectors screen (route /connectors) is the single place where you wire Testver into the outside world. On its own, Testver can author and run tests; connectors are what let it run those tests somewhere else (a cloud grid, a real phone on your desk, a browser on your own laptop) and tell someone about the results (Slack, Teams, email) or file the bugs it finds (JIRA).

Think of it like the back of a TV or an AV receiver. The TV works by itself, but the row of sockets on the back — HDMI, antenna, speakers, network — is what turns it into the centre of your living room. The Connectors screen is that row of sockets. Each card is one socket: plug a cable in (enter credentials), test that it carries a signal (Test Connection), and from then on that capability lights up everywhere else in Testver.

This guide is written for the person setting Testver up for a team, and for any tester who needs to add a new integration. No prior knowledge of Appium, ADB, webhooks, or SMTP is assumed — every field is explained in plain language, and where a step happens outside Testver (for example creating a Slack webhook) the on-screen instructions are reproduced here.

  • QA leads / admins configuring shared cloud grids and notification channels for the whole team.
  • Testers plugging in a personal phone, running on their own browser, or connecting a JIRA project.
  • Anyone troubleshooting a connector that shows an Error badge or won’t pass its connection test.

These terms appear throughout the screen and this guide. Skim them once and the rest reads easily.

TermWhat it means in Testver
ConnectorAny single integration card on this page — a cloud grid, a tracker, a notification channel, your local browser, or your local devices.
Cloud grid (cloud testing provider)A hosted farm of real browsers and devices you rent by the minute — BrowserStack, LambdaTest, or Sauce Labs. Testver sends your test to the provider’s grid instead of running it locally.
Username / Access keyThe two-part credential a cloud grid gives you: a username (or account name) plus a secret Access Key (sometimes called an API token). Together they let Testver authenticate to the grid.
Hub / hub URLThe grid’s connection endpoint that a test framework points at to reach the cloud. Testver derives this for you once a provider is saved.
Local deviceA physical Android or iOS phone/tablet plugged into your machine over USB, driven through your own Appium server — no cloud minutes used.
AppiumThe open-source server that lets automation tools control real mobile devices. Testver’s Local Devices section checks that Appium and its drivers are installed and reachable.
ADB (Android Debug Bridge)The Android command-line tool Testver uses to see a connected Android phone. It must be on your system PATH or inside your Android SDK.
ANDROID_HOME / ANDROID_SDK_ROOTEnvironment variables that point Appium at your installed Android SDK so it can actually drive the device, not just see it.
Local Browser connectorA mode where the AI Assistance browser runs on your machine via a one-time token + CLI command, instead of on the Testver server.
Connection tokenA single-use secret (valid 24 hours) issued by the Local Browser card. You paste it into a CLI command on your machine to register your browser with the server.
Webhook URLA secret address a chat tool (Slack / Teams) gives you. Posting a message to that URL makes it appear in a channel — that is how Testver sends notifications.
SMTPThe standard protocol for sending email. The Email connector uses an SMTP host, port, and account to send reports and alerts.
Issue tracker (JIRA)Atlassian JIRA — connected for defect sync, issue tracking, and importing stories. Authenticated with an Atlassian email + API token.
Notify On eventsThe set of triggers (run complete, failure, defect created, quality gate) that decide when a notification connector fires.

A connector is not just a saved password — switching one on changes what you can do elsewhere in Testver. Configuring something here makes new options appear on other screens.

When you enable……this unlocks elsewhere
A cloud grid (BrowserStack / LambdaTest / Sauce Labs)That provider becomes a selectable execution target in the Runner and in Schedules — you can choose to run a test on the cloud grid instead of locally.
Local Devices (Appium)Your connected phones appear in the device picker in the Runner and Schedules alongside cloud devices, so you can run mobile tests on real hardware on your desk.
Local BrowserAI Assistance browser actions run on your machine — letting you test localhost / intranet / SSO-protected sites the server can’t reach.
A notification connector (Email / Slack / Teams)Test results and alerts are delivered to that channel based on the Notify On events you ticked.
JIRADefect sync, issue tracking, and story import become available using your default project key.
  1. Open Testver in your browser.
  2. In the left navigation, click Connectors (plug icon). The URL becomes /connectors.
  3. The page header reads Connectors with a plug icon and a N connected pill, plus the subtitle “Connect Testver to external tools and services”.
  4. Below the header, the page is organised into labelled sections — scroll to find the connector you want.

The page is one long scroll divided into clearly-titled bands. There are no tabs to click — everything is visible by scrolling. Here is the running order from top to bottom.

Section headingWhat it holdsCards
ConnectorsNotification + issue-tracker integrationsJIRA, Email (SMTP), Slack, MS Teams
Cloud Testing ProvidersRented cloud device/browser gridsBrowserStack, LambdaTest, Sauce Labs
Browser ExecutionRun the browser on your own machineLocal Browser
Local Mobile DevicesUSB-connected Android & iOS via AppiumLocal Devices (Appium)

Every card shares a visual grammar so you can read its state without clicking:

  • Icon + name at the top-left identify the connector.
  • A green Connected pill (check icon) means it’s configured and live. A red Error pill (X icon) means it’s configured but its last test failed. No pill means it’s not set up yet.
  • A short description line explains what the connector does.
  • Configured cards show a context line — e.g. the email address, JIRA base URL, Slack channel, or cloud username — and (for notification connectors) a Last used date.
  • The footer holds the action buttons. An unconfigured card shows a single blue Configure button; a configured one shows Settings/Edit, a Test (refresh icon) button, and a Remove (trash) button.

Cloud Testing Providers (BrowserStack, LambdaTest, Sauce Labs)

Section titled “Cloud Testing Providers (BrowserStack, LambdaTest, Sauce Labs)”

The Cloud Testing Providers section connects Testver to a hosted grid of real browsers and devices. Instead of running a test on the Testver server or your laptop, Testver sends it to the provider’s cloud, where it executes on their hardware and streams results and artifacts back. Three providers are supported, each with its own card:

ProviderWhat it offers
BrowserStackRun tests on real devices and browsers in the BrowserStack cloud grid.
LambdaTestCross-browser testing on the LambdaTest cloud platform.
Sauce LabsExecute tests at scale on the Sauce Labs cloud testing platform. (Adds a Region choice.)

Click Configure (or Edit on an already-saved card) to open the provider modal. The fields are the same for all three, with Sauce Labs adding a Region selector.

FieldWhat to enter
Enable [Provider] (checkbox)Tick to turn the connector on. Unticking saves the credentials but keeps the provider switched off, so it won’t appear as a run target.
UsernameYour account username for the grid (BrowserStack username, LambdaTest username, or Sauce Labs username). Required.
Access KeyYour secret access key / API token from the provider. Required. Click the eye icon to reveal what you typed. On a saved card the field shows a •••••••• placeholder — you only re-enter it if you want to change it.
Region (Sauce Labs only)Choose the data centre nearest you: US West (us-west-1) or EU Central (eu-central-1).
Default Build Name (optional)A label that groups your runs in the provider’s dashboard, e.g. testver-{date}. Leave blank to skip.
  1. Enter the Username and Access Key (and Region for Sauce Labs).
  2. Click Test Connection at the bottom-left of the modal.
  3. Wait for the spinner. A green banner with a check icon confirms success (and may add details); a red banner with an X icon shows the failure message.
  4. The Test Connection button is disabled until you’ve entered a username and an access key (or the provider is already configured), so you can’t test an empty form.
  1. After a successful test, click Save. A toast confirms e.g. “BrowserStack saved” and the card gains a green Connected pill plus a User: <username> line.
  2. To change anything later, click Edit on the card, adjust the fields, and Save again.
  3. To switch a provider off without deleting it, open it and untick Enable [Provider], then Save — the credentials stay but it stops counting as connected and won’t be offered as a run target.
  4. To delete it entirely, click the trash icon on the card. A Remove Cloud Provider confirmation warns that saved credentials will be deleted; click Remove to confirm.

Once a cloud provider is saved and enabled, it becomes a selectable execution target in the Runner and Schedules screens. You can then choose to run a test on that grid’s real browsers/devices instead of locally. Testver derives the provider’s hub URL automatically so the framework knows where to connect.

The Local Browser card (under Browser Execution) lets AI Assistance browser actions run on your machine instead of on the Testver server. You generate a one-time token, run a CLI command on your computer, and that command opens a Playwright browser locally and tunnels AI commands to it. This is useful for:

  • Testing localhost / intranet apps the server can’t reach.
  • Working with SSO-protected sites where you’re already logged in on your own machine.
  • Keeping browsing on your machine for privacy, and avoiding server-side resource cost.
  1. On the Local Browser card, click Generate Connection Token.
  2. The card reveals a CLI command under “Run this on your machine:”. Click the copy icon to copy it.
  3. Paste and run that command in a terminal on your own computer. It launches a local Playwright browser and registers it with the server.
  4. The card polls status every 5 seconds. Once your machine registers, the card flips to a green Connected pill and shows your Machine, OS, and the time you Connected.
  5. If nothing changes, click Refresh status to re-check immediately.

When connected, the card shows a red Disconnect button. Click it to detach your local browser from the server; the card returns to its un-connected state and you can generate a fresh token whenever you need to reconnect.

The key icon at the top-right of the Local Browser card opens the Local Browser Tokens modal. A small numeric badge on the icon shows how many tokens you currently have outstanding. Use this modal to audit and clean up tokens across all your machines.

Inside the modal each token is listed with a status, a masked prefix (e.g. a1b2c3…), when it was issued, and when it expires:

Token statusMeaning
activeA connector is currently connected using this token (shows “Connected from <machine>” when known). Green highlight.
pendingIssued but not yet used — the command hasn’t been run anywhere yet.
usedWas used, but the connector has since disconnected.
expiredPast its 24-hour lifetime and no longer usable. Dimmed red.
  1. Generate New Token (footer) issues another token without closing the modal — handy for adding a second machine. A banner shows the new command; copy it immediately because it won’t be shown again.
  2. Revoke next to any token, then Confirm revoke, removes it. If a connector is actively using that token it disconnects immediately.
  3. Close the modal with Close, the X, or the Esc key.

The Local Devices (Appium) section runs tests against USB-connected Android and iOS devices using your own Appium server. It uses no cloud minutes and gives the fastest feedback loop for active development. Rather than a form, it presents a live, self-checking readiness checklist: Testver detects what’s installed on your machine, shows a green / amber / red status for each requirement, and offers copy-ready install commands for anything missing.

The whole connector sits inside one collapsible shell headed Local Devices (Appium), with a status pill (Ready or Setup needed), a count of connected devices, an Enable toggle, and a Refresh button. Click the header to expand the checklist. The page auto-polls /api/mobile/local/status every 4 seconds, so plugging in a phone or starting Appium updates the display without a manual refresh.

  • The Enable toggle (top-right of the shell) turns the Local Devices connector on or off. A toast confirms “Local Devices enabled” / “disabled”.
  • The Refresh button (circular-arrow) forces an immediate re-detection — useful right after you install a tool or plug in a device.

Expanding the shell reveals a checklist of cards. Each shows a coloured status icon, the detected version (when present) or the reason it failed, and — when something is missing — a labelled command you can copy with one click. The checks are:

Checklist itemWhat it verifiesIf it fails
Appium serverThat an Appium server is reachable (default http://127.0.0.1:4723) and which drivers it has. Green hint shows version + drivers.Offers a copy-ready “Install + start Appium” command (npm install -g appium, install the uiautomator2 + xcuitest drivers, then appium).
AndroidTwo gates: (1) ADB is on PATH so Testver can see the device, and (2) ANDROID_HOME / ANDROID_SDK_ROOT points at a real SDK so Appium can drive it.Offers an “Install platform-tools (ADB)” command for your OS, and — if the SDK is missing/invalid — steps to install Android Studio and set ANDROID_HOME on Windows / macOS / Linux.
iOS (macOS only)That Xcode and libimobiledevice are installed. On non-Mac hosts this section explains iOS local testing isn’t available.Offers “Install Xcode” and “Install libimobiledevice + ios-deploy” commands; reminds you real-device iOS also needs a signed WebDriverAgent (with a link to the setup guide).

Inside the Android (and on Mac, iOS) group, once that platform is ready, Testver lists every device it can see over USB. Each row shows the device name, platform version, its serial, and a state badge:

Device badgeMeaning
ReadyConnected and authorised — usable for test runs.
UnauthorizedDetected but not trusted yet. Accept the RSA fingerprint prompt on the Android device (or tap Trust on iOS).
Other state (e.g. offline)The raw ADB/device state, shown verbatim, when the device isn’t fully connected.

If no device is plugged in, the list shows a hint: for Android, “Plug a device in via USB and enable USB debugging”; for iOS, “Plug a device in via USB and tap Trust on the prompt”.

The App launch mode card controls how the app starts at the beginning of each run on a connected device:

ModeBehaviour
Fresh start (clear data)Wipes app data before every run — starts from onboarding / logged-out, default settings.
Keep dataPreserves app data between runs — stays logged in, keeps settings. The app is still relaunched.

An Advanced — override tool paths expander lets you pin non-default locations when auto-detection isn’t enough. Each field has its own Save button (enabled only when you’ve changed the value), and saving triggers a fresh detection.

Path fieldWhen to set it
Appium URLOverride if you run Appium on a non-default port or host (default http://127.0.0.1:4723).
ADB path (Android)Set when multiple Android SDKs are installed and you want to pin a specific ADB. Otherwise auto-detected from PATH + $ANDROID_HOME.
iOS tools path (macOS only)Set when libimobiledevice / ios-deploy live outside PATH.

With Local Devices enabled and at least one device Ready, your physical phones appear in the device picker on the Runner and Schedules screens, alongside cloud devices — so you can target real hardware on your desk for mobile test runs.

The JIRA card (under Connectors) connects Testver to Atlassian JIRA Cloud for issue tracking, defect sync, and story import. Click Configure to open the connector modal.

FieldWhat to enter
Connection NameA friendly label for this connection (defaults to “JIRA Connection”).
JIRA Cloud URLYour Atlassian site base URL, e.g. https://yourcompany.atlassian.net.
Email (Atlassian Account)The email of the Atlassian account whose API token you’ll use, e.g. user@company.com.
API TokenAn Atlassian API token (looks like ATATT3xFf…). Use the Generate link beside the label to create one at id.atlassian.com. Click the eye icon to reveal it.
Default Project KeyThe project key new issues land in by default, e.g. PROJ.
  1. Fill in the fields and click Save (you must give it a Connection Name).
  2. Once saved, the modal’s Test Connection button becomes available — click it to verify the credentials. A green banner reads “Connection successful” (with the resolved user when available); a red banner shows the failure.
  3. Back on the page, a saved JIRA card shows its base URL, a green Connected pill (or red Error if the last test failed), Settings, a Test (refresh) button, and a Remove (trash) button.

The Email (SMTP) card sends test reports, failure alerts, and scheduled digests via email. Click Configure to open the modal.

FieldWhat to enter
Connection NameA label for this email connection (defaults to “Email (SMTP) Connection”).
ProviderPick a preset — Gmail, Outlook / Office 365, Yahoo, or Custom SMTP. Choosing a preset auto-fills the host and port.
SMTP HostThe mail server hostname. Auto-filled by the preset (e.g. smtp.gmail.com, smtp.office365.com, smtp.mail.yahoo.com); type your own for Custom SMTP.
PortThe SMTP port (preset default 587).
Email AddressThe account used to send, e.g. user@gmail.com.
Password / App PasswordThe account password — or, for Gmail, a Gmail App Password (a note in amber reminds you). Click the eye icon to reveal it.
From NameThe display name recipients see (e.g. “Testver Notifications”).

Below the credentials, the Notify On grid decides when this connector fires. Tick any combination (run-complete and failure are on by default):

EventFires when…
Test Run CompleteA test run finishes.
Test FailureCritical tests fail.
Defect CreatedA new defect is created.
Quality GateA quality gate passes or fails.
  1. Click Save to store the connector.
  2. Click Test Connection to verify the SMTP login.
  3. To prove end-to-end delivery, type an address into the Send test to… box and click Send — Testver dispatches a sample email and reports “Test notification sent successfully!” or the error.

The Slack card posts test results and alerts to a Slack channel via an incoming webhook. The modal includes a built-in how-to panel for creating the webhook.

  1. Go to api.slack.com/appsCreate New App.
  2. Enable Incoming Webhooks.
  3. Add it to your channel → copy the webhook URL.
FieldWhat to enter
Connection NameA label for this Slack connection.
Webhook URLThe incoming-webhook URL from Slack, e.g. https://hooks.slack.com/services/T…/B…/xxx. This is the secret that carries messages.
Channel (display only)The channel name to show in Testver’s UI, e.g. #qa-alerts. Cosmetic — the webhook already determines the real destination.
Bot NameThe name messages are posted under (defaults to “Testver”).
Notify On eventsSame four triggers as Email — tick which events should post to Slack.
  1. Click Save, then Test Connection to validate the webhook.
  2. Click Send Test Message to post a sample message into the channel and confirm it arrives.

JIRA, Email, Slack, and Teams cards share the same lifecycle controls once configured:

ControlWhereWhat it does
SettingsCard footerReopens the config modal to edit fields.
Test (refresh icon)Card footerRuns a connection test in place and shows a toast (“Connection successful!” or the error). Updates the card’s Connected/Error pill.
Remove (trash icon)Card footerOpens a Delete Connector confirmation warning that notifications will no longer be sent; click Delete to confirm.
Test ConnectionInside modal (after first save)Validates credentials; shows a green/red result banner.
Send Test / Send Test MessageInside modalSends a real sample notification (email to a typed address, or a message to Slack/Teams).
I want to…Do this
Run my tests on real cloud devicesUnder Cloud Testing Providers, Configure a provider, enter username + access key, Test Connection, tick Enable, Save. It then appears as a run target in Runner/Schedules.
Run tests on a phone on my deskExpand Local Devices (Appium), follow the checklist (install Appium + ADB/SDK), plug in the device via USB, toggle Enable. The device shows Ready and appears in the device picker.
Test a localhost / intranet siteOn the Local Browser card click Generate Connection Token, run the copied command on your machine; once Connected, AI browser actions run locally.
Send test results to SlackConfigure the Slack card with an incoming-webhook URL, tick the Notify On events, Save, then Send Test Message to confirm.
Email a report on every failureConfigure Email (SMTP), tick Test Failure (and others) under Notify On, Save, then Send a test to your address.
File bugs into JIRAConfigure the JIRA card with your Cloud URL, Atlassian email, API token, and default project key; Save and Test Connection.
Switch a cloud grid off without deleting itEdit the provider, untick Enable [Provider], Save — credentials are kept but it stops being a run target.
Connect a second machine’s browserOpen the key-icon Tokens modal, click Generate New Token, copy the command, run it on the other machine.
Revoke a leaked or stale tokenOpen the Tokens modal, click Revoke next to it, then Confirm revoke — any connector using it disconnects immediately.
Re-detect my mobile tools after installing oneClick the Refresh button in the Local Devices header (or just wait — it auto-polls every 4 seconds).
See how many connectors are liveRead the N connected pill next to the Connectors title — it counts active notification/tracker connectors plus enabled cloud providers.
  • Test before you trust. Always run Test Connection before saving a cloud grid or tracker — a green result now saves a failed run later.
  • Use app passwords, not real passwords, for Email (especially Gmail). Generate a dedicated app password so revoking it later doesn’t lock you out of your account.
  • Disable instead of delete when you only need a temporary pause — untick Enable on a cloud provider to keep its credentials for later.
  • Keep your token count tidy. You can hold at most 5 Local Browser tokens; revoke pending/expired ones so you never get blocked from generating a new one.
  • Set ANDROID_HOME once, then restart terminals. Most Android setup failures are stale environment variables in a still-running Appium process — open a fresh terminal after changing env vars.
  • Pick the right launch mode. Use Fresh start (clear data) for clean, repeatable Android runs; use Keep data when your test relies on being already logged in.
  • Name your connections clearly (Connection Name) when you run several of the same type — it makes them easy to tell apart later.
  • Use a Default Build Name like testver-{date} on cloud providers so your runs group neatly in the provider’s dashboard.
SymptomLikely cause / fix
Cloud provider Test Connection failsRe-check the username and access key (re-enter the key — it’s masked as •••••••• on saved cards). For Sauce Labs make sure the Region matches your account’s data centre.
A connector shows a red Error badgeIts last test failed. Open Settings, fix the credentials, and click Test again until it goes green.
Local Browser never turns ConnectedThe command must run on your own machine and the token must be unexpired/unused (24-hour, single-use). Generate a fresh token and re-run; click Refresh status.
”Generate New Token” is greyed outYou’ve hit the 5-token-per-account limit. Revoke an existing token in the Tokens modal to free a slot.
Android device not listed / shows UnauthorizedEnable USB debugging, and accept the RSA fingerprint prompt on the phone. If still missing, install platform-tools (ADB) via the checklist command.
Android “Setup needed” even though ADB worksANDROID_HOME / ANDROID_SDK_ROOT isn’t set or points at a non-SDK folder. Use the checklist commands to set it, then close and reopen every terminal (including Appium’s).
Appium shows not reachableStart Appium with the checklist’s “Install + start Appium” command; confirm it’s listening at http://127.0.0.1:4723 (override in Advanced if you use a different host/port).
iOS section says Requires macOSiOS local testing needs a Mac to sign WebDriverAgent. On Windows/Linux, use a cloud provider for iOS coverage instead.
Slack/Teams Send Test Message doesn’t appearThe webhook URL is wrong or the channel webhook was deleted. Recreate the incoming webhook and paste the new URL.
Email test bounces or won’t authenticateUse an App Password (Gmail/Outlook), verify the host/port match the provider, and confirm the sending address is correct.