1

我有一个像这样的黄瓜功能:

@MainSuite
Scenario: Verify that user can login
  Given I can see the login form
  Then I set a username
  And I set a password
  And I click in Login button
  Then I see the "wrong-password" message

我需要检查用户是否可以登录 5 个不同的页面。我需要在 5 个不同的地方运行该功能。就像,我需要在 /login.html、/old_login.html、/after_restore_password.html 等中运行该功能(这只是一个示例)。

你知道怎么做吗?

目前,我只有一个硬编码文件。显然我需要改变它。

this.Given(/^I can see the login form$/, function(done) {
    this.goTo('login.html');
    browser.wait(EC.visibilityOf(this.loginFormContainer));
    done();
});
4

1 回答 1

1

创建一个包含您可以访问的不同登录页面的对象。

如果需要执行任何额外的代码,请在步骤 def 中包含 if 语句。

this.Given(/^I can see the "(.*)" login form$/, function(loginPage, done) {
    var logins = {
         login : "login.html",
         afterpasswordreset: "after-password-reset.html"
    }
    loginPage = loginPage.toLowerCase().replace(" ", "");
    this.goTo(logins[loginPage]);
    browser.wait(EC.visibilityOf(this.loginFormContainer));
    done();
});

为每个登录变体制作单独的场景或功能文件,或者简单地为它们创建一个场景大纲

编辑

以下是我将如何实施方案大纲:

@MainSuite
Scenario Outline: Verify that user can login
  Given I can see the "<loginType>" login form
  And I set a username
  And I set a password
  When I click in Login button
  Then I see the "wrong-password" message

 Examples:
    | loginType              |
    | Login                  |
    | After Password Reset   |
于 2017-02-12T04:46:10.880 回答