Cześć wszystkim. Jestem zupełnie świeży w tematyce testowania automatycznego (jak dotychczas zajmowałem się testowaniem manualnym), ale postanowiłem, że spróbuję napisać prosty skrypt testujący logowanie do strony WWW przy użyciu Selenium i Node.JS. Jak na razie wyszło mi coś takiego:
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var driver = new webdriver.Builder()
.forBrowser('firefox')
.build();
driver.get('https://poczta.o2.pl/');
driver.findElement(By.id('login')).sendKeys('admin');
driver.findElement(By.id('pass')).sendKeys('adminadmin');
driver.findElement(By.id('login-button')).click();
driver.sleep(6000).then(function() {
driver.getTitle().then(function(title) {
if(title === '@o2 Odebrane') {
console.log('Test passed');
} else {
console.log('Test failed');
}
});
});
driver.quit();
Działa, pomijając fakt, że pewnie jest napisane dość koślawo :) Moja pytania brzmią:
-
W jaki sposób mogę dodać do tego skryptu kolejne akcje do wykonania w ramach testu logowania? Powiedzmy, że chciałbym sprawdzić, czy można się zalogować wpisując poprawny login, niepoprawne hasło, potem w opcji niepoprawny login i hasło, potem bez wpisywania niczego, potem bez klikania w przycisk, tylko po kliknięciu enter itd. Czy takie akcje powinienem dodać w ramach tego samego skryptu testowego czy raczej powinny to być oddzielne skrypty? Jeżeli w ramach jednego, to jak dodać kolejne etapy do zamieszczonego przeze mnie skryptu?
-
Jak przerobić taki skrypt, aby był zgodny z Page Object Pattern? Czytałem kilka tutoriali na ten temat, ale nadal nie rozumiem, co powinienem właściwie zrobić, więc gdyby ktoś wytłumaczył mi to jak najbardziej łopatologiczny sposób, a zwłaszcza, na przykładzie, to byłbym bardzo wdzięczny :)
-
Czy moje podejście do pisania testów automatycznych jest w ogóle właściwe? Tak jak wspominałem korzystam z Selenium Stand Alone Server + Node.JS + Selenium Webdriver + Webdriver do Firefox. Skrypty piszę w Notepad++. Gdybym chciał później umieścić taki projekt na GIT, to jak mógłbym to zrobić?
Wiem, że pytania które zadaję będą dla większości z Was łatwizną, ale tak jak napisałem na początku, jestem świeży w temacie, ale rządny wiedzy :)
Z góry dziękuję za każdą podpowiedź i pozdrawiam!