Cucumber 中标签是什么?


Cucumber测试中的tags是什么?

在 Cucumber 中,tags用于将诸如冒烟、回归等测试与特定场景相关联。

tags实现以下目的:

  • 如果我们有很多scenario在feature file,让他们在一个组,我们使用tags Cucumber,通过它,我们就可以在同一tags下准备具体的方案报告。
  • 默认情况下,Cucumber 会执行特征文件中的所有场景,但是如果我们需要在特定测试下执行或跳过任何特定场景,那么我们可以在tags中声明场景。

我们可以通过以下语法在特征文件中声明一个tags:

@TestName
 Scenario:Mention the Scenario

在哪里,

@:它是用于声明tags的符号。

Scenario:这是一个场景。

现在,如果我们需要在多个测试下执行一个场景,在这种情况下,我们可以使用tags创建一组多个测试。

句法:

@TestName@TestName  
Scenario:Mention the scenario

让我们通过一个例子来理解tags:

例子:

假设一个应用程序的一个特性文件包含 100 个测试场景,当我们通过 Cucumber 测试来测试这个应用程序时,每次都会有 100 个测试场景被不必要地执行。因此,系统性能越来越低。

为了克服这个问题,我们可以使用tags。

让我们举一个包含几个场景的特征文件的实例。

@SmokeTest 
Scenario:搜索联系人
Given:将显示所需的联系人
@RegressionTest 
Scenario:搜索交易
Given:将显示所需的交易
@SmokeTest 
Scenario:搜索电子邮件 
Given:将显示所需的电子邮件

使用上述feature file中的tags有两个好处:

  • 首先,@SmokeTest 或@RegressionTest tags只包含那些适用于冒烟或回归测试的场景。
  • 其次,可以根据执行时的要求包括或排除场景。

现在假设,我们只需要测试在冒烟测试下声明的那些场景,那么我们可以通过以下方式在测试代码中提及@SmokeTesttags:

tags={ “@SmokeTest” }

在测试代码中提到tags后,只会测试在冒烟测试下声明的场景,其余的将被跳过。

cucumber测试需要什么tags?

当我们在一个feature file中只有几个场景时,这看起来很容易。但是,在实时项目中,它不会发生。

在实时项目中,可能会有大量的feature file,它们可能有不同的目的,如烟雾测试/回归测试,不同的状态,如准备执行/正在进行中,不同的前景,如开发人员/QA/ BA等

为了管理如此大的feature file的执行,我们在feature file中使用带有场景的tags。

tags的好处是我们只能测试一个feature file的特定场景,我们需要执行,而不是那些不必要的场景。

如何在cucumbe测试中创建一组多个tags?

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

例子:

@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

根据上面的例子,我们可以测试第一个场景的smoke testing 和regression testing。

通过多个tags的测试可以通过使用两个操作符来完成:

  • OR运算符
  • AND 运算符

OR运算符

OR 运算符可用于这种情况,当我们需要像这样测试应用程序时,如果应用程序在第一次测试中失败,则应检查下一次测试。如果下一个测试也失败,则应检查另一个下一个测试,依此类推。

换句话说,必须测试来自多个tags集合中的每个测试用例是失败还是通过。

要在测试执行程序中使用 OR 运算符,请使用以下语法:

tags = {"@FirstTest, @SecondTest"}

例子:

tags = {“@SmokeTest,@RegressionTest”}

在上面的例子中,OR 运算符执行所有标记的测试,即@SmokeTest@RegressionTest

AND 运算符

AND 运算符可以用在这种情况下,当我们需要像这样测试应用程序时,如果应用程序在第一次测试中通过,则跳转到下一个测试,但如果失败,则应终止测试。

要在测试执行程序中使用 AND 运算符,请使用以下语法:

tags = {"@FirstTest", "@SecondTest"}

例子:

tags= {“@SmokeTest”,“@RegressionTest”}

在上面的例子中,AND 运算符执行第一个测试,如果本次测试的结果通过则跳转到检查下一个测试。但如果结果失败,则测试将终止。

如何在 Cucumber 测试中忽略tags?

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

例子:

假设有一组@SmokeTest@RegressionTest测试。现在,我们需要跳过回归测试,为此,请考虑以下代码:

tags={"@SmokeTest", "~@RegressionTest"}