Testing 如何设置一个Cucumber功能,该功能需要在其他功能之前运行?
我目前正在为一个具有基于会话的登录/身份验证的应用程序编写一些使用Cucumber和Selenium的端到端测试 保持Cucumber方法,我试图使每个测试特性彼此完全独立。问题是,由于应用程序使用基于会话的身份验证,每次关闭Testing 如何设置一个Cucumber功能,该功能需要在其他功能之前运行?,testing,selenium-webdriver,cucumber,end-to-end,Testing,Selenium Webdriver,Cucumber,End To End,我目前正在为一个具有基于会话的登录/身份验证的应用程序编写一些使用Cucumber和Selenium的端到端测试 保持Cucumber方法,我试图使每个测试特性彼此完全独立。问题是,由于应用程序使用基于会话的身份验证,每次关闭WebDriver(在测试每个功能之后),下一个测试的功能将创建一个新的WebDriver对象,该对象随后需要通过登录屏幕来执行测试 这里最好的方法是什么?我仍然想测试登录功能,但感觉在任何其他功能测试之前运行登录功能测试有很多重复 例如,假设我有一个产品列表功能,我想根据
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”钩子中,但这意味着必须创建一个新实例,并且在测试每个功能之后打开/关闭浏览器。这似乎需要额外的资源和时间来完成。这通常是最好的方法吗?