Cucumber教程

Cucumber 测试标签

Cucumber 测试中的标签是什么?

在 Cucumber 中,标签用于关联测试,例如 smoke、regression 等. 使用特定场景。
标签实现以下目的:
如果我们在功能文件中有很多方案 ,为了将它们归为一组,我们在 Cucumber 中使用了标签,通过这些标签,我们将能够为同一标签下的特定场景准备报告。 默认情况下,Cucumber 会执行功能文件中的所有场景,但如果我们需要在特定测试下执行或跳过任何特定场景,那么我们可以在标签中声明场景。
我们可以通过以下语法在特征文件中声明一个标签:
@TestName
Scenario: Mention the Scenario 
    
Where,
@: 是用来声明标签的符号。
TestName:特定测试的名称。
场景: 这是一个场景。
现在,如果我们需要在多个测试下执行一个场景,在这个在这种情况下,我们可以使用标签创建一组多个测试。

语法:

@TestName@TestName 
Scenario: Mention the scenario 
    
让我们通过一个例子来理解标签:

例子:

假设一个应用程序的特征文件包含100个测试场景,当我们测试这个每次通过 Cucumber 测试应用程序都会不必要地执行 100 个测试场景。因此,系统性能会越来越低。
为了克服这个问题,我们可以使用标签。
让我们举一个场景很少的特征文件的实例。
@SmokeTest 
Scenario: Search contact
Given: Desired contact will be displayed
@RegressionTest 
Scenario: Search a deal
Given: Desired deal will be displayed
@SmokeTest 
Scenario: Search an email   
Given: Desired email will be displayed
    
使用上述特征文件中的标签有两个好处:
首先,@SmokeTest 或 @RegressionTest 标签仅包含适用于冒烟或回归测试的场景。 其次,可以根据执行时的要求包含或排除场景。
现在假设,我们只需要测试那些在冒烟测试下声明的场景,那么我们可以通过以下方式在测试代码中提及@SmokeTest标签:
tags={"@SmokeTest"}
    
在测试代码中提到标签后,只测试烟雾测试下声明的场景,其余将被跳过。

在Cucumber测试中需要什么标签?

当我们在一个特征文件中只有几个场景时,这看起来很容易。但是,在实时项目中,它不会发生。
在实时项目中,可能会有大量的特征文件,这些特征文件可能有不同的用途,例如烟雾测试/回归测试,不同的状态如Ready for Execution/Work in progress,不同的前景如Developer/QA/BA等
为了管理如此大的特征文件的执行,我们在特征文件中使用带有场景的标签。
标签的好处是我们只能测试一个特征文件的特定场景,我们需要执行,而不是那些场景

如何在Cucumber测试中创建一组多个标签?

我们可以当我们需要对单个场景执行多个测试时,也可以使用多个标签。

示例:

@SmokeTest tag @RegressionTest tag
Scenario: Search contact
Given: Desired contact will be displayed
@RegressionTest tag
Scenario: Search a deal
Given: Desired deal will be displayed
@SmokeTest tag
Scenario: Search an email
Given: Desired email will be displayed
    
根据上面的例子,我们可以测试第一个场景的冒烟测试和回归测试。
通过多个标签的测试可以通过使用两个运算符来完成:
OR 运算符 AND 运算符

OR 运算符

OR 运算符可用于这种情况,当我们需要像这样测试应用程序时,如果应用程序在第一次测试中失败了,则应检查下一个测试。如果下一个测试也失败,则应检查另一个下一个测试,依此类推。
换句话说,多个标签集合中的每个测试用例都必须进行测试,无论它是失败还是通过。
要在测试执行程序中使用 OR 运算符,请使用以下语法:
Tags= {"@FirstTest, @SecondTest"}
    
示例:
tags= {"@SmokeTest, @RegressionTest"}
    
在上例中,OR 运算符执行所有标记测试,即 @SmokeTest、@RegressionTest。

AND 运算符

AND 运算符可以用在这样的情况下,当我们需要像这样测试一个应用程序时,如果应用程序在第一次测试中通过了,则跳转到下一个测试中,但如果失败,则应终止测试。
要在测试执行程序中使用 AND 运算符,请使用以下语法:
tags= {"@FirstTest", "@SecondTest"}
    
示例:
tags= {"@SmokeTest", "@RegressionTest"}
    
在上面的例子中,AND运算符执行第一个测试,如果这个测试的结果通过则跳转到下一个测试。但如果结果失败,则测试将终止。

如何在Cucumber测试中忽略标签?

在这种情况下,当我们需要跳过一个测试时,那么我们可以使用标签中的特殊符号"~"。这个特殊角色也可以跳过场景和功能。这也可以与 OR 或 AND 结合使用。

示例:

假设有一组 @SmokeTest 和 @RegressionTest 测试。现在,我们需要跳过回归测试,为此,请考虑以下代码:
tags={"@SmokeTest", "~@RegressionTest"}
    
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4