Cucumber结合junit5测试

cucumber 在junit5的测试与junit4发生了很大的不同,通过实战整理了cucumber在junit5下测试时需要注意的内容,详见如下:

Feature语法

Feature:说明模块名称
Background:定义单个Scenario通用的步骤,类似测试用例的通用"预置条件",比如登录
Scenario:单条数据测试
    1. 参数变量需要用" "来标识
    2. DataTable:用于批量上传多条数据
Scenario Outline:多条数据测试
    1.定义时需要用'< >'来表示,用于一条case使用多个不同数据对象测试,比如登录时,输入正确数据、异常数据

RunCucumberTest运行类

@ConfigurationParameter:用于junit参数配置,如cucumber 自带 html报告
@ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "junit:target/generated-report/cucumber-reports.html")
@CucumberOptions:用于cucumber参数配置,如tags
    方法1:@ConfigurationParameter(key = FILTER_TAGS_PROPERTY_NAME , value = "@test")
    方法2:@CucumberOptions(tags = "@test")
    以上都可以在key上按ctrl进入源码,查看支持的参数配置

Step definition定义

1. 参数用{参数类型}来识别,去掉Feature定义中的双引号
2. DataTable table:注意需要导io.cucumber.datatable.DataTable 的包,格式可以直接使用,也可以使用以下类型
    DataTable table
    List<List<String>> table
    List<Map<String, String>> table
    Map<String, String> table
    Map<String, List<String>> table
    Map<String, Map<String, String>> table
3. Scenario outline:step defination 需要统一使用{string}来匹配,不能识别其他数据类型,注意此时不带单引号

hook

1. 注意导包为io.cucumber.java.*;不是junit
2. beforeall、afterall:针对整体,可用于数据初始化和数据清理
3. before\after:用在运行类中,针对每个scenario
4. beforestep、afterstep:针对每个step

配置项

1. cucumber.properties:针对cucumber的配置项
2. junit-platform.properties:针对junit的配置项
   上述配置,详见 git code

并行测试策略配置

1. 方法一:在junit中配置开关和并行粒度,参见git code
2. 方法二:在cucumber中配置并行力度,参见如下:

在 Cucumber 中,cucumber.execution.parallel.config.strategy 是一个用于配置并行执行策略的属性。
该属性可用于设置 Cucumber 的并行执行方式,以提高测试的执行效率和速度。具体的策略可以根据你的需求进行配置,以下是一些常见的配置策略:
simple: 简单的并行执行策略,将特性文件的执行分配给不同的线程。
Copy Code-Dcucumber.execution.parallel.config.strategy=simple

scenario: 按照场景(scenario)的级别执行并行测试。
Copy Code-Dcucumber.execution.parallel.config.strategy=scenario

feature: 按照特性(feature)的级别执行并行测试。
Copy Code-Dcucumber.execution.parallel.config.strategy=feature

examples: 按照 Scenario Outline 中的不同示例进行并行测试。
Copy Code-Dcucumber.execution.parallel.config.strategy=examples

这是一些常见的并行执行策略示例,你可以根据自己的需求选择适合你的策略。

下面是一个配置示例:
如果你正在使用 Maven 进行构建,你可以在 pom.xml 文件中添加以下配置:
<properties>
<cucumber.execution.parallel.config.strategy>scenario</cucumber.execution.parallel.config.strategy>
</properties>

这将设置并行执行策略为 scenario,即按照场景级别进行并行执行。
另一种方式是通过命令行参数设置。例如,使用 mvn 命令进行测试运行时,可以使用以下配置:
bashCopy Codemvn test -Dcucumber.execution.parallel.config.strategy=scenario

这样就可以在命令行中将并行执行策略设置为 scenario。
report:集成Cluecumber插件
添加maven依赖:参见https://cucumber.io/docs/cucumber/reporting/?lang=java中Cluecumber插件
运行cucumber 运行器,生成report.json文件
命令行运行,mvn cluecumber:reporting,生成html报告

report:集成Cluecumber插件

1. 添加maven依赖:参见https://cucumber.io/docs/cucumber/reporting/?lang=java中Cluecumber插件
2. 运行cucumber 运行器,生成report.json文件
3. 命令行运行,mvn cluecumber:reporting,生成html报告

CI集成

参见官网CI部分

待研究

1. 自定义参数类型

参考链接

官网:https://cucumber.io/docs/installation/
junit api:https://junit.org/junit5/docs/current/api/index.html
junit配置项参考:https://github.com/cucumber/cucumber-jvm/blob/main/cucumber-junit-platform-engine/README.md

代码仓库

https://github.com/wangniniqq/cucumberJunit5Test

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cucumber是一种行为驱动开发(BDD)工具,它结合了自然语言和自动化测试,用于编写可执行的规范文档。它使用Gherkin语言来描述应用程序的行为,并将这些描述转化为可执行的测试代码。 Cucumber的核心思想是通过定义特定的场景和步骤来描述应用程序的行为。这些场景和步骤以Gherkin语言的格式编写,例如: ``` Feature: 用户登录 用户可以通过用户名和密码登录系统 Scenario: 正确的用户名和密码 Given 用户打开登录页面 When 用户输入正确的用户名和密码 And 用户点击登录按钮 Then 用户成功登录系统 Scenario: 错误的用户名和密码 Given 用户打开登录页面 When 用户输入错误的用户名和密码 And 用户点击登录按钮 Then 用户收到错误提示信息 ``` 上述示例中,`Feature`定义了一个功能,`Scenario`定义了一个具体的场景,`Given`、`When`、`Then`等关键词定义了具体的步骤。 Cucumber支持多种编程语言,如Java、Ruby、JavaScript等。你可以使用相应的Cucumber库来编写测试代码,并将Gherkin语言的描述与测试代码关联起来。当运行测试时,Cucumber会解析Gherkin语言的描述,并执行相应的测试代码。 Cucumber的优点包括: 1. 提供了一种可读性强的测试文档形式,使得非技术人员也能理解和参与测试过程。 2. 通过自然语言描述测试场景,减少了测试用例的维护成本。 3. 支持多种编程语言和测试框架,灵活性高。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值