Automatyzacja testów przy użyciu Selenium i Cucumber Framework: samouczek

Aplikacje internetowe stały się niezbędne dla firm poszukujących zaawansowanych sposobów łączenia się z docelową grupą docelową w świecie cyfrowym i służenia jej. Biorąc pod uwagę znaczenie aplikacji internetowych w dzisiejszych operacjach biznesowych, niezależnie od branży, należy je wszechstronnie przetestować, aby zapewnić użytkownikom najwyższy poziom obsługi.

Testowanie automatyzacji przyspiesza cykl życia oprogramowania. Ponadto, po przyjęciu podejścia Behavior Driven Development (BDD) do rozwoju, różni interesariusze, tacy jak programiści, zespoły kontroli jakości i zespoły niezwiązane z technologią, mogą aktywnie współpracować w projekcie.

Scenariusze są pisane w oparciu o oczekiwane zachowanie oprogramowania i jest testowane w celu sprawdzenia, czy pasuje do wymienionych scenariuszy.

Źródło obrazu

Te scenariusze są udokumentowane przy użyciu języka specyficznego dla domeny, takiego jak Gherkin. W każdym scenariuszu testowym konstrukcje języka naturalnego składające się z małych wyrażeń podobnych do języka angielskiego są używane do opisu zachowania i oczekiwanego wyniku aplikacji. Odbywa się to za pomocą dedykowanego narzędzia programowego, takiego jak Cucumber, które umożliwia wykonywanie automatycznych testów akceptacyjnych napisanych w Gherkin.

Co to jest Cucumber?

Cucumber to platforma testowa typu open source, która wspiera programowanie oparte na zachowaniu do automatyzacji testowania aplikacji internetowych. Testy są najpierw napisane w prostym scenariuszu, który opisuje oczekiwane zachowanie systemu z perspektywy użytkownika.

Ogórek, używany głównie do testów akceptacyjnych, jest napisany w języku Ruby, podczas gdy testy są napisane w korniszonie, język nietechniczny i czytelny dla człowieka.

Testowanie ogórków i selenu: podejście oparte na współpracy

Podczas gdy zautomatyzowane testy selenu zwiększają dokładność i szybkość cyklu rozwoju, Cucumber dodaje dodatkową przewagę do niego, co czyni go bardziej opartym na współpracy dla nietechnicznych interesariuszy zarządzania. Powszechnie korzystne dla testów akceptacji przez użytkowników, gdzie scenariusze testów są w dużej mierze zależne od zachowania, Cucumber wzmacnia testowanie automatyzacji.

Cucumber Framework

Cucumber Framework składa się głównie z trzech głównych części – pliku funkcji, Definicje kroków i plik testowy.

Plik funkcji

Samodzielna jednostka lub pojedyncza funkcja (taka jak login) dla projektu może być nazywana funkcją. Każda z tych funkcji będzie miała scenariusze, które należy przetestować przy użyciu Selenu zintegrowanego z Cucumber. Plik, który przechowuje dane o funkcjach, ich opisach i scenariuszach do przetestowania, nazywany jest plikiem funkcji.

Testy ogórków są zapisywane w tych plikach funkcji, które są przechowywane z rozszerzeniem – „.feature” . Plik funkcji może mieć opis, aby dokumentacja była bardziej czytelna.

Przykład:

Funkcja logowania na stronie internetowej

Nazwa pliku funkcji: userLogin .feature

Opis: Użytkownik powinien mieć możliwość zalogowania się po wprowadzeniu poprawnej nazwy użytkownika i hasła w odpowiednich polach. Użytkownik powinien zostać przekierowany na stronę główną, jeśli wprowadzona nazwa użytkownika i hasło są prawidłowe.

Słowa kluczowe takie jak GIVEN, WHEN i THEN używane do napisania testu w Cucumber nazywane są adnotacjami.

  • GIVEN użytkownik przechodzi do strony logowania, otwierając przeglądarkę Firefox
  • KIEDY użytkownik wprowadzi prawidłowe < nazwę użytkownika > I < hasło > wartości
  • TO użytkownik jest kierowany do t Strona domowa

Definicje kroków

Teraz, gdy funkcje są zapisane w plikach funkcji, należy uruchomić kod powiązanego scenariusza. Aby dowiedzieć się, która partia kodu musi zostać uruchomiona dla danego scenariusza, pojawia się definicja kroków. Plik Steps Definitions przechowuje dane mapowania między każdym krokiem scenariusza zdefiniowanego w pliku funkcji a kodem do wykonania.

Step Definitions może używać zarówno poleceń Java, jak i Selenium dla funkcji Java napisanych w celu odwzorowania plik funkcji do kodu.

Przykład:

package StepDefinition;import cucumber.api.java.en.Given;import cucumber.api.java.en.Then;import cucumber.api.java.en.When;public class Steps{@Given("^user navigates to the login page by opening Firefox$")//Code to Open Firefox Browser and launch the login page of application to define the GIVEN step of the feature@When("^user enters correct username and password values$")//take inputs for username and password fields using find element by xpath. Put the correct username and password values as inputs to define the WHEN step of the feature@Then ("^user gets directed to homepage$”)//Direct to the Homepage of the application as a result of correct username and password inputs in the WHEN step. This would define the THEN step of the feature

Test Runner File

Aby uruchomić test, jeden potrzebuje pliku testowego, który jest klasą JUnit Test Runner zawierającą lokalizację definicji kroku i inne podstawowe metadane wymagane do uruchomienia testu.

Plik testowy runner używa adnotacji @RunWith () z JUnit dla wykonywanie testów. Używa również adnotacji @CucumberOptions do definiowania lokalizacji plików funkcji, definicji kroków, integracji raportów itp.

Przykład:

Test Runner Class w pakiecie cucumberTest, z plikami funkcji w lokalizacji „src / test / Feature” i plikach definicji kroku w folderze „src / main / stepDefinition”.

Konfiguracja Cucumber Framework

Przed zbadaniem, jak działa Cucumber i jak pisać test z selenem ogórkowym, najpierw zastanówmy się, jak skonfigurować ogórek.Zainstalowanie wymienionych poniżej wymagań wstępnych to wszystko, czego użytkownik potrzebuje, aby rozpocząć testowanie automatyzacji Cucumber.

Wymagania wstępne dotyczące konfiguracji Cucumber i Selenium

  • Zainstaluj Javę
  • Zainstaluj Eclipse IDE for Java
  • Zainstaluj Maven
  • Zainstaluj Selenium Webdriver
  • Zainstaluj JUnit
  • Zainstaluj Cucumber

Jak napisać test w Cucumber dla Selenium Automation?

Kontynuując scenariusz funkcji logowania, stwórzmy przykładowy test w Cucumber. Ten kod uruchomi scenariusz logowania opisany w sekcji Funkcje i otworzy stronę główną witryny po wprowadzeniu prawidłowej nazwy użytkownika i hasła.

Najlepsze praktyki w testowaniu ogórków

Oto niektóre z najlepsze praktyki w testowaniu ogórków:

  • Wersje słoików Cucumber-java, Cucumber-junit i Cucumber-core powinny być takie same, aby zapewnić bezproblemową łączność.
  • Dodawanie po podpięciu do kodu do przechwytywania zrzutów ekranu, gdy test się nie powiedzie, może pomóc zdiagnozować problem i go debugować.
  • Użyj tagów do organizowania testów na podstawie definicji tagów. Jest to przydatne w przypadkach, gdy nie trzeba przeprowadzać wszystkich testów za każdym razem. Takie testy można oznaczyć za pomocą tagów i uruchamiać tylko wtedy, gdy jest to wymagane. Oszczędza to czas i możliwości przetwarzania systemu i zasobów.
  • Jak zawsze, ważne jest, aby przeprowadzać testy Cucumber Selenium na prawdziwych przeglądarkach i urządzeniach. BrowserStack oferuje Cloud Selenium Grid ponad 2000 prawdziwych przeglądarek i urządzeń do celów testowych – zarówno na żywo, jak i zautomatyzowanych. Po prostu zarejestruj się, wybierz wymaganą kombinację urządzenie-przeglądarka-system operacyjny i zacznij testować strony internetowe za darmo.

Uruchom testy Selenium za darmo

Automatyzacja testów jest absolutnie niezbędna do nadążać za rosnącymi wymaganiami dotyczącymi szybszej dostawy i optymalnej jakości testerów. Cucumber Framework w Selenium umożliwia pisanie scenariuszy testowych przy użyciu konstrukcji języka naturalnego, które opisują oczekiwane zachowanie oprogramowania dla danego scenariusza, dzięki czemu idealnie nadaje się do testowania akceptacji użytkownika.

Wreszcie, testowanie witryn internetowych na prawdziwym urządzeniu chmura to jedyny sposób na zapewnienie pełnej dokładności wyników. Dlatego zawsze wybieraj testy na rzeczywistych urządzeniach, aby kompleksowo zweryfikować wydajność witryny, zgodność z różnymi przeglądarkami i jakość oferowanych przez nią doświadczeń użytkownika.

Write a Comment

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *