行为驱动:Cucumber + Java - 实现数据的参数化

1、什么是参数化

  实际设计测试用例过程中,我们经常会用等价类、边界值这样的方法,针对一个功能进行测试数据上的测试,比如一个输入框,正向数据、逆向数据,非法输入等等

2、Cucumber的数据驱动

  同上篇文章一样,需要在我们在工程里新建一个testParamDemo.feature特性文件,在这里用参数化会显示如下:

3、参数化的实际应用

验证计算器多组数字相加,并计算功能

3.1、编写测试用例文件

在工程里新建一个testParamDemo.feature特性文件

复制代码
#cucumber参数化使用
Feature: 验证计算器多组数字计算功能
  打开计算器进行计算

  Scenario Outline: 打开计算器进行计算
    Given 打开计算器面板
    When 输入 "<a1>" and "<a2>" 并计算结果
    Then 等待计算结果 "<result>"

    #5组数字计算机结果
    Examples:
      | a1 | a2 | result |
      | 1  | 1  | 1      |
      | 2  | 2  | 4      |
      | 3  | 3  | 6      |
      | 4  | 4  | 8      |
      | 5  | 5  | 7     |
复制代码

3.2、创建业务测试代码部分

TestParamDemo

复制代码
package com.cucumber.demo;

import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
import org.testng.Assert;

/**
 * @author rongrong
 * cucumber参数化使用
 */
public class TestParamDemo {

    int temp;
    @Given("^打开计算器进行计算$")
    public void openCalc() {
        System.out.println("打开计算器进行计算");
    }

    @When("^输入 \"([^\"]*)\" and \"([^\"]*)\" 并计算结果$")
    public int addition(int a1, int a2) {
        temp=a1 + a2;
        return temp;
    }

    @Then("^等待计算结果 \"([^\"]*)\" $")
    public void verify_result(int result) {
        //验证实际计算和预期结果是否一致
        Assert.assertEquals(temp,result);
    }
}
复制代码

3.3、执行测试

选中testParamDemo.feature,右键 

3.4、测试结果显示

左侧结果

详细结果树

 

到此为止我们就实现了用参数化/数据驱动的形式来实现cucumber测试,是不是很清晰明了呢。

posted @   久曲健  阅读(2632)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2017-02-14 换个姿势为安装包重签名
点击右上角即可分享
微信分享提示