Cucumber 测试中的标签是什么?2024 年 8 月 29 日 | 4 分钟阅读 在 Cucumber 中,标签用于将测试(如 冒烟、回归等)与特定场景相关联。 标签满足以下目的
我们可以通过以下语法在 feature 文件中声明一个标签 @TestName Scenario: Mention the Scenario 其中, @: 这是用于声明标签的符号。 TestName: 这是特定测试的名称。 Scenario: 这是一个场景。 现在,如果我们需要在多个测试下执行一个场景,在这种情况下,我们可以通过使用标签来创建一组多个测试。 语法@TestName@TestName Scenario: Mention the scenario 让我们通过一个例子来理解标签 示例假设一个应用程序的 feature 文件包含 100 个测试场景,当我们每次通过 Cucumber 测试测试此应用程序时,将不必要地执行 100 个测试场景。因此,系统性能正在降低。 为了克服这个问题,我们可以使用标签。 让我们举一个包含几个场景的 feature 文件的例子。 @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 在上面的 feature 文件中使用标签有两个好处
现在假设,我们只需要测试在冒烟测试下声明的那些场景,那么我们可以通过以下方式在测试代码中提及 @SmokeTest 标签 tags={"@SmokeTest"} 在测试代码中提及标签后,只会测试在冒烟测试下声明的场景,其余场景将被跳过。 为什么需要在 Cucumber 测试中使用标签?当我们在 feature 文件中只有少量场景时,它看起来很容易。但是,在实际项目中,情况并非如此。 在实际项目中,可能存在大量 feature 文件,这些文件可能具有不同的目的,例如冒烟测试/回归测试,不同的状态,例如准备执行/工作中,不同的视角,例如开发人员/QA/BA 等。 为了管理这些大型 feature 文件的执行,我们在 feature 文件中使用带有场景的标签。 标签的好处是,我们只能测试 feature 文件的特定场景,这是我们需要执行的,而不是那些不必要的场景。 如何在 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 运算符当我们需要测试一个应用程序时,如果该应用程序在第一次测试中失败,则应该检查下一个测试,在这种情况下可以使用 OR 运算符。如果下一个测试也失败,则应检查另一个下一个测试,依此类推。 换句话说,必须测试来自多个标签集中的每个测试用例,无论它是失败还是通过。 要在测试执行程序中使用 OR 运算符,请使用以下语法 Tags= {"@FirstTest, @SecondTest"} 示例 tags= {"@SmokeTest, @RegressionTest"} 在上面的例子中,OR 运算符执行所有标记的测试,即 @SmokeTest、@RegressionTest。 AND 运算符当我们需要测试一个应用程序时,如果该应用程序在第一次测试中通过,则跳到检查下一个测试,但如果失败,则应该终止测试,在这种情况下可以使用 AND 运算符。 要在测试执行程序中使用 AND 运算符,请使用以下语法 tags= {"@FirstTest", "@SecondTest"} 示例 tags= {"@SmokeTest", "@RegressionTest"} 在上面的例子中,AND 运算符执行第一个测试,如果此测试的结果通过,那么它将跳到检查下一个测试。但如果结果失败,那么测试将被终止。 如何在 Cucumber 测试中忽略标签?在我们需要跳过测试的情况下,我们可以在标签中使用特殊符号 "~"。这个特殊字符也适用于跳过场景和 Feature。它也可以与 OR 或 AND 结合使用。 示例假设有一组 @SmokeTest 和 @RegressionTest 测试。 现在,我们需要跳过回归测试,为此,请考虑以下代码 tags={"@SmokeTest", "~@RegressionTest"} 下一个主题Gherkin 语言 |
我们请求您订阅我们的新闻通讯以获取最新更新。