behave-skill
>
pinned to #54824d6updated 2 weeks ago
Ask your AI client: “install skills/behave-skill”.
Requires the metahub MCP server installed in your client. Set up MCP.
mh install skills/behave-skillmetahub onboarded this repo on the author's behalf.
If you own github.com/LambdaTest/agent-skills on GitHub, claim the listing to take over publishing. Your claim preserves the existing eval history and badges; only the curator label is replaced with verified-publisher on your next publish.
Stars
325
Last commit
2 weeks ago
Latest release
published
Evaluation report
WarningsAutomated checks the publisher passed at publish time — structure, docs, safety, and whether the artifact behaves as claimed.54824d6· 2 weeks ago
Documentation
32Description qualitywarn
8 words · 52 chars — skills use the description as their trigger; aim higher — manifest description is empty; graded the GitHub repo description instead
Aim for 15+ words and include trigger phrases like “use this skill when …”.
README is present and substantial
6,607 chars · 7 sections · 6 code blocks
Tags / topics declaredwarn
No manifest tags and no GitHub repo topics
Add tags to the manifest (or GitHub topics on the repo) so the registry's search and category filters surface this artifact.
README has usage / example sections
found: Getting Started
Homepage / docs URL declared
https://agentskillsforall.com/
Release history
1- releasecurrent54824d6warn2 weeks ago
Contents
Behave BDD Skill
Core Patterns
Feature File (features/login.feature)
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)
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)
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
@smoke
Feature: Login
@critical
Scenario: ...
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
# 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 |
Reviews
No reviews yet. Be the first.
Related
Verification Before Completion
Evidence before assertions, always
Writing Plans
Turn specs into phased implementation plans
Test-Driven Development
Red → green → refactor discipline for any feature or bugfix
mh install skills/behave-skill