行为驱动: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、测试结果显示

左侧结果

详细结果树

扫描二维码关注公众号,回复: 5168520 查看本文章

 

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

猜你喜欢

转载自www.cnblogs.com/longronglang/p/10376629.html