行为驱动: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测试,是不是很清晰明了呢。
优秀不够,你是否无可替代
软件测试交流QQ群:721256703,期待你的加入!!
欢迎关注我的微信公众号:软件测试君

分类:
Cucumber
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2017-02-14 换个姿势为安装包重签名