,

Webdriver I/O - pierwszy test

W tym wpisie znajdziesz informacje które pozwolą Ci napisać Twój pierwszy test automatyczny za pomocą Webdriver I/O. Będzie to bardzo prosty test, a sposób uruchomienia bazował będzie na podstawowej konfiguracji. Zaczynajmy.

Co zrobimy?

  • napiszemy prosty obiekt konfiguracji Webdriver I/O
  • napiszemy prosty test automatyczny
  • uruchomimy stworzony test

Obiekt konfiguracji Webdriver I/O

Zaczniemy od stworzenia pliku w którym przechowywać będziemy nasz pierwszy test automatyczny. W swoim projekcie utwórz folder w którym będziesz przechorowywał testy. Ja tworze po prostu folder ‘tests’ w głównym folderze aplikacji, jeżeli Tobie taka lokalizacja nie odpowiada to możesz stworzyć dowolną.

W tym folderze stwórz również swój pierwszy plik testowy, na początku będzie to pusty plik javascript. Ja mój nazwałem: first-simple-test.js

Struktóra aplikacji powinn wyglądać mniej więcej tak:

/webdriver-examples
-/lib/..
-/node_modules/..
-/tests/
 -/first-simple-test.js
-/package.json

Teraz przejdziemy do tworzenia testu. W ulubionym edytorze tekstowym (ja używam Atom – polecam: https://atom.io/) otwórz plik first-simple-test.js

W pierwszej kolejności musimy pobrać do naszego pliku moduł nodowy ‘webdriver’, który jak pamiętasz znajduje się w folderze node_modules, i przypisać go do zmiennej.

	var webdriverio = require('webdriver');

Mając już webdrivera przechowywanego w zmiennej webdriverio, możemy napisać obiekt konfiguracyjny naszego test. Stwórz zmienną options, która jest obiektem, zawierającym narazie jedną właściwość: desiredCapabilities. W tej właściwości przechowujemy konfigurację, miedzy innymi nazwę przeglądarki w której test ma zostać uruchomiony. Tylko tyle potrzeba nam konfiguracji aby uruchomić nasz pierwszy test! (Oczywiście opcji konfiguracyjnych jest bardzo dużo, przez najważniejsze przejdziemy w kolejnym wpisie)

	var webdriverio = require('webdriver');

	var options = {
		desiredCapabilities: {
			browserName: 'firefox'
		}
	};

Pierwszy test automatyczny w Webdriver I/O

W zmienne webdriverio przechowujemy obiekt webdrivera, który udostępnia nam wiele metod umożliwiających tworzenie testów automatycznych. Dlatego nasz test będzie polegał na łańcuchowym wywołaniu metod webdriver na tym obiekcie.

Pierwsza metoda ‘remote()’ – przyjmuje obiekt konfiguracyjny jako parametr, i tłumaczy webdriverowi gdzie i jak uruchomić dalsze metody.

	webdriverio
    	.remote(options)

Druga to metoda inicjalizacyjna, która inicjuje sesję testową dla tego testu:

	webdriverio
    	.remote(options)
		.init()

Kolejna określi jaki adres url powinien zostać otworzony w przeglądarce. Nasz test otworzy wyszukiwarkę google.

	webdriverio
    	.remote(options)
		.init()
		.url('http://www.google.com')

Teraz przechodzimy do samego testowania – pobierzemy tytuł strony oraz wypiszemy go w konsoli. Pozwoli nam to sprawdzić jaki tytuł posiada testowana przez nas strona. W tym celu posłużymy się metodą getTitle()

	webdriverio
    	.remote(options)
		.init()
		.url('http://www.google.com')
		.getTitle().then(function(title) {
        	console.log('Title was: ' + title);
    	})

Jak widzisz, obiekt zwracany przez metodę getTitle() posiada metodę .then(). Wszystko dlatego, że obiekt zwracany przez getTitle jest obiektem typu Promiss, a każdy promiss swoją faktyczną wartość ma dostępną dopiero w metodzie .then() czyli momencie w którym zostanie rozwiązany. (Więcej o promissach w kolejnych wpisach, narazie wystarczy nam podstawowa wiedza). Metoda .then() jako parametr przyjmuje funkcje anonimową (tz. callback), która zostanie wywołana gdy Promiss zostanie rozwiązany. W callbacku posiadamy paramnet będący rozwiązaniem promiss’a .getTitle(), czyli title. Następnie po prostu wypisujemy otrzymany tytuł w konsoli za pomocą console.log().

Ostatecznie, zakonćzymy testy za pomocą metody .end()

Cały test wygląda następująco:

	webdriverio
    	.remote(options)
		.init()
		.url('http://www.google.com')
		.getTitle().then(function(title) {
        	console.log('Title was: ' + title);
    	})
		.end();

Jego rezultatem jest wypisanie w konsoli tytułu odwiedzonej strony.

Uruchomienie testu

Uruchomienie naszego testu jest równie proste jak jego napisanie. Wystraczy że uruchomimy terminal, a w nim:

  1. Uruchomimy Selenium (przypominam: https://testgeeks.co/instalacja-webdriver-io-cz-1/)
  2. W drugim oknie terminala uruchomimy test za pomocą node
	node tests/first-simple-test.js

W rezultacie, w konsoli powinniśmy otrzymać tytuł odwiedzonej strony.

Webdriver I/O rezultat

 

Podsumowanie

Udało nam się dziś:

  • napisać konfigurację testu automatycznego webrdirver I/O
  • napisać pierwszy test automatyczny
  • uruchomić pierwszy test automatyczny

W następnym wpisie serii będziemy kontynuować pracę z Webdriver I/O, i między innymi zrobimy:

  • pełną konfigurację Webdriver I/O
  • zrozumiemy dogłębnie promissy

Mam nadzieję że ten wpis pomógł wam stworzyć pierwszy test automatyczny z wykorzystaniem Webdriver I/O.

Dodaj komentarz