W tym artykule przygotujemy sobie bazę do pisania testów w Gherkinie i utworzymy szkielet całego frameworka.

Jeżeli jesteś „początkujący” i jest to Twój pierwszy kontakt z C#/SpecFlow/Appium to polecam przeczytać najpierw wpis na blogu testuj.pl, w którym wszystko jest opisane krok po kroku od podstaw. Tutaj celowo pomijam te elementy, które są tam opisane wystarczająco dokładnie.

Krótki powód dla którego wybrałem taki a nie inny stack technologiczny: wszystko jest darmowe, do wszystkiego mamy zaplecze w postaci społeczności rozwijającej produkt, aplikacje na Windows 10 zazwyczaj są pisane w C# w Visual Studio (co pozwala część problemów rozwiązać wspólnie z developerami). Bo bez pomocy developerów, automatyzacja aplikacji na platformę UWP ma marne szanse powodzenia.

Czego będziemy potrzebować do szkieletu naszych testów:

  • Visual Studio Community Edition
  • SpecFlow – który ogarnia Gherkina (instalujemy jako addon do VS po czym musimy zrestartować Visual Studio)
  • NUnit Test Adapter – do podręcznego wyświetlania wyników testów (instalujemy jako addon do VS po czym musimy zrestartować Visual Studio)
  • Paczki dociągane NuGetem (taki Maven czy NPM dla Visual Studio) takie jak: Appium (to takie Selenium tylko rozbudowane o wsparcie dla platform iOS, Android i metod pozwalających na zachowania związane z ekranami dotykowymi tj. swipe, tap itp..), NLog (potrzebujemy ładnie logować zachowanie naszych testów)
  • WinAppDriver (ponoć jest dorzucany do Appium, ale możemy zainstalować go w wersji standalone)
  • Windows SDK (i wspaniały tool jakim jest Inspect, który pozwala lokalizować elementy za pomoca ID, Name czy XPatha)

Zaczniemy od stworzenia w Visual Studio projektu testów jednostkowych i dociągniemy NuGetem do projektu:

  • Appium.Webdriver
  • SpecFlow.NUnit (to nie jest to samo co poprzedni SpecFlow)

Generujemy skrypt Gherkina za pomocą SpecFlow (musisz go mieć zainstalowanego wcześniej, jako dodatek do Visual Studio):

 

W końcu piszemy nasz skrypt i klikając prawym przyciskiem na naszych krokach (po prawej od słów kluczowych Given,When,Then) wybieramy „Generate Step Definition”.

 

Wybieramy opcje „Copy methods to clipboard” jeżeli chcemy wkleić definicję kroków do dowolnej klasy, lub Generate (to od razu stworzy nową klasę w której będziemy definiować co naprawdę ma robić nasz framework testowy).

W ten sposób stworzyliśmy pierwszą warstwę frameworka testowego, dzięki któremu nasze scenariusze testowe mogą:

  • być pisane przez ludzi z biznesu
  • być pisane przez testerów manualnych
  • w prosty sposób przenoszone z gotowych scenariuszy z Jiry przez stażystów
  • w prosty sposób przenoszone z gherkina na scenariusze testowe 🙂

Przy pisaniu w Gherkinie powinniśmy pamiętać o dobrych praktykach:

  • Given mapujemy bezpośrednio na wstępne warunki (preconditions).
  • When są kolejnymi krokami scenariuszy testowych (test case). Choć i po drodze możemy w nich używać asercji.
  • Then jest efektem końcowym jaki chcemy osiągnąć.

 


Pozostało nam do zrobienia (kolejne posty)