Behave BDD Test Generator
Turn user stories into executable tests instantly with Gherkin
❌ Writing and maintaining Python test cases manually is time-consuming and error-prone, leading to inconsistent test coverage and documentation.
✅ Automatically generate complete Behave BDD test suites with Gherkin feature files and Python step implementations ready to execute.
- ✓Auto-generates Gherkin feature files from descriptions
- ✓Creates Python step definition implementations matching scenarios
- ✓Supports Background, Scenario, and Scenario Outline patterns
- ✓Produces executable tests with proper assertions and hooks
- ✓Maintains BDD best practices and readable test structure
👁 3 views · 📦 0 installs
Free to install — no account needed
Copy the command below and paste into your agent.
Instant access • No coding needed • No account needed
What you get in 5 minutes
- Full skill code ready to install
- Works with 7 AI agents
- Lifetime updates included
Run this helper
Answer a few questions and let this helper do the work.
▸Advanced: use with your AI agent
Description
--- name: behave-skill description: > Generates Behave BDD tests for Python with Gherkin feature files and step implementations. Use when user mentions "Behave", "Python BDD", "Python Gherkin". Triggers on: "Behave", "Python BDD", "behave test", "Python feature file". languages: - Python category: bdd-testing license: MIT metadata: author: TestMu AI version: "1.0" --- # Behave BDD Skill ## Core Patterns ### Feature File (features/login.feature) ```gherkin Feature: User Login As a registered user I want to log into the application Background: Given I am on the login page Scenario: Successful login When I enter "[email protected]" as email And I enter "password123" as password And I click login Then I should see the dashboard And the welcome message should say "Welcome" Scenario: Invalid credentials When I enter "[email protected]" as email And I enter "wrong" as password And I click login Then I should see error "Invalid credentials" Scenario Outline: Login with various users When I enter "<email>" as email And I enter "<password>" as password And I click login Then I should see "<result>" Examples: | email | password | result | | [email protected] | admin123 | Dashboard | | [email protected] | wrong | Error | ``` ### Step Definitions (features/steps/login_steps.py) ```python from behave import given, when, then from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC @given('I am on the login page') def step_on_login(context): context.browser.get(context.base_url + '/login') @when('I enter "{text}" as email') def step_enter_email(context, text): el = context.browser.find_element(By.ID, 'email') el.clear() el.send_keys(text) @when('I enter "{text}" as password') def step_enter_password(context, text): el = context.browser.find_element(By.ID, 'password') el.clear() el.send_keys(text) @when('I click login') def step_click_login(context): context.browser.find_element(By.CSS_SELECTOR, 'button[type="submit"]').click() @then('I should see the dashboard') def step_see_dashboard(context): WebDriverWait(context.browser, 10).until( EC.url_contains('/dashboard') ) assert '/dashboard' in context.browser.current_url @then('I should see error "{msg}"') def step_see_error(context, msg): error = WebDriverWait(context.browser, 5).until( EC.visibility_of_element_located((By.CSS_SELECTOR, '.error')) ) assert msg in error.text ``` ### Environment Hooks (features/environment.py) ```python from selenium import webdriver def before_all(context): context.base_url = 'http://localhost:3000' def before_scenario(context, scenario): context.browser = webdriver.Chrome() context.browser.implicitly_wait(10) def after_scenario(context, scenario): if scenario.status == 'failed': context.browser.save_screenshot(f'screenshots/{scenario.name}.png') context.browser.quit() ``` ### Tags ```gherkin @smoke Feature: Login @critical Scenario: ... ``` ```bash behave --tags=@smoke behave --tags="@smoke and not @slow" ``` ## Setup: `pip install behave selenium` ## Run: `behave` or `behave features/login.feature` ### Cloud Execution on TestMu AI Set environment variables: `LT_USERNAME`, `LT_ACCESS_KEY` ```python # environment.py from selenium import webdriver import os def before_scenario(context, scenario): lt_options = { "user": os.environ["LT_USERNAME"], "accessKey": os.environ["LT_ACCESS_KEY"], "build": "Behave Build", "name": scenario.name, "platformName": "Windows 11", "video": True, "console": True, "network": True, } options = webdriver.ChromeOptions() options.set_capability("LT:Options", lt_options) context.driver = webdriver.Remote( command_executor=f"https://{os.environ['LT_USERNAME']}:{os.environ['LT_ACCESS_KEY']}@hub.lambdatest.com/wd/hub", options=options, ) ``` ## Report: `behave --format json -o report.json` ## Deep Patterns See `reference/playbook.md` for production-grade patterns: | Section | What You Get | |---------|-------------| | §1 Project Setup | behave.ini, project structure, dependencies | | §2 Feature Files | Gherkin with Scenario Outline, data tables, Background | | §3 Step Definitions | Type registration, API steps, common steps with PyHamcrest | | §4 Environment Hooks | before_all/scenario/feature, screenshot on failure, DB isolation | | §5 Page Objects | BasePage with waits, LoginPage, reusable components | | §6 Fixtures & Test Data | DatabaseHelper, transaction rollback, JSON data loader | | §7 LambdaTest Integration | Remote browser creation, cloud capabilities | | §8 CI/CD Integration | GitHub Actions with Postgres, Selenium, Allure reports | | §9 Debugging Table | 12 common problems with causes and fixes | | §10 Best Practices | 14-item BDD testing checklist |
Security Status
Verified
Manually verified by security team
Related AI Tools
More Career Boost tools you might like
ru-text — Russian Text Quality
FreeApplies professional Russian typography, grammar, and style rules to improve text quality across content types
/forge:工作流总入口
Free'Forge 工作流总入口。检查项目状态,推荐下一步该用哪个 skill。任何时候不知道下一步该干什么,就用 /forge。触发方式:用户说"forge"、"下一步"、"接下来做什么"、"继续"(在没有明确上下文时)。'
TypeScript React & Next.js Production Patterns
FreeProduction-grade TypeScript reference for React & Next.js covering type safety, component patterns, API validation, state management, and debugging
Charles Proxy Session Extractor
FreeExtracts HTTP/HTTPS request and response data from Charles Proxy session files (.chlsj format), including URLs, methods, status codes, headers, request bodies, and response bodies. Use when analyzing captured network traffic from Charles Proxy debug
Java Backend Interview Simulator
FreeSimulates realistic Java backend technical interviews with customizable interviewer styles and candidate levels for Chinese tech companies
AI News & Trends Intelligence
FreeFetches latest AI/ML news, trending open-source projects, and social media discussions from 75+ curated sources for comprehensive AI briefings