我目前正在使用Cucumber和Selenium为具有基于会话的登录/身份验证的应用程序编写一些端到端测试。
我采用Cucumber方法,试图使每个测试功能完全独立。问题是,因为应用程序使用基于会话的身份验证,所以每次WebDriver
关闭时(在测试每个功能之后),下一个测试的功能将创建一个新的WebDriver
对象,随后将需要传递该对象登录屏幕以执行测试。
这里最好的方法是什么?我仍然想测试登录功能,但是感觉在运行登录功能测试之前要进行很多重复工作,而不需要进行任何其他功能测试。
例如,说我有一个“产品列表”功能,我想根据用户登录时使用的帐户类型来测试是否显示列表。对于“产品列表”功能场景之一,我的Given
步骤可能是“ Given I am logged in as a admin user
”,而在其他场景中,我的Given
步骤可能是“ Given I am logged in as a non-admin user
”。>
我如何将这两个Given
步骤引向已编写的适当登录方案?
答案 0 :(得分:0)
黄瓜背景功能可能会给您一些避免重复的思想,并可以执行所需的操作,从而使您可以在执行实际方案之前做好准备。我们可以在后台传递用户类型:admin / non-admin步骤并使用数据表,在执行方案之前实际执行所需的正确操作。
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