# Gauge — Lightweight Cross-Platform Test Automation > Gauge is an open-source test automation framework by ThoughtWorks that uses Markdown for writing test specifications, supporting multiple languages and parallel execution. ## Install Save as a script file and run: # Gauge — Lightweight Cross-Platform Test Automation ## Quick Use ```bash # Install brew install gauge # or npm install -g @getgauge/cli # Initialize a project gauge init js # Run specs gauge run specs/ ``` ## Introduction Gauge is a test automation framework created by ThoughtWorks that takes a different approach to test specification. Tests are written in Markdown files, making them readable by non-technical stakeholders while remaining executable by developers through step implementations in their language of choice. ## What Gauge Does - Uses Markdown-based specifications for human-readable test documentation - Supports step implementations in Java, JavaScript, Python, Ruby, C#, and Go - Runs tests in parallel across specs and scenarios for faster feedback - Generates HTML reports with screenshots and failure details - Provides data-driven testing through table parameters in Markdown ## Architecture Overview Gauge separates test specifications from implementation. Markdown spec files contain scenarios with plain-text steps. The Gauge runner parses these specs and matches steps to implementations in a language runner plugin. Each language runner is a separate process communicating with the core via protocol buffers, enabling polyglot test projects. ## Self-Hosting & Configuration - Install the Gauge CLI via Homebrew, npm, Chocolatey, or direct download - Initialize projects with gauge init for your chosen language - Configure environment variables and properties in the env directory - Set parallel execution streams with the -n flag - Install IDE plugins for VS Code or IntelliJ for step autocomplete ## Key Features - Markdown specifications serve as both documentation and executable tests - Multi-language support through a plugin architecture - Parallel and multithreaded execution with configurable streams - Data-driven testing using inline tables and external CSV files - Extensible reporting with built-in HTML and XML output ## Comparison with Similar Tools - **Cucumber** — uses Gherkin syntax for BDD; Gauge uses free-form Markdown without strict Given/When/Then grammar - **Robot Framework** — keyword-driven testing with tabular syntax; Gauge uses natural Markdown with code-backed steps - **Playwright Test** — browser-focused testing; Gauge is protocol-agnostic and works with any test target - **Behave** — Python BDD framework tied to Gherkin; Gauge supports multiple languages and a more flexible spec format - **SpecFlow** — .NET BDD with Gherkin; Gauge provides similar capabilities with broader language support ## FAQ **Q: What languages can I write step implementations in?** A: Java, JavaScript/TypeScript, Python, Ruby, C#, and Go are supported through official language runner plugins. **Q: Can Gauge test web applications?** A: Yes, combine Gauge with browser automation libraries like Selenium or Taiko in your step implementations. **Q: How does parallel execution work?** A: Gauge distributes specs across multiple runner processes. Each stream gets its own language runner instance for isolation. **Q: Is Gauge suitable for API testing?** A: Yes, step implementations can use any HTTP client library to test APIs while keeping specs readable. ## Sources - https://github.com/getgauge/gauge - https://gauge.org --- Source: https://tokrepo.com/en/workflows/asset-5d93a65a Author: Script Depot