pytest-bdd
pytest-bdd is a free, open-source Python package for automating requirements tests with behavior-driven development.
What pytest-bdd is
pytest-bdd is a free, open-source Python package for automating requirements tests with behavior-driven development. It implements a subset of Gherkin and runs scenarios as pytest tests, without a separate test runner. Feature steps can reuse pytest fixtures through dependency injection, and step definitions can parse arguments with string, parse, cfparse, or regular-expression parsers. Its scenarios helper can bind scenarios from feature files or folders, including recursively discovered files. Scenario outlines support parameterized cases, and the documentation covers multiple tagged example tables. Step functions can receive Gherkin data tables as lists of rows and docstrings as strings. A documented browser-testing example uses pytest-splinter to provide a browser fixture. Installation uses `pip install pytest-bdd`. The package requires Python 3.10 or newer and lists Linux, macOS, and Windows among supported operating systems. PyPI lists version 9.0.0, released September 30, 2026, under the MIT License.
Good
- Runs scenarios as pytest tests
- Pytest fixtures can be reused in feature steps
- Supports parameterized scenario outlines
- Free package under the MIT License
Watch out
- Requires Python 3.10 or newer
- Implements only a subset of Gherkin
Who it suits
pytest-bdd suits Python teams using pytest who want to express requirements as Gherkin scenarios. It is relevant for projects that need fixture reuse, scenario outlines, or browser testing examples.
Verdict
pytest-bdd connects Gherkin-style scenarios with pytest fixtures and execution. Its Python requirement and subset of Gherkin support are key fit considerations.
Plans and prices
From pytest-bdd's own pricing page, checked 8 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| pytest-bdd | Free | MIT-licensed Python package · requires Python 3.10 or newer |
The facts
Each one read from pytest-bdd's own pages, with the date it was checked.
Where it runs
- Browser integration
- The documentation’s browser test example uses pytest-splinter to provide a browser fixture.checked 8 Oct 2026
What it does
- Fixture reuse
- Pytest fixtures can be reused in feature steps through dependency injection.checked 8 Oct 2026
- Gherkin data
- Step functions can receive Gherkin data tables as lists of rows and step docstrings as strings.checked 8 Oct 2026
- Installation
- The documentation gives `pip install pytest-bdd` as the installation command.checked 8 Oct 2026
- License
- PyPI lists the package as licensed under the MIT License.checked 8 Oct 2026
- Purpose
- pytest-bdd implements a subset of Gherkin to automate requirements testing and support behavior-driven development.checked 8 Oct 2026
- Pytest integration
- It runs scenarios as pytest tests without requiring a separate test runner.checked 8 Oct 2026
- Python requirement
- The package metadata requires Python 3.10 or newer.checked 8 Oct 2026
- Release
- PyPI lists version 9.0.0, released September 30, 2026.checked 8 Oct 2026
- Scenario discovery
- The scenarios helper can bind scenarios found in feature files or folders, including recursively discovered files in a folder.checked 8 Oct 2026
- Scenario outlines
- Scenario outlines support parameterized cases, and the documentation describes multiple tagged example tables.checked 8 Oct 2026
- Step arguments
- Step definitions can use string, parse, cfparse, or regular-expression parsers for step arguments.checked 8 Oct 2026
- Supported operating systems
- PyPI classifiers list macOS, Windows, and POSIX operating systems.checked 8 Oct 2026
Alternatives to pytest-bdd
- 1

Karate
Free planOpen sourceAPIExtensionLinuxmacOS8.2From $100 a year - 2
FitNesse
Free planWebAPILinuxmacOS6.7Free plan - 3

Reqnroll
Free planWindowsmacOSLinux6.7From €400 a year - 4
BddDotNet
Free planLinuxmacOSWindows6.6Free plan - 5
BDDX
Free planWeb6.6From $9.99 a month - 6

Cucumber Open
Free planAndroidAPILinuxmacOS6.6Free plan
