Cucumber行为驱动测试入门 – 让测试用例人人都能读懂

前言

大家好,我是小白学测试。做测试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 预期结果

下期预告:自动化测试框架设计之道 – 分层架构与数据驱动最佳实践

分享到:

探索 RunnerGo 全栈测试平台

RunnerGo 是一款面向企业的全栈测试平台,集接口测试、自动化测试、性能测试、UI测试于一体,助力企业提升研发效能。

接口测试
性能测试
自动化测试
免费体验 RunnerGo