行为驱动开发(BDD)强调用业务人员也能读懂的语言来描述系统行为,再把这些描述转成自动化测试。Python 生态中有多个成熟的 BDD 框架,它们各有侧重,能适应不同团队的工作方式。

常见 Python BDD 框架
下面介绍三个最常被使用的框架,并说明它们适合的场景。
Behave
Behave 是最贴近官方 BDD 规范的框架,使用 Gherkin 语法编写 feature 文件,将业务规则与步骤实现分离。
- 使用 .feature 文件描述需求
- 用 Python 编写 step 实现
- 输出报告清晰,易于非技术人员阅读
示例 feature 文件
Feature: 登录功能
Scenario: 正确密码登录
Given 打开登录页面
When 输入用户名 "test" 和密码 "123"
Then 页面显示 "欢迎"步骤实现代码
from behave import given, when, then
@given('打开登录页面')
def step_open(context):
context.page = 'login'
@when('输入用户名 "{user}" 和密码 "{pwd}"')
def step_input(context, user, pwd):
context.user = user
@then('页面显示 "{text}"')
def step_check(context, text):
assert text == '欢迎'Lettuce
Lettuce 受 Ruby 的 Cucumber 启发,语法简洁,和 Django 集成方便,适合已有 Django 应用的团队做 BDD。
pytest-bdd
pytest-bdd 建立在 pytest 之上,可以复用 pytest 的夹具和插件,适合已经熟悉 pytest 的开发者。
| 框架 | 特点 | 适用场景 |
|---|---|---|
| Behave | 标准 Gherkin 语法 | 跨职能团队协作 |
| Lettuce | 简洁、Django 友好 | Django 项目 |
| pytest-bdd | 基于 pytest 生态 | 已有 pytest 测试库 |
如何选择合适的框架
如果团队希望业务人员直接参与需求评审,Behave 的 feature 文件最直观;如果项目基于 Django,Lettuce 能减少集成成本;若团队已用 pytest 写单测,pytest-bdd 可平滑过渡。
BDD 的核心不是工具,而是用统一语言消除需求歧义。
简单结论
Python 行为驱动开发的 BDD 框架以 Behave、Lettuce 和 pytest-bdd 为主。选框架时先看团队结构和已有技术栈,再决定用哪一种写法,这样才能让自动化测试真正服务于业务沟通。
PythonBDDbehavior_driven_development修改时间:2026-07-28 00:42:09