Testing Modules

Comprehensive testing modules for web, mobile, accessibility, performance, and messaging systems.

🎭 Browser Testing (BrowserManager)

Purpose: Manage Puppeteer browser instances for web automation testing.

Features

  • Automatic browser lifecycle management with @browser tag
  • Configurable viewport sizes and browser arguments
  • Basic authentication support
  • Cookie consent handling
  • Screenshot capture on test failure

Configuration

{
  "browserOptions": {
    "args": ["--no-sandbox", "--disable-setuid-sandbox"],
    "viewport": {
      "default": { "width": 1920, "height": 1080 },
      "mobile": { "width": 375, "height": 667 }
    }
  },
  "basicAuth": {
    "authUser": "username",
    "authPass": "password"
  }
}

Usage

const { BrowserManager } = require('@cuppet/core');

const browserManager = new BrowserManager(viewport, args, credentials);
await browserManager.initialize();

// Access browser and page
const browser = browserManager.browser;
const page = browserManager.page;

// Cleanup
await browserManager.stop();

📱 Appium Testing (AppiumManager)

Purpose: Mobile app testing for iOS and Android using Appium.

Features

  • Automatic Appium session management with @appium tag
  • Support for iOS and Android platforms
  • Configurable capabilities and device settings
  • Element interaction and gestures
  • Screenshot capture on failure

Configuration

{
  "appiumCapabilities": {
    "platformName": "Android",
    "deviceName": "emulator-5554",
    "app": "/path/to/app.apk",
    "automationName": "UiAutomator2"
  }
}

Usage

const { AppiumManager } = require('@cuppet/core');

const appiumManager = new AppiumManager(capabilities);
await appiumManager.initialize();

// Access driver
const driver = appiumManager.appiumDriver;

// Cleanup
await appiumManager.stop();

♿ Accessibility Testing

Purpose: Automated accessibility testing using Pa11y integration.

Features

  • WCAG 2.1 compliance testing (Level A, AA, AAA)
  • Automated accessibility audits
  • Detailed violation reports
  • HTML report generation
  • Integration with CI/CD pipelines

Usage

@accessibility
Scenario: Check homepage accessibility
  Given I go to "/"
  When I run accessibility tests
  Then there should be no accessibility violations

Configuration

{
  "accessibility": {
    "standard": "WCAG2AA",
    "runners": ["axe", "htmlcs"],
    "ignore": ["color-contrast"]
  }
}

🚀 Lighthouse Performance Testing

Purpose: Google Lighthouse integration for performance, SEO, and best practices auditing.

Features

  • Performance metrics (FCP, LCP, TTI, CLS)
  • SEO auditing
  • Best practices validation
  • PWA compliance checking
  • JSON and HTML report generation

Usage

Scenario: Check page performance
  Given I go to "/"
  When I run Lighthouse audit
  Then the performance score should be above 90
  And the accessibility score should be above 90

Configuration

{
  "lighthouse": {
    "categories": ["performance", "accessibility", "seo"],
    "formFactor": "desktop",
    "throttling": "simulated3G"
  }
}

👁️ Visual Regression Testing

Purpose: BackstopJS integration for visual regression testing and screenshot comparison.

Features

  • Automated screenshot comparison
  • Baseline image management
  • Responsive testing across viewports
  • Interactive HTML reports
  • Selective element testing

Usage

# Create baseline
npm run backstop:reference

# Run visual tests
npm run backstop:test

# Approve changes
npm run backstop:approve

Configuration

{
  "backstop": {
    "viewports": [
      { "name": "phone", "width": 375, "height": 667 },
      { "name": "tablet", "width": 1024, "height": 768 },
      { "name": "desktop", "width": 1920, "height": 1080 }
    ],
    "scenarios": [
      {
        "label": "Homepage",
        "url": "http://localhost:3000",
        "selectors": ["document"]
      }
    ]
  }
}

📡 MQTT Testing (MqttManager)

Purpose: IoT and message broker testing with MQTT protocol support.

Features

  • Automatic connection management with @mqtt tag
  • Topic subscriptions with wildcard support
  • Message publishing (text and JSON)
  • QoS levels (0, 1, 2)
  • Message validation and buffering

→ View Complete MQTT Testing Documentation

🔄 Kafka Testing (KafkaManager)

Purpose: Event-driven architecture testing with Apache Kafka streaming platform.

Features

  • Automatic connection management with @kafka tag
  • Topic subscriptions (single and multiple)
  • Message publishing with keys
  • JSON message validation
  • SASL authentication and SSL/TLS support

→ View Complete Kafka Testing Documentation

↑ Back to Top