java - 如何概括 Selenium Cucumber 中的登录步骤并避免功能文件中的重复步骤?

标签 java selenium cucumber bdd cucumber-jvm

我在我的自动化项目中使用 Selenium+Cucumber,并使用 Java 编写。我写了一个功能文件,其中我在每个场景中重复了 4-5 个登录步骤。以下是在每个场景中重复出现的登录行。

Scenario: Display the relevant items assigned when logged in as an testUser
    Given I am on the login page
    And I fill email with valid testUser email address
    And I fill password with valid testUser password
    And I press Log in
    When I click on the selector
    Then I should see all the items assigned to my testUser account

此处关键字“testUser”被参数化。有时会用另一个用户重复相同的步骤,例如“stageUser”。对于此类步骤,Cucumber 是否提供了一种以某种方式概括这些步骤的方法?因为每个场景都从这 6 行开始,从而使场景看起来更大,并且有这些重复的步骤。

如有任何建议,我们将不胜感激。

最佳答案

您应该考虑将常用步骤移到背景中。 看起来有点乱,但您可以在场景描述中提及用户,如下所示。

  Background: 
    Given Do given
    When Do when
    Then Do then

  Scenario: User is - Test User One
    And user name is

  Scenario: User is - Test User Two
    And user name is

然后在Before hook中捕获这个用户。然后用户将在场景中的各个步骤中可用。

private String user;

@Before
public void before(Scenario scen) {
    this.user = scen.getName().substring(scen.getName().indexOf('-') + 2);
}

关于java - 如何概括 Selenium Cucumber 中的登录步骤并避免功能文件中的重复步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54594747/

相关文章:

java - 如何从搜索返回的元素列表中单击随机元素

Python 页面倒计时打印 (len(elem_href1-(number)))

ruby - cucumber 、 capybara 和 Selenium 随机工作

java - 使用滚动方法设置日历字段

java - 最近更新了R/RStudio,rJava无法加载。

javascript - Selenium/WebdriverJs/Protractor promise 与页面对象链接

rspec - 我自己的 DSL 位于 rspec、cucumber 之上

java - CucumberOptions Java 命令行

java - javafx中的路径拖动

java - SQL异常 : This ResultSet is closed