2017-02-23 67 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

相關問題