Supercheck LogoSupercheck

Tests

Create and manage test scriptsEdit

Tests are reusable scripts that validate your application. Create browser, API, database, custom, or performance tests.

Tests List

Test Types

Browser Test

Playwright-based UI testing for user flows

API Test

HTTP and GraphQL endpoint validation

Database Test

SQL queries and data validation

Custom Test

Node.js scripts for any scenario

Performance Test

k6 load testing from multiple regions

Create Test

  1. Open Create and select a test type.
  2. Write a script in the Playground, choose a Template, or use AI Create for a starting point.
  3. Review the script, replace example URLs and data, then click Run.
  4. Review the result and Save the test.

After a run completes, review its result and available logs, screenshots, and traces. If it fails, update the script and run it again. You can save a draft before it passes; validate it before adding it to a job or synthetic monitor.

Scroll horizontally to view the full diagram.

Loading diagram...

AI Features

  • AI Create — Generate tests from plain English descriptions (beta for browser tests)
  • AI Fix — Review suggested changes for a failing test before applying them
  • Templates — Pre-built scripts for common scenarios

For browser tests, consider recording with the Supercheck Recorder Extension or Playwright Codegen first, then use AI to enhance.

See Playground for details.

Test Examples

import { expect, test } from '@playwright/test';

const APP_URL = 'https://demo.playwright.dev/todomvc';

test.describe('UI smoke test', () => {
  test('home page renders primary UI', async ({ page }) => {
    // Navigate to the application
    await page.goto(APP_URL);

    // Verify page title and input visibility
    await expect(page).toHaveTitle(/TodoMVC/);
    await expect(page.getByPlaceholder('What needs to be done?')).toBeVisible();

    // Perform interaction: Add a new task
    await page.getByPlaceholder('What needs to be done?').fill('Smoke task');
    await page.keyboard.press('Enter');
    
    // Verify the task was added to the list
    await expect(page.getByRole('listitem').first()).toContainText('Smoke task');
  });
});

📚 Playwright Writing Tests | Locators Guide

import { expect, test } from '@playwright/test';

const API_URL = 'https://jsonplaceholder.typicode.com';

test.describe('API health check', () => {
  test('health endpoint responds with expected payload', async ({ request }) => {
    // Send GET request
    const response = await request.get(API_URL + '/posts/1');

    // Basic status checks
    expect(response.ok()).toBeTruthy();
    expect(response.status()).toBe(200);
    expect(response.headers()['content-type']).toContain('application/json');

    // Validate JSON structure
    const body = await response.json();
    expect(body).toMatchObject({ id: 1 });
    expect(typeof body.title).toBe('string');
  });
});

📚 Playwright API Testing

import http from 'k6/http';
import { check, sleep } from 'k6';

export const options = {
  vus: 3,           // 3 concurrent users
  duration: '30s',  // Run for 30 seconds
  thresholds: {
    http_req_failed: ['rate<0.01'],      // Error rate < 1%
    http_req_duration: ['p(95)<800'],    // 95% of requests < 800ms
  },
};

export default function () {
  const baseUrl = 'https://test-api.k6.io';
  const response = http.get(baseUrl + '/public/crocodiles/1/');

  // Validate response
  check(response, {
    'status is 200': (res) => res.status === 200,
    'body is not empty': (res) => res.body && res.body.length > 0,
  });

  sleep(1); // Pause between requests
}

📚 k6 Documentation | k6 Thresholds

Tags

Organize tests with color-coded tags for easy filtering and categorization.

  • Create tags — Add custom tags with any of 15 available colors
  • Filter by tags — Quickly find tests by tag in the list view
  • Bulk operations — Apply or remove tags from multiple tests

Tags are project-scoped, so each project can have its own tagging system.

Features

  • Playground — Interactive editor with AI assistance
  • Variables — Project-scoped config, secrets, and file-backed test data (learn more)
  • Reports — Screenshots, traces, and logs
  • Tags — Color-coded organization and filtering
  • Execution locations — Run performance tests from the locations available to your project

Execution Limits

Playwright Tests: Individual test executions have a maximum runtime of 5 minutes. Tests exceeding this limit are automatically terminated.

K6 Performance Tests: Individual test executions have a maximum runtime of 60 minutes to accommodate load testing scenarios.

Running Multiple Tests

For running multiple tests together in a sequence, use Jobs. Jobs allow you to:

  • Group related tests into automated workflows
  • Schedule regular execution (hourly, daily, or custom cron)
  • Trigger from CI/CD pipelines
  • Get aggregated reports and notifications
  • Set up alerts for the entire test suite

Jobs are ideal for regression testing, smoke tests, and comprehensive validation of your application.

Learn More

On this page