UI Automation

Playwright E2E Test Suite

A full end-to-end test suite for a demo e-commerce application built with Playwright. Covers critical user flows including registration, login, product browsing, cart management, and checkout. Integrated with GitHub Actions for automatic runs on PR.

What's covered

  • Page Object Model (POM) architecture
  • Fixtures and reusable test helpers
  • Data-driven tests with JSON fixtures
  • Visual regression testing
  • GitHub Actions CI pipeline
  • HTML test reports
  • Cross-browser (Chrome, Firefox, WebKit)

Tech Stack

Playwright TypeScript GitHub Actions HTML Reporter

Test Stats

47 Test Cases
100% Pass Rate
5.3s Avg Run Time
checkout.spec.ts

// Playwright E2E — Checkout Flow

test.describe('Checkout Flow', () => {

  test.beforeEach(async ({ page }) => {

    await loginAs(page, 'standard_user');

    await addToCart(page, 'Sauce Labs Backpack');

  });


  test('completes checkout successfully', async ({ page }) => {

    await page.getByTestId('checkout').click();

    await fillCheckoutForm(page, checkoutData.valid);

    await expect(page.locator('.complete-header'))

      .toContainText('Thank you');

  });

});

API Testing

Postman API Test Collection

A complete Postman collection covering a public REST API (JSONPlaceholder + Reqres.in). Demonstrates chained requests, environment variables, pre-request scripts, and automated assertions. Exported as a Newman CLI suite for CI integration.

What's covered

  • CRUD endpoint coverage (GET, POST, PUT, DELETE)
  • Auth token chaining (login → use token)
  • Schema validation with tv4 / Ajv
  • Environment-based config (dev/staging/prod)
  • Newman HTML reporter
  • GitHub Actions integration

Tech Stack

Postman Newman JavaScript GitHub Actions

Test Stats

86 Requests
142 Assertions
100% Pass Rate
newman-ci.yml

# GitHub Actions — Newman API Tests

name: API Tests

on: [push, pull_request]


jobs:

  test:

    runs-on: ubuntu-latest

    steps:

      - name: Run Newman

        run: |

          newman run collection.json \

            -e environments/staging.json \

            --reporters htmlextra

Performance Testing

k6 Load Testing Framework

A structured k6 performance testing project covering load, stress, and spike test scenarios. Results are pushed to InfluxDB and visualized in Grafana dashboards. Includes threshold definitions and automated pass/fail CI gates.

What's covered

  • Load / stress / spike test scenarios
  • SLA thresholds (p95 < 500ms)
  • InfluxDB + Grafana dashboards
  • Virtual user ramp-up configuration
  • HTML summary report generation
  • CI/CD pipeline with threshold gates

Tech Stack

k6 JavaScript InfluxDB Grafana Docker

Benchmark

500 VUs
p95 < 480ms
99.8% Success Rate
load-test.js

// k6 — Load Test Configuration

export const options = {

  stages: [

    { duration: '2m', target: 100 },

    { duration: '5m', target: 500 },

    { duration: '2m', target: 0 },

  ],

  thresholds: {

    'http_req_duration': ['p(95)<500'],

    'http_req_failed': ['rate<0.01'],

  },

};