行为驱动: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测试,是不是很清晰明了呢。

EOF

本文作者:久曲建的测试窝 本文链接:https://www.cnblogs.com/longronglang/p/10376629.html 关于博主:评论和私信会在第一时间回复。或者直接私信我。 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处! 声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力! 优秀不够,你是否无可替代

软件测试交流QQ群:721256703,期待你的加入!!

欢迎关注我的微信公众号:软件测试君