2017-02-23 49 views
2

是否可以在量角器的任何套件运行之前运行一些测试或逻辑流程?在量角器的所有测试套件之前运行一些功能

例如,我想将我的量角器测试分解为一系列套件,用于测试应用程序的不同方面。假设Jenkins将在部署之前运行整个测试套件,但是单个开发人员将只运行与他们正在进行的工作相关的套件。

但是我希望我的大多数套件能够登录到应用程序,而且我不想在每个套件中重复登录逻辑。有没有一种方法可以在所有测试运行之前进行预先测试,以执行诸如登录之类的操作?

我想到了刚刚上市的这个地方,我定义我的套房在我的量角器配置像

suites: { 
    'my-profile': [ 
    './e2e/login/login-as-customer.e2e-spec.js', 
    './e2e/my-profile/my-profile-change-password.e2e-spec.js', 
    './e2e/my-profile/my-profile-change-username.e2e-spec.js' 
    ], 
    'my-contacts': [ 
    './e2e/login/login-as-customer.e2e-spec.js', 
    './e2e/my-contacts/add-contact.e2e-spec.js', 
    './e2e/my-contacts/remove-contact.e2e-spec.js' 
    ] 
} 

但问题是我不希望它有,当我们运行整个每次重新登录测试套件,或者开发人员想要一起运行多个套件。我需要的是预先设定的步骤。

这是可能与量角器?

+0

您不能在规格中使用'beforeAll()'来登录吗? – Gunderson

+1

我认为,即使在一起运行时,仍会导致登录发生在每个测试套件之前。我说的是在所有测试套件之前这样做,而不是在所有规格之前。 –

回答

3

您正在寻找您的conf文件中的onPrepare()函数。该函数在测试套件之前运行。以下是取自https://github.com/angular/protractor/blob/master/spec/withLoginConf.js

onPrepare: function() { 
    browser.driver.get(env.baseUrl + '/ng1/login.html'); 

    browser.driver.findElement(by.id('username')).sendKeys('Jane'); 
    browser.driver.findElement(by.id('password')).sendKeys('1234'); 
    browser.driver.findElement(by.id('clickme')).click(); 

    // Login takes some time, so wait until it's done. 
    // For the test app's login, we know it's done when it redirects to 
    // index.html. 
    return browser.driver.wait(function() { 
     return browser.driver.getCurrentUrl().then(function(url) { 
     return /index/.test(url); 
     }); 
    }, 10000); 
    } 
+0

是否有一种方法可以为某些测试套件指定一个'onPrepare'并为其他人指定一个不同的'onPrepare'?例如,如果某些测试需要使用一种类型的帐户登录,而其他测试需要使用另一种帐户登录? –

+2

不是,不。为此,我建议为每个测试套件分别提供一个conf文件。 – finspin

+1

您可以使用conf.js中的params对象来提供测试运行特定数据,例如帐户登录或密码等。使用 - browser.params.login.email访问它们 - 对于定义为 - params的param对象:{ login: { 电子邮件:'默认', 密码:'默认' } } https://github.com/angular/protractor/blob/master/lib/config.ts https://moduscreate.com/protractor_parameters_adding_flexibility_automation_tests/ – Grasshopper

相关问题