如何推广硒黄瓜登录步骤,避免功能重复文件的步骤?

问题描述 投票:2回答:3

我使用的硒+黄瓜为我的自动化项目,并使用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

在这里,keywork“为testUser”是参数。有时候,同样的步骤将与其他用户重复诸如“stageUser”。对于此类步骤,并黄瓜提供了一种方式来概括以某种方式这些步骤?因为每个场景与因此这些6行使得开始scearios看起来更大,并用这些重复的步骤。

任何意见,将不胜感激。

java selenium cucumber bdd cucumber-jvm
3个回答
1
投票

你应该考虑将共同步骤的背景。似乎是一个黑客攻击的一位,但你可以提到在如下场景的描述中的用户。

  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

然后捕获该用户在之前钩。然后,用户将横跨在方案中的步骤可用。

private String user;

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

0
投票

使用@Before和@After注解之前运行,每个场景分别后。在情况下,当我们需要进行一些全局设置/清理:@BeforeSuite和@AfterSuite


0
投票

写更好的方案和步骤。你们都是关于这样的重复是痛苦的,你怎么样登录。相反,写大约只有你在做什么步骤;这些更容易被重用。

所以...

Scenario: Login
  Given I am registered
  When I login
  Then I should be logged in

再后来

Feature: Something that requires me to be logged in

Background
  Given I am logged in

Scenario: Do something
  When I do something
  Then something should be done

看我怎么都降低了一大堆背景弄成更加简单和抽象的。

我会在实施给一些提示这里

Given I am logged in
  @i = create_registered_user
  login(user: @i
end

When I login
  login(user: @i)
end

Given I am registered
  @i = create_registered_user
end

你可以把这个方法与任何复杂性。注意如何在最后一个场景都在使用我们没有注册的情况相对复杂的行为或功能甚至正在意识到这一点(注册登录的一部分)。

© www.soinside.com 2019 - 2024. All rights reserved.