mcpbeat

Gauge Skill

lambdatest/gauge-skill

> Generates Gauge test specifications in Markdown with step implementations in Java, Python, JS, or Ruby. ThoughtWorks' test automation framework. Use when user mentions "Gauge", "spec file", "## Scenario", "step "ThoughtWorks test".

7k tokens
context cost
the whole folder, loaded on every use
3
files
instructions only
0
copies elsewhere
how many repositories repackaged it
343
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/LambdaTest/agent-skills --skill gauge-skill

The instruction itself

12 sections, as written by the author

Gauge Automation Skill

Core Patterns

Specification (specs/login.spec)

# Login Feature

## Successful Login
* Navigate to login page
* Enter email "[email protected]"
* Enter password "password123"
* Click login button
* Verify dashboard is displayed
* Verify welcome message contains "Welcome"

## Invalid Credentials
* Navigate to login page
* Enter email "[email protected]"
* Enter password "wrong"
* Click login button
* Verify error message "Invalid credentials" is shown

## Login with multiple users
|email             |password |expected  |
|-----------------|---------|----------|
|[email protected]   |admin123 |Dashboard |
|[email protected]    |pass123  |Dashboard |
|[email protected]     |wrong    |Error     |

* Login as <email> with <password>
* Verify <expected> page is shown

Step Implementation — Java

import com.thoughtworks.gauge.Step;
import com.thoughtworks.gauge.Table;

public class LoginSteps {
    WebDriver driver;

    @Step("Navigate to login page")
    public void navigateToLogin() {
        driver.get("http://localhost:3000/login");
    }

    @Step("Enter email <email>")
    public void enterEmail(String email) {
        driver.findElement(By.id("email")).sendKeys(email);
    }

    @Step("Enter password <password>")
    public void enterPassword(String password) {
        driver.findElement(By.id("password")).sendKeys(password);
    }

    @Step("Click login button")
    public void clickLogin() {
        driver.findElement(By.cssSelector("button[type='submit']")).click();
    }

    @Step("Verify dashboard is displayed")
    public void verifyDashboard() {
        assertTrue(driver.getCurrentUrl().contains("/dashboard"));
    }
}

Step Implementation — Python

from getgauge.python import step
from selenium import webdriver

@step("Navigate to login page")
def navigate_to_login():
    driver.get("http://localhost:3000/login")

@step("Enter email <email>")
def enter_email(email):
    driver.find_element_by_id("email").send_keys(email)

@step("Click login button")
def click_login():
    driver.find_element_by_css_selector("button[type='submit']").click()

Concepts (Reusable Step Groups — specs/concepts/login.cpt)

# Login as <email> with <password>
* Navigate to login page
* Enter email <email>
* Enter password <password>
* Click login button

Setup: gauge install java (or python, js, ruby)

Init: gauge init java

Run: gauge run specs/ or gauge run specs/login.spec

Cloud Execution on TestMu AI

Set environment variables: LT_USERNAME, LT_ACCESS_KEY

// StepImplementation.java
ChromeOptions browserOptions = new ChromeOptions();
HashMap<String, Object> ltOptions = new HashMap<>();
ltOptions.put("user", System.getenv("LT_USERNAME"));
ltOptions.put("accessKey", System.getenv("LT_ACCESS_KEY"));
ltOptions.put("build", "Gauge Build");
ltOptions.put("platformName", "Windows 11");
ltOptions.put("video", true);
ltOptions.put("console", true);
browserOptions.setCapability("LT:Options", ltOptions);
Driver.setWebDriver(new RemoteWebDriver(
    new URL("https://hub.lambdatest.com/wd/hub"), browserOptions));

Tags: gauge run --tags "smoke" (use Tags: smoke in spec)

Deep Patterns

See reference/playbook.md for production-grade patterns:

| Section | What You Get |

|---------|-------------|

| §1 Project Setup | Installation, project structure, environment properties |

| §2 Spec Files | Markdown scenarios, data tables, concepts (.cpt) |

| §3 Step Implementations | Java steps, table-driven steps, assertions |

| §4 Hooks & Execution | BeforeSuite/Scenario/Step, screenshots, browser logs |

| §5 Page Objects | BasePage, concrete pages, usage in steps |

| §6 Data Management | ScenarioDataStore, SpecDataStore, CSV data |

| §7 LambdaTest Integration | Remote driver factory with LT:Options |

| §8 CI/CD Integration | GitHub Actions with parallel execution, XML reports |

| §9 Debugging Table | 12 common problems with causes and fixes |

| §10 Best Practices | 14-item Gauge testing checklist |

How to use it

Copy the folder

Take lambdatest/gauge-skill from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.