Cuppet Core

Advanced BDD Testing Framework based on Cucumber and Puppeteer

🥒 Cucumber
🎭 Puppeteer
📱 Appium
♿ Accessibility
🚀 Performance

Why Choose Cuppet Core?

🥒

BDD Framework

Built on Cucumber with comprehensive step definitions for behavior-driven development testing.

🎭

Web Automation

Powerful browser automation using Puppeteer with advanced element interaction capabilities.

📱

Mobile Testing

Complete mobile app testing support with Appium integration for iOS and Android.

🌐

API Testing

RESTful API testing with comprehensive validation and authentication support.

Accessibility Testing

Built-in accessibility testing with Pa11y integration and automated reporting.

🚀

Performance Testing

Google Lighthouse integration for automated performance testing and optimization.

👁️

Visual Regression

BackstopJS integration for visual regression testing and screenshot comparison.

🔧

Highly Configurable

Flexible configuration system supporting multiple environments and testing scenarios.

Quick Start

🚀 Choose Your Setup Method

📋 Template Repository (Recommended)

Complete project template with pre-configured setup, examples, and best practices.

Use Template Repository

📦 NPM Package

Add Cuppet Core to your existing project as a dependency.

yarn add @cuppet/core

Option 1: Using Template Repository (Fastest Setup)

The Cuppet Template Repository provides a complete project structure with:

# Clone or use as template from GitHub
git clone https://github.com/MiroslavRusev/cuppet.git my-test-project
cd my-test-project
yarn install

# Run example tests
yarn test exampleAll dev features/tests

Option 2: Adding to Existing Project

yarn add @cuppet/core @cucumber/cucumber config

Basic Configuration

// cucumber.js
module.exports = {
    default: {
        requireModule: ['@cuppet/core'],
        require: [
            'node_modules/@cuppet/core/features/app/stepDefinitions/*.js',
            'features/step-definitions/**/*.js',
        ],
        format: ['progress', 'json:reports/cucumber-report.json'],
        formatOptions: {
            snippetInterface: 'async-await'
        }
    },
};

Example Feature File

Feature: Example Test
  Scenario: Visit a page and check content
    Given I go to "/"
    Then I should see "Welcome"
    When I click on the element "button"
    Then I should see "Success"