—
前言
大家好,我是小白学测试。做测试3年,刚接触行为驱动测试(BDD)时,发现测试用例可以写得像自然语言一样易懂。今天分享Cucumber BDD测试的入门经验。
—
一、什么是BDD?
概念
BDD(Behavior-Driven Development)行为驱动开发:
- 用自然语言描述测试场景
- 促进开发、测试、产品协作
- 活文档,用例即文档
BDD vs 传统测试
| 对比项 | 传统测试 | BDD测试 |
|---|---|---|
| 用例格式 | 代码/表格 | 自然语言 |
| 可读性 | 技术人员 | 所有人 |
| 协作 | 测试独立 | 跨角色协作 |
—
二、Cucumber基础
Feature文件
gherkin
Feature: 用户登录功能
作为一名用户
我想要登录系统
以便使用系统功能
Scenario: 使用正确的用户名密码登录成功
Given 用户在登录页面
When 用户输入正确的用户名 “testuser”
And 用户输入正确的密码 “password123”
And 用户点击登录按钮
Then 用户登录成功
And 页面跳转到首页
Step Definition
java
public class LoginSteps {
@Given(“用户在登录页面”)
public void userOnLoginPage() {
driver.get(“https://example.com/login”);
}
@When(“用户输入正确的用户名 {string}”)
public void inputUsername(String username) {
driver.findElement(By.id(“username”)).sendKeys(username);
}
@Then(“用户登录成功”)
public void loginSuccess() {
assertTrue(driver.getCurrentUrl().contains(“home”));
}
}
—
三、完整示例
gherkin
Feature: 订单管理
Scenario Outline: 创建不同类型的订单
Given 用户已登录
When 用户创建订单
Then 订单创建成功
And 订单状态为”待处理”
Examples:
| 类型 |
| 普通 |
| 预售 |
| 团购 |
—
总结
Cucumber BDD要点:
| 要素 | 说明 |
|---|---|
| Feature | 功能描述 |
| Scenario | 测试场景 |
| Given | 前置条件 |
| When | 操作步骤 |
| Then | 预期结果 |
—
下期预告:自动化测试框架设计之道 – 分层架构与数据驱动最佳实践