1、什么是参数化
实际设计测试用例过程中,我们经常会用等价类、边界值这样的方法,针对一个功能进行测试数据上的测试,比如一个输入框,正向数据、逆向数据,非法输入等等
2、Cucumber的数据驱动
同上篇文章一样,需要在我们在工程里新建一个testParamDemo.feature特性文件,在这里用参数化会显示如下:

3、参数化的实际应用
验证计算器多组数字相加,并计算功能
3.1、编写测试用例文件
在工程里新建一个testParamDemo.feature特性文件
#cucumber参数化使用
Feature: 验证计算器多组数字计算功能
打开计算器进行计算
Scenario Outline: 打开计算器进行计算
Given 打开计算器面板
When 输入"" and ""并计算结果
Then 等待计算结果""#5组数字计算机结果
Examples:| a1 | a2 | result |
| 1 | 1 | 1 |
| 2 | 2 | 4 |
| 3 | 3 | 6 |
| 4 | 4 | 8 |
| 5 | 5 | 7 |
3.2、创建业务测试代码部分
TestParamDemo
packagecom.cucumber.demo;importcucumber.api.java.en.Given;importcucumber.api.java.en.Then;importcucumber.api.java.en.When;importorg.testng.Assert;/***@authorrongrong
* cucumber参数化使用*/
public classTestParamDemo {inttemp;
@Given("^打开计算器进行计算$")public voidopenCalc() {
System.out.println("打开计算器进行计算");
}
@When("^输入 \"([^\"]*)\" and \"([^\"]*)\" 并计算结果$")public int addition(int a1, inta2) {
temp=a1 +a2;returntemp;
}
@Then("^等待计算结果 \"([^\"]*)\" $")public void verify_result(intresult) {//验证实际计算和预期结果是否一致
Assert.assertEquals(temp,result);
}
}
3.3、执行测试
选中testParamDemo.feature,右键

3.4、测试结果显示
左侧结果

详细结果树

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