Integrations Overview
ProvaLab.io integrates with your existing test frameworks so test results flow automatically into your dashboard -- no manual entry, no copy-paste, no context switching.
How It Works
Your Test Framework ProvaLab.io Plugin/Reporter ProvaLab.io Dashboard
+-----------------+ +------------------+ +---------------+
| Run your tests | ---> | Captures results | ---> | View results, |
| as usual | | Sends to ProvaLab.io API | | trends, and |
| | | Uploads artifacts| | analytics |
+-----------------+ +------------------+ +---------------+
- Install the ProvaLab.io plugin for your test framework
- Configure your API key and project ID
- Run your tests as usual
- View results in the ProvaLab.io dashboard -- they appear automatically
Prerequisites
Before setting up any integration, you need:
- A ProvaLab.io account with access to at least one project
- An API key (go to Settings > API Keys in the ProvaLab.io dashboard)
- Your Organization ID and Project ID (visible in the ProvaLab.io dashboard URL or under Settings > Organization)
Environment Variables
All ProvaLab.io integrations use the same core environment variables:
| Variable | Required | Description |
|---|---|---|
TMS_API_KEY | Yes | Your API key from Settings > API Keys |
TMS_API_URL | Yes | Your ProvaLab.io instance URL (e.g., https://tms.yourcompany.com) |
TMS_ORGANIZATION_ID | Yes | Your organization ID |
TMS_PROJECT_ID | Yes | The project to report results to |
TMS_ENVIRONMENT | No | Environment tag (e.g., staging, production) |
TMS_TEST_RUN_NAME | No | Custom name for the test run |
TMS_DISABLED | No | Set to true to disable ProvaLab.io reporting |
Open any project in ProvaLab.io. The URL looks like https://tms.yourcompany.com/org/3/projects/12 -- here 3 is your Organization ID and 12 is your Project ID.
Supported Frameworks
JavaScript / TypeScript
| Framework | Package | Guide |
|---|---|---|
| Playwright | tms-node-sdk | E2E testing with auto-screenshots |
| Jest | tms-node-sdk | Unit and integration testing |
| Cypress | tms-node-sdk | E2E testing with video capture |
| Mocha | tms-node-sdk | Flexible test framework |
| Vitest | tms-node-sdk | Fast Vite-native testing |
Python
| Framework | Package | Guide |
|---|---|---|
| pytest | tms-plugin | The most popular Python test framework |
| unittest | tms-plugin | Python's built-in test framework |
| Robot Framework | tms-plugin | Keyword-driven testing |
Java
| Framework | Package | Guide |
|---|---|---|
| JUnit 5 | com.tms:tms-java-sdk | Modern Java testing |
| TestNG | com.tms:tms-java-sdk | Enterprise Java testing |
.NET
| Framework | Package | Guide |
|---|---|---|
| NUnit | ProvaLab.io.SDK | .NET test framework |
| xUnit | ProvaLab.io.SDK | .NET test framework |
Third-Party Services
| Service | Guide |
|---|---|
| Jira | Sync test cases and auto-create bug tickets |
| GitHub | Link commits, PR checks, and GitHub Actions |
| Slack | Get notified on test runs, failures, and summaries |
| CI/CD Pipelines | GitHub Actions, Jenkins, and GitLab CI examples |
Test Case Mapping
All integrations support linking automated tests to ProvaLab.io test cases. This lets you track which test cases are covered by automation and see historical results per test case.
Option 1: Inline in test names -- Include [TMS-123] in your test title:
test('[TMS-123] should validate login', () => { ... });
@pytest.mark.tms_case_id(123)
def test_login():
...
@TMSTestCase(id = 123)
public void testLogin() { ... }
Option 2: Mapping file -- Create a test-case-mapping.json:
{
"should validate login": { "id": 123, "priority": "high" },
"handles errors": { "id": 456, "priority": "medium" }
}
Tests without a ProvaLab.io case ID mapping are still reported to ProvaLab.io -- they just won't be linked to a specific test case. You can map them later from the ProvaLab.io dashboard.
Need Help?
- Check the CI/CD guide for running TMS-integrated tests in your pipeline
- Visit the ProvaLab.io dashboard and go to Help > Documentation for API reference
- Contact your ProvaLab.io administrator if you need an API key or project access