我目前正在使用 Cucumber 和 Selenium 为具有基于 session 的登录/身份验证的应用程序编写一些端到端测试。
保持 Cucumber 方法,我试图让每个测试功能完全独立于另一个。问题是,因为应用程序使用基于 session 的身份验证,每次 WebDriver
关闭时(在测试每个功能之后),下一个测试的功能将创建一个新的 WebDriver
对象,随后需要通过登录屏幕才能执行测试。
最好的方法是什么?我仍然想测试登录功能,但我觉得在任何其他功能测试之前运行登录功能测试会有很多重复。
例如,假设我有一个产品列表功能,我想根据用户登录的帐户类型测试是否显示列表。对于其中一个产品列表功能场景,我的 Given
步骤可能是“Given I am logged in as a admin user
”,而 Given
不同场景的步骤可能是“Given I am logged in as a non-admin user
”。
我如何将这两个 Given
步骤指向已编写的适当登录场景?
最佳答案
Cucumber Background 功能可能会给您一些额外的想法来避免重复,并且可以执行所需的操作,让您在执行实际场景之前做好准备。我们可以在后台传递用户类型:管理员/非管理员步骤并使用数据表,在场景执行之前做您实际需要的正确事情。
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
关于testing - 如何设置需要在其他功能之前运行的 Cucumber 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56327769/