testing - 如何设置需要在其他功能之前运行的 Cucumber 功能?

标签 testing selenium-webdriver cucumber end-to-end

我目前正在使用 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/

相关文章:

java - 如何获取提取的Xpath以供后续使用?

json - 在 Cucumber Feature 文件中使用变量?

Java Cucumber 日期表

xpath - 如何使用xpath按文件名查找图像标签

testing - 负载测试和性能测试有什么区别?

testing - Junit REST 测试?

python - 如何通过Selenium从网站上抓取产品名称?

python-3.x - ElementNotInteractableException:消息:使用Selenium和ChromeDriver单击youtube搜索按钮时,元素不可交互错误

json - 如何根据 Karate 中预定义的 json 模式验证响应?

testing - 将当前 URL 写入 TestCafe 中的控制台