Playwright-BDD
Run BDD tests with Playwright runner
Tip
Try out Fix with AI button in HTML reporters
Why BDD?
In the era of AI, you can take BDD approach to the next level:
- 🤖 Generate: Drop business requirements into an AI chat and instantly get feature files.
- ✅ Validate: Refine the generated scenarios with AI or colleagues, collaborate in plain text instead of code.
- 🛠 Automate: Use existing steps to run the tests and prevent codebase growth.
Why Playwright Runner?
Both Playwright and CucumberJS have their own test runners. You can use the CucumberJS runner with Playwright as a library to execute BDD scenarios. This package offers an alternative: convert BDD scenarios into test files and run them directly with Playwright. You gain all the advantages of the Playwright runner:
- Automatic browser initialization and cleanup
- Auto-capture of screenshots, videos, and traces
- Parallelization with sharding
- Auto-waiting for page elements
- Built-in visual comparison testing
- Power of Playwright fixtures
- ...and more
Extras
Playwright-BDD extends Playwright with BDD capabilities, offering:
- 🔥 Advanced tagging by path and special tags
- 🎩 Step decorators for class methods
- 🎯 Scoped step definitions
- ✨ Exporting steps for AI
- ♻️ Re-usable step functions
Documentation
Check out the documentation website.
Examples
There are several examples in examples
folder and a separate fully working repo playwright-bdd-example.
Community
Feel free to get in touch:
- Open an issue on GitHub to report a bug or propose a new feature
- Join Playwright-BDD Discord server to connect with other developers, ask questions and share your BDD experience
Changelog
Check out the latest changes in the CHANGELOG.md.
Contributing
Your contributions are welcome! Please review CONTRIBUTING.md for the details.
Sponsors
Many thanks to our sponsors for their generous support ❤️ Become a sponsor







How to make BDD valuable for my project?
Have a look on this section.
My other Playwright tools
- playwright-network-cache - Speed up Playwright tests by caching network requests on the filesystem.
- playwright-magic-steps - Auto-transform JavaScript comments into Playwright steps.
License
This project is licensed under the MIT License, allowing you to use, modify, and share the code freely, even for commercial purposes. Enjoy building something amazing! 🎉