Testing 如何设置一个Cucumber功能,该功能需要在其他功能之前运行?

Testing 如何设置一个Cucumber功能,该功能需要在其他功能之前运行?,testing,selenium-webdriver,cucumber,end-to-end,Testing,Selenium Webdriver,Cucumber,End To End,我目前正在为一个具有基于会话的登录/身份验证的应用程序编写一些使用Cucumber和Selenium的端到端测试 保持Cucumber方法,我试图使每个测试特性彼此完全独立。问题是,由于应用程序使用基于会话的身份验证,每次关闭WebDriver(在测试每个功能之后),下一个测试的功能将创建一个新的WebDriver对象,该对象随后需要通过登录屏幕来执行测试 这里最好的方法是什么?我仍然想测试登录功能,但感觉在任何其他功能测试之前运行登录功能测试有很多重复 例如,假设我有一个产品列表功能,我想根据

我目前正在为一个具有基于会话的登录/身份验证的应用程序编写一些使用Cucumber和Selenium的端到端测试

保持Cucumber方法,我试图使每个测试特性彼此完全独立。问题是,由于应用程序使用基于会话的身份验证,每次关闭
WebDriver
(在测试每个功能之后),下一个测试的功能将创建一个新的
WebDriver
对象,该对象随后需要通过登录屏幕来执行测试

这里最好的方法是什么?我仍然想测试登录功能,但感觉在任何其他功能测试之前运行登录功能测试有很多重复

例如,假设我有一个产品列表功能,我想根据用户登录的帐户类型测试是否显示列表。其中一个产品列表功能场景的
给定步骤可能是“
给定我以管理员用户身份登录”
”,而另一个场景的
给定步骤可能是“
给定我以非管理员用户身份登录”


我如何将这两个
给定的
步骤引导到已经编写好的相应登录场景?

cumberBackground功能可以为您提供一些额外的思路,以避免重复,并可以执行所需的操作,从而在执行实际场景之前为您提供所需的准备。我们可以在后台传递user type:admin/non-admin步骤,并使用datatable,在场景执行之前实际执行正确的操作

Feature: Product listing

  Background: User is Logged In
    Given I am logged in as a admin/non-admin user using below set of credentials
      | User_Type  | Email_ID   | Password  |
      | admin      | TestData1  | TestData1 |
      | non-admin  | TestData2  | TestData2 |

  @Sanity
  Scenario: Validation of product listing based on user-type
    Given User is already logged on to My Account Section
    When Clicking on Super & Sub Category shall take user to PLP Page 

谢谢社会。在测试每个功能之前/之后,您启动和销毁WebDriver的方法是什么?我读过很多人把它们放在cumber的“@Before”和“@After”钩子中,但这意味着必须创建一个新实例,并且在测试每个功能之后打开/关闭浏览器。这似乎需要额外的资源和时间来完成。这通常是最好的方法吗?