Open-Source Testing Framework

API Test Automation Framework

Data-driven API testing with JSON schema validation, multi-environment support, and automated CI/CD reporting.

Jest Node.js GitHub Actions JSON Schema

Architecture Overview

A modular pipeline that drives data through validation, execution, and reporting stages.

Test Specs (data-driven)
Test Runner (Node.js)
Reports (JUnit / HTML)
Schema Validator | Fixture Loader | Config Manager

Key Features

Everything you need for robust, maintainable API test automation.

Data-Driven Tests

Parameterized test cases loaded from JSON fixtures, enabling comprehensive coverage with minimal code duplication.

JSON Schema Validation

API contract enforcement with detailed field-level error reporting, ensuring every response matches its expected shape.

Multi-Environment

Automatic switching between staging and production configurations with environment-specific variables and base URLs.

Performance Benchmarking

Response time thresholds per endpoint category, flagging regressions before they reach production.

CI/CD Integration

GitHub Actions pipeline with JUnit XML output, automatic test gating, and artifact publishing for every pull request.

Test Migration

Automated test case migration across environments, keeping fixtures and expectations in sync as APIs evolve.

Code Highlight

A concise, data-driven test suite with built-in schema validation.

tests/users.test.js
describe('POST /users — Valid Cases', () => {
  test.each(validUsers.testCases)(
    '$id: $name',
    async (testCase) => {
      const response = await client.post('/users', testCase.input);
      expect(response.status).toBe(testCase.expected.status);

      const schemaResult = validator.validate(response.data, 'user');
      expect(schemaResult.valid).toBe(true);
    }
  );
});

Pipeline Stages

Automated end-to-end flow from test execution to consolidated reporting.

1 Staging Tests
2 Production Tests
3 Report Aggregation

Latest Test Run

Last run: April 12, 2026 • Environment: local (mock server)

46
Total Tests
46
Passed
0
Failed
1.59s
Duration
Pass Rate
100%
Authentication Endpoints 10 tests · all passed
  • returns valid token with correct credentials42ms
  • responds within performance threshold31ms
  • returns 401 for invalid password5ms
  • returns 401 for nonexistent user4ms
  • returns 400 when email is missing2ms
  • returns 400 when password is missing3ms
  • rate limits excessive attempts34ms
  • returns new token with valid refresh3ms
  • responds within threshold3ms
  • invalidates token on logout6ms
Users API 22 tests · all passed
  • TC-001: Standard user creation12ms
  • TC-002: Admin user creation5ms
  • TC-003: User with minimal fields6ms
  • EC-001: Empty email5ms
  • EC-002: Invalid email format3ms
  • EC-003: Name exceeds max length3ms
  • EC-004: Invalid role value4ms
  • EC-005: Missing required name field2ms
  • EC-006: SQL injection attempt in name16ms
  • EC-007: XSS attempt in name7ms
  • returns paginated list3ms
  • all users in list match schema4ms
  • responds within performance threshold3ms
  • supports search filtering4ms
  • returns empty array for no matches3ms
  • returns user by ID4ms
  • returns 404 for nonexistent ID2ms
  • responds within threshold3ms
  • updates user fields4ms
  • returns 404 for nonexistent user update2ms
  • deletes user successfully5ms
  • returns 404 for already-deleted user1ms
Orders API 14 tests · all passed
  • creates order with valid items22ms
  • rejects order with empty items11ms
  • rejects order with negative quantity6ms
  • rejects order with zero price9ms
  • creation responds within threshold12ms
  • draft → submitted11ms
  • submitted → processing11ms
  • processing → completed8ms
  • completed orders cannot be modified7ms
  • draft orders can be cancelled15ms
  • submitted orders can be cancelled21ms
  • returns paginated order list9ms
  • filters by status7ms
  • responds within threshold7ms