środa, 1 marca 2017

PySilesia: Selenium Page Object Pattern dla BDD


W zeszły czwartek miałam okazję być na spotkaniu PySilesia poświęconemu tematyce automatyzacji testów. Prelegent - Maciej Kusz - opowiadał o frameworku do testów automatycznych, który tworzy, wykorzystując do tego Pythona, Selenium i język Gherkin.
Gherkin to język opisu zachowań, używany w BDD (Behaviour Driven Development). Charakteryzuje się tym, że jest łatwo zrozumiały dla nietechnicznych użytkowników systemu (również Project Managerów, Project Ownerów, dział marketingu), a jednocześnie posiada strukturę umożliwiającą zaprogramowanie zapisanych scenariuszy.

Sam framework z kolei, napisany w Pythonie, wykorzystuje Selenium do poruszania się i "klikania" po testowanych stronach internetowych. Jedną z zalet Selenium jest możliwość przełączania pomiędzy różnymi silnikami, a co za tym idzie, możliwość wykonania scenariuszy testowych na różnych przeglądarkach bez dużego nakładu pracy.
Page Object Pattern - lub Page Object Model - to z kolei wzorzec polegający na rozdzieleniu stron internetowych (widoku) od samych testów.





PageObject na diagramie to klasy, które zawierają mapowanie strony internetowej na elementy dostępne w Selenium (pola tekstowe, przyciski, linki... praktycznie wszystko, co jest na stronie). Każda podstrona jest zmapowana jako osobna klasa.
Same testy nie korzystają już z czystego Selenium - nie powinno być w nich odwołań bezpośrednio do elementów strony, ale do elementów zmapowanych w klasach PageObject.
Takie podejście zwiększa czytelność kodu i pomaga w utrzymywaniu go.

Brak komentarzy:

Prześlij komentarz