【问题标题】:Cucumber gherkin script - want to test a scenario having a background with multiple test dataCucumber gherkin script - 想要测试具有多个测试数据背景的场景
【发布时间】:2017-12-12 17:54:25
【问题描述】:

在浏览了其他在线资源后,我了解到我们不能拥有多个测试数据的背景。我有一组场景,这些场景是添加具有不同权限的用户,他们首先有共同的登录步骤,这将是我的背景,因为它需要为每个场景执行。 我的场景示例

    Background: Admin or Super Admin Login    
    Given Open browser and navigate "xyz" server
    When Give user credentials "<username>" and "<password>"
        |username|password|
        |Admin | 123|
        |SuperAdmin| 123|
    Then User selects a client
    And  Click on Go To Dashboard
    Then User should be able to log in


    @UserPage
    Scenario: Admin or super admin user add a new user with admin rights

    When Admin user adds a new user
    And User fills in all the required information
        |username|Client|Password|Retype Password | Email| Admin |
        Test data 
    And Add new user personal information
        |FirstName|LastName|Phone|
        Test data
    Then User with admin rights is created.

我的要求是管理员和超级管理员用户(都有不同的权限)可以创建一个有或没有管理员权限的新用户。 所以,我的问题是如何用不同的登录用户测试这个场景,所以后台和场景应该为管理员用户和超级管理员执行一次。

关于编写和执行这个小黄瓜脚本的推荐方法有什么线索吗? 谢谢。

【问题讨论】:

  • 您可以使用 ScenarioOutline 为两个管理员运行场景,方法是创建一个包含管理员登录详细信息的示例表。问题是后台步骤不会从示例表中获取数据。您可以将背景步骤浓缩为超级步骤,并将其包含在实际场景大纲本身中。
  • 谢谢,感谢您的回复。 @Grasshopper我已经有后台代码实现,这个背景是我的场景是另一个功能文件,所以我正在寻找代码可重用性。那么有没有办法复用已有的场景呢?
  • 您仍然可以从登录部分的“超级”单步方法中调用现有方法。可重用性仍然存在,但登录的小黄瓜步骤将被压缩。但是可维护性肯定是一个问题。如果您添加一个额外的 'admintype' 列并将 desc 更改为 " user add ... "
  • 谢谢,那会奏效。您可以发表您的评论作为答案吗?
  • @Grasshopper,我尝试在场景大纲中使用占位符,它给出了词法分析错误。链接到错误代码 - paste.fedoraproject.org/paste/aBzCBvZjp7SyvR4HzPP--w

标签: java gherkin cucumber-java


【解决方案1】:

正如 Grasshopper 所说,您可以将背景步骤压缩如下。它可能会解决您的问题。

    Background: Admin or Super Admin Login    
        Given Open browser and navigate "xyz" server
    @UserPage
    Scenario Outline: "<username>" user add a new user with admin rights
        When Give user credentials "<username>" and "<password>"
        Then User selects a client
        And  Click on Go To Dashboard
        Then User should be able to log in
        When Admin user adds a new user
        And User fills in all the required information
            |username|Client|Password|Retype Password | Email| Admin |
            Test data 
        And Add new user personal information
            |FirstName|LastName|Phone|
            Test data
        Then User with admin rights is created.

    Examples:
        |username   |password|
        |Admin      | 123    |
        |SuperAdmin | 123    |

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    相关资源
    最近更新 更多