A curated list of awesome resources, tools, libraries, and projects for Behave — BDD, Python style.
Behave is behavior-driven development (BDD), Python style. It uses tests written in a natural language style (Gherkin), backed up by Python code.
- Official Resources
- Formatters & Reporters
- Integrations
- Parallel Execution
- Tooling
- CI/CD Integrations
- IDE & Editor Support
- Learning Resources
- Community Projects & Examples
- Related Awesome Lists
- Behave - Main repository. BDD, Python style.
- Behave Documentation - Official documentation and tutorial.
- Behave Ecosystem - Official listing of ecosystem tools, IDE plugins, and editor support.
- Behave Examples & Tutorials - Progressive tutorials from first steps to advanced features.
- Behave on PyPI - Official PyPI package page.
- Behave Organization - GitHub organization hosting behave, behave-django, and behave.example.
Behave ships with the following formatters: json, json.pretty, plain, pretty, progress, progress2, progress3, rerun, sphinx.steps, steps, steps.bad, steps.catalog, steps.code, steps.doc, steps.usage, tags, tags.location.
Built-in reporters: junit (JUnit XML output), summary (test run summary).
See the official formatter docs for full details.
- allure-behave - Allure framework adapter for Behave. Generates rich HTML test reports with attachments, metadata, and test hierarchies.
- behave-cucumber-formatter - Cucumber JSON formatter for pipeline integration with Xray and other Cucumber-compatible tools.
- behave-html-formatter - Simple HTML formatter for Behave test reports.
- behave-html-pretty-formatter - Pretty HTML formatter inspired by jest-html-reporter. Supports embedded screenshots, pseudo steps, and configurable summaries.
- behave-modern-console-report - Real-time console report formatter with colors, progress indicators, and execution summaries for local development and CI/CD.
- behave-modern-file-reports - PDF, DOCX, and TXT report formatters for Behave. Customizable templates, executive summaries, embedded screenshots, and failed-only filters for stakeholders.
- behave-modern-html-report - Modern interactive HTML report formatter with zero external dependencies.
- behave-modern-json-report - Modern structured JSON report formatter with schema-versioned output and Cucumber JSON compatibility for CI/CD integrations.
- behave-modern-md-report - Markdown report formatter that generates GitHub-friendly execution reports with summaries and statistics.
- behave-modern-sheets-report - CSV and Excel (XLSX) report formatters for Behave. CSV with one row per scenario, Excel with multiple sheets (Summary, Details, Failures, Trends), conditional formatting, and auto-filters.
- behave-teamcity - Formatter for reporting Behave test results to JetBrains TeamCity CI via service messages.
- behave-django - Official Django integration for Behave. Provides a
behavemanagement command and test runner integration. - Flask Test Integration - Official guide for integrating Behave with Flask applications.
- Selenium + Behave - Common integration pattern using Selenium WebDriver with Behave step definitions.
- behave-restful - BDD framework for testing REST APIs on top of Behave. Provides Gherkin language extensions for HTTP requests and response validation.
- Requests + Behave - Pattern using the
requestslibrary within Behave step definitions for API testing.
- appium-python-bdd - BDD test examples with Appium and Behave for mobile automation.
- LambdaTest Behave + Appium - Run Behave and Appium tests on LambdaTest cloud devices.
- Applitools + Behave - Visual regression testing with Applitools, Selenium, and Behave.
- behave-parallel - Parallel execution support for Behave by feature or scenario using multiprocessing.
- behave-pool - Native parallel execution for Behave with multiprocessing, work queue, result aggregation,
@serialtag, and integration with behave-priority and behave-modern-* formatters. Zero dependencies. - BehaveX - Production-grade test orchestration wrapper for Behave with parallel execution, enterprise reporting, and scenario ordering support.
- behave-comments - Parser and extractor for comments and annotations in Behave
.featurefiles. Extract structured metadata from# @id REQ-001style annotations, convert comments to tags, and generate documentation. - behave-data - Random test data utilities for Behave. Faker integration in steps, data providers, dynamic Examples generation, Data Tables with generated data, reproducible seeds, locale support, and reusable templates.
- behave-doctor - Static analysis and diagnostics for Behave suites. Detects unused steps/tags, duplicate steps, tag coverage, feature/scenario complexity, and dependency graphs. Zero dependencies.
- behave-format - Opinionated formatter for Behave
.featurefiles. Like Black, but for Gherkin. - behave-gen - Scaffolding and code generation toolkit for Behave. Project init, step skeletons from .feature files, OpenAPI/Postman codegen, Cucumber migration. Zero dependencies.
- behave-kit - Swiss army knife for Behave. Soft assertions, context dump on failure, conditional skip decorators, environment management, typed context, parameter types, tag-based fixtures, scoped cleanup, and environment variable helpers. Zero dependencies.
- behave-lint - Fast, opinionated, extensible linter for Gherkin
.featurefiles and Behave test suites. - behave-model - Canonical object model for Behave projects with Gherkin v6 Rules, Tag Expression v2, and full Behave 1.3.x compatibility.
- behave-priority - Priority-based execution for Behave. Run critical scenarios first with
@priority(N)tags, fail-fast controls, and smoke-first mode. Zero dependencies. - behave-retry - Automatic retry for failed Behave scenarios with CLI flags, tag overrides, exception filtering, and flakiness stats. Zero dependencies.
- behave-runner - Unified CLI entry point for the Behave ecosystem. Subcommands for run, list, select, watch, lint, format, report, trace, steps, impact, generate, init, and doctor. Integrates all BehaveLib plugins as optional extras with graceful degradation.
- behave-steplib - Reusable step libraries for Behave. Share, discover and install step definitions across projects via entry points. Zero dependencies.
- behave-tables - Polished API for Behave Data Tables with
as_dicts(),as_models(),transpose(),to_csv(), andto_json(). Zero dependencies, type-safe. - behave-trace - Trace viewer and step-by-step debugger for Behave. Captures steps, screenshots, DOM snapshots, and logs. Visualizes them in a Playwright-inspired web viewer with timeline, filmstrip, per-step detail tabs, before/after DOM diff, and live progress updates. Zero runtime dependencies.
- Behave CI/CD Pipeline Guide - Comprehensive guide on integrating Behave into CI/CD pipelines (GitHub Actions, Tox, multi-environment testing).
- GitLab CI + Behave + Pytest - Complete CI/CD pipeline tutorial using Behave, pytest, pre-commit hooks, and GitLab CI.
- JUnit XML Reporter - Built-in
junitreporter for Jenkins and other CI systems that consume JUnit XML. - ParallelBehaveAllureFlow - Reusable GitHub Actions workflow for parallel Behave execution with Allure report generation and retry mechanism.
- Tox - Generic virtualenv management and test tool for running Behave across multiple Python environments in CI.
- Cucumber Official (VS Code) - Official VS Code extension for Cucumber with Gherkin and Behave support.
- Cucumber-Eclipse - Eclipse plugin with Gherkin editor support.
- cuke4vs - Visual Studio plugin with Gherkin editor support.
- PyCharm BDD Support - Built-in Behave and Gherkin support in PyCharm Professional edition.
- Behave Step Finder (Sublime Text) - Navigate to step definitions in Behave projects.
- Cucumber (Sublime Text) - Gherkin editor support with table formatting.
- Gherkin Editor - Online editor for writing
.featurefiles. - NP++ Gherkin (Notepad++) - Gherkin syntax highlighting for Notepad++.
- vim-behave - Vim plugin: port of vim-cucumber to Python Behave.
- Behave Tutorial - Official getting started guide covering feature files, step implementations, context, hooks, and tags.
- Complete Behave BDD Tutorial 2026 - Hands-on tutorial covering installation, project structure, hooks, fixtures, reporting, parallel execution, and Playwright integration.
- Behave BDD Testing Guide - Practical guide to BDD testing with Behave covering setup, feature files, step definitions, hooks, tags, and best practices.
- BDD Automation: Behave with Python - Behave with Selenium and Appium integration (Udemy).
- Behavior-driven Development (BDD) with Behave and Python - Full course covering Gherkin, Behave features, web testing with Selenium, and CI reporting (Pluralsight).
- Cucumber BDD with Python Behave and Selenium WebDriver 2024 - 19-hour course building a BDD framework with Selenium, API testing, and MySQL (Udemy).
- BDD in Action - BDD principles with examples across multiple languages including Python/Behave, by John Ferguson Smart.
- The Cucumber Book - Gherkin and BDD principles that apply directly to Behave, by Matt Wynne and Aslak Hellesøy.
- BDD with Python Behave - Community YouTube tutorials and conference talks on Behave.
- behave-gui - GUI front-end for Behave test execution.
- cookiecutter-example - Cookiecutter template for generating Behave BDD automation projects with Selenium, Allure, and configurable options.
- python-behave-examples - Repository with practical examples of using the Behave library in Python.
- Python-Behave-sample-project - Sample BDD automation project with Page Object Model pattern.
- Python_Selenium_BDD_Framework - Comprehensive framework with Selenium for UI, Requests for API, and BehaveX for parallel execution.
- try-behave - Try Behave directly in the browser using Pyodide, no installation required.
- Awesome BDD - General BDD ecosystem resources across all languages.
- Awesome Playwright - Curated list of Playwright tools and resources.
- Awesome Python - General curated list of Python frameworks, libraries, and software.
- Awesome Python Testing - Collection of Python testing resources and frameworks.
- Awesome Selenium - Curated list of Selenium tools and resources.
Contributions are welcome! Please read the contributing guidelines before submitting a pull request.