Czym jest Selenium? Wprowadzenie Tutorial

Czym jest Selenium?

Selenium to bezpłatna (otwarta) platforma do automatycznego testowania używana do sprawdzania poprawności aplikacji internetowych w różnych przeglądarkach i platformach. Możesz używać wielu języków programowania, takich jak Java, C#, Pythonitp., aby utworzyć Selenium Skrypty testowe. Testy wykonane przy użyciu Selenium Narzędzie testujące jest zwykle określane jako Selenium Testowanie.

co to jest selen

Spostrzeżenia ekspertów

„Unikaj stosowania stałych opóźnień uśpienia w swoich testach. Zamiast tego używaj jawnych opóźnień (takich jak WebDriverWait), aby czekać na załadowanie elementów. Dzięki temu Twoje skrypty będą bardziej niezawodne i szybsze, ponieważ będą reagować dynamicznie na rzeczywiste warunki strony — kluczowa najlepsza praktyka dla studentów na całym świecie, zaczynając od Selenium".

— Himanshu Sheth, Selenium Ekspert

Selenium Zestaw narzędzi

Selenium Oprogramowanie to nie pojedyncze narzędzie, ale pakiet oprogramowania, każdy element przeznaczony jest do czegoś innego Selenium Potrzeby testowania jakości organizacji. Oto lista narzędzi

  • Selenium Zintegrowane środowisko programistyczne (IDE)
  • Selenium Pilot zdalnego sterowania (RC)
  • Sterownik sieciowy
  • Selenium Krata

Selenium Zestaw narzędzi

W tym momencie, Selenium RC i WebDriver są połączone w jedną strukturę Selenium 2. Selenium 1, nawiasem mówiąc, odnosi się do Selenium RC.

Video Tutorial Selenium

Kliknij tutaj jeśli film nie jest dostępny

Kto się rozwinął Selenium?

Ponieważ Selenium to zbiór różnych narzędzi, miał też różnych programistów. Poniżej znajdują się najważniejsze osoby, które wniosły znaczący wkład w powstanie Selenium Projekt

Rozwinięty Selenium

Głównie, Selenium była stworzony przez Jasona Hugginsa w 2004 roku. Inżynier w ThinkWorks, pracował nad aplikacją internetową, która wymagała częstych testów. Uświadomiwszy sobie, że powtarzalne ręczne testowanie ich aplikacji staje się coraz bardziej nieefektywne, stworzył plik JAVASCRIPT program, który automatycznie kontrolowałby działania przeglądarki. Nazwał ten program „JavaScriptTestRunner".

Dostrzegł w tym pomyśle potencjał umożliwiający automatyzację innych aplikacji internetowych JavaScriptRunner to oprogramowanie typu open-source, które później zostało przemianowane na Selenium rdzeń. Osoby zainteresowane poznaniem innych opcji testowania aplikacji internetowych mogą zapoznać się z poniższymi Selenium alternatywy.

Ten sam problem związany z polityką pochodzenia

Zasady tego samego pochodzenia zabraniają JavaKod skryptu uzyskuje dostęp do elementów z domeny innej niż ta, z której został uruchomiony. Przykład: kod HTML w witrynie www.google.com wykorzystuje a JavaProgram skryptowy „randomScript.js”. Ta sama polityka pochodzenia pozwoli randomScript.js na dostęp tylko do stron w google.com, takich jak google.com/mail, google.com/login lub google.com/signup. Nie może jednak uzyskać dostępu do stron z innych witryn, takich jak yahoo.com/search lub guru99.com, ponieważ należą one do różnych domen.

Ten sam problem związany z polityką pochodzenia

To jest powód, dla którego wcześniej Selenium RC, testerzy musieli zainstalować lokalne kopie obu Selenium Rdzeń (a JavaProgram skryptowy) i serwer WWW zawierający testowaną aplikację WWW, aby należały do ​​tej samej domeny

Narodziny Selenium Zdalne sterowanie (Selenium RC)

Pawła Hammanta

Niestety; testerzy używają Selenium Core musiał zainstalować całą testowaną aplikację i serwer WWW na swoich własnych komputerach lokalnych ze względu na ograniczenia nałożone przez ta sama polityka pochodzenia. Zatem inny inżynier ThinkWork, Pawła Hammanta, zdecydował się stworzyć serwer, który będzie działał jako serwer proxy HTTP, aby „oszukać” przeglądarkę, aby w to uwierzyła Selenium Rdzeń i testowana aplikacja internetowa pochodzą z tej samej domeny. System ten stał się znany jako Selenium Zdalne sterowanie or Selenium 1.

Narodziny Selenium Krata

Patricka Lightbody’ego

Selenium Siatka została opracowana przez Patricka Lightbody’ego aby zaspokoić potrzebę maksymalnego minimalizowania czasu wykonywania testów. Początkowo nazwał ten system „Hostowana kontrola jakości.” Był w stanie przechwytywać zrzuty ekranu przeglądarki podczas znaczących etapów, a także wysyłanie Selenium poleceń do różnych maszyn jednocześnie.

Narodziny Selenium IDE

Shinya Kasatani

Shinya Kasatani stworzonej Japonii Selenium IDE, A Firefox i rozszerzenie do Chrome, które może zautomatyzować przeglądarkę poprzez funkcję nagrywania i odtwarzania. Wpadł na ten pomysł, aby jeszcze bardziej przyspieszyć tworzenie przypadków testowych. Podarował Selenium IDE do Selenium Projekt w 2006.

Narodziny WebDrivera

Simon Stewart

Simon Stewart stworzył WebDriver około 2006 kiedy przeglądarki i aplikacje internetowe stawały się coraz potężniejsze i bardziej restrykcyjne JavaProgramy skryptowe takie jak Selenium Rdzeń. Był to pierwszy wieloplatformowy framework testujący, który mógł sterować przeglądarką z poziomu systemu operacyjnego.

Narodziny Selenium 2

In 2008, Cała Selenium Zespół zdecydował się połączyć WebDriver i Selenium RC, tworząc potężniejsze narzędzie o nazwie Selenium 2Z WebDriver będący rdzeniem. Obecnie, Selenium RC jest nadal rozwijany, ale tylko w trybie konserwacji. Większość Selenium Wysiłki projektu skupiają się obecnie na Selenium 2.

Dlaczego więc nazwa Selenium?

Imię Selenium wziął się z żartu, który Jason rzucił kiedyś swojemu zespołowi. Podczas Seleniumrozwój, inny zautomatyzowane testowanie Popularny był framework wykonany przez firmę o nazwie Mercury Interaktywny (tak, firma, która pierwotnie produkowała QTP, zanim została przejęta przez HP). Od Selenium jest dobrze znanym antidotum na Mercury zatruciem, Jason zasugerował to imię, a jego koledzy z drużyny je przyjęli. Tak więc nazwaliśmy te ramy aż do chwili obecnej.

Dlaczego Imię Selenium

Czym jest Selenium IDE?

Selenium Zintegrowane środowisko programistyczne (IDE) to najprostsze ramy Selenium apartament i jest najłatwiejszy do nauczenia. Jest Chrome i Firefox wtyczka które możesz zainstalować tak łatwo, jak to tylko możliwe, za pomocą innych wtyczek. Jednak ze względu na swoją prostotę, Selenium IDE powinno być używane tylko jako plik IDE narzędzie do prototypowania. Jeśli chcesz utworzyć bardziej zaawansowane przypadki testowe, będziesz musiał użyć jednego z nich Selenium RC lub WebDriver.

Selenium IDE

Czym jest Selenium Zdalne sterowanie (Selenium RC)?

Selenium RC był flagowy framework testowy całości Selenium projekt na długi czas. To pierwszy automat testowanie sieci narzędzie to pozwala użytkownikom używać preferowanego języka programowaniaOd wersji 2.25.0 RC może obsługiwać następujące języki programowania:

Selenium Zdalne sterowanie (Selenium RC)

Co to jest WebDriver?

WebDriver okazuje się lepszy niż Selenium IDE i Selenium RC w wielu aspektach. Implementuje bardziej nowoczesne i stabilne podejście do automatyzacji działań przeglądarki. WebDriver, w przeciwieństwie do Selenium RC, nie opiera się na JavaSkrypt dla Selenium Testowanie automatyczne. Kontroluje przeglądarkę komunikując się z nią bezpośrednio.

Obsługiwane języki są takie same jak w Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Rubin

Sterownik internetowy

Czym jest Selenium Siatka?

Selenium Siatka jest narzędziem używane razem z Selenium RC do uruchomienia testy równoległe na różnych komputerach i w różnych przeglądarkach jednocześnie. Wykonywanie równoległe oznacza uruchamianie wielu testów jednocześnie.

Cechy:

  • umożliwia jednoczesne uruchamianie testów in wiele przeglądarek i środowisk.
  • Oszczędność czasu ogromnie.
  • Wykorzystuje koncentratory i węzły pojęcie. Hub pełni rolę centralnego źródła Selenium polecenia dla każdego podłączonego do niego węzła.

Selenium Obsługa przeglądarki i środowiska

Ze względu na różnice architektoniczne, Selenium SDI, Selenium RC i WebDriver obsługują różne zestawy przeglądarek i środowisk operacyjnych.

  Selenium IDE Sterownik sieciowy
Wsparcie dla przeglądarki Mozilla Firefox i Chrome

Google Chrome 12 +

Firefox

Internet Explorer 7+ i Edge

Safari, 

HTMLUnit i PhantomUnit

Operasystemu Windows, Mac OS X, Linux Wszystkie systemy operacyjne, w których można uruchomić powyższe przeglądarki.

Uwaga: Opera Sterownik już nie działa

Jak wybrać właściwy Selenium Narzędzie dla Twoich potrzeb

Narzędzie Po co wybierać?
Selenium IDE
  • Aby poznać koncepcje dotyczące testowania automatycznego i Selenium, w tym:
  • Polecenia Selenese, takie jak wpisz, otwórz, kliknij i czekaj, potwierdź, zweryfikuj itp.
  • Lokalizatory, takie jak identyfikator, nazwa, xpath, selektor css itp.
  • Wykonanie dostosowane JavaKod skryptu przy użyciu runScript
  • Eksport przypadków testowych w różnych formatach.
  • Aby utworzyć testy z niewielką lub żadną wcześniejszą wiedzą z zakresu programowania.
  • Aby utworzyć proste przypadki testowe i zestawy testów, które można później wyeksportować do RC lub WebDriver.
  • Aby przetestować aplikację internetową przeciwko Firefox i tylko Chrome.
Selenium RC
  • Aby zaprojektować test przy użyciu bardziej wyrazistego języka niż Selenese
  • Aby uruchomić test w różnych przeglądarkach (oprócz HtmlUnit) w różnych systemach operacyjnych.
  • Aby wdrożyć testy w wielu środowiskach przy użyciu Selenium Krata.
  • Aby przetestować aplikację w nowej przeglądarce obsługującej JavaScenariusz.
  • Testowanie aplikacji internetowych przy użyciu złożonych scenariuszy opartych na technologii AJAX.
Sterownik sieciowy
  • Aby użyć określonego języka programowania przy projektowaniu przypadku testowego.
  • Aby przetestować aplikacje bogate w funkcjonalności oparte na AJAX.
  • Aby wykonać testy w przeglądarce HtmlUnit.
  • Aby utworzyć spersonalizowane wyniki testów.
Selenium Krata
  • Aby uruchomić swoją Selenium Skrypty RC w wielu przeglądarkach i systemach operacyjnych jednocześnie.
  • Aby uruchomić ogromny zestaw testów, należy je ukończyć w jak najkrótszym czasie.

Porównanie pomiędzy Selenium i QTP (obecnie UFT)

Szybki test profesjonalny (QTP) to autorskie narzędzie do automatycznego testowania, które wcześniej należało do firmy Mercury Interaktywny zanim Hewlett-Packard go przejął w 2006. Jego późniejszym właścicielem jest MicroFocus, a narzędzie przemianowano na UFT one. Selenium Pakiet narzędziowy ma wiele zalet w porównaniu z pakietem Tool Suite  QTP jak opisano szczegółowo poniżej –

Zalety i korzyści Selenium nad QTP

Selenium QTP
Otwarte źródło, swobodnie korzystać, darmo. Komercyjne.
Wysoce rozszerzalny Ograniczone dodatki
Można przeprowadzać testy różne przeglądarki Można przeprowadzać testy tylko w Firefox, Internet Explorer i Chrom
podpory różne systemy operacyjne Można używać tylko w Windows
podpory urządzenia mobilne QTP obsługuje automatyzację testów aplikacji mobilnych (iOS i Android) korzystając z rozwiązania HP o nazwie – HP Mobile Center
Potrafi wykonywać testy jednocześnie dotychczasowy przeglądarka jest zminimalizowana Aby aplikacja była widoczna na pulpicie, musi ona być testowana
Potrafi wykonywać testy równolegle. Można wykonywać tylko równolegle, ale przy użyciu Quality Center, które również jest produktem płatnym.

Studia przypadków w świecie rzeczywistym

🔍 Studium przypadku 1: Kompatybilność między przeglądarkami dla pulpitu nawigacyjnego SaaS

Scenariusz

Firma oferująca oprogramowanie jako usługę przygotowywała się do wydania pulpitu analitycznego, który musiał działać spójnie we wszystkich nowoczesnych przeglądarkach (Chrome, Firefox(przeglądaj przeglądarki Edge i Safari).

Opis projektu

Ręczne testowanie każdej przeglądarki było czasochłonne, podatne na błędy i nie nadążało za szybkimi iteracjami rozwoju.

Rozwiązanie z Selenium

Inżynier ds. zapewnienia jakości stworzył Selenium Krata skonfigurowano do jednoczesnego wykonywania tego samego zestawu testów w wielu przeglądarkach i kombinacjach systemów operacyjnych. Testy zostały utworzone w Python za pomocą Selenium WebDriver do takich czynności jak logowanie, filtrowanie wykresów i eksportowanie danych.

Wynik

  • Skrócono czas regresji o 80%.
  • Wcześnie odkryto błędy renderowania charakterystyczne dla danej przeglądarki (np. nieprawidłowo wyrównane wykresy w IE).
  • Utrzymano spójny interfejs użytkownika pulpitu nawigacyjnego w całej przeglądarce bez dodatkowych cykli ręcznych.

⚙️ Studium przypadku 2: Integracja CI/CD dla aplikacji internetowej za pośrednictwem Selenium + TestNG

Scenariusz

Średniej wielkości firma zajmująca się tworzeniem stron internetowych polega na procesie CI/CD wykorzystującym Jenkins. Musieli upewnić się, że podstawowe ścieżki użytkownika działają po każdej zmianie kodu.

Opis projektu

Wdrożenia nowych wersji oprogramowania czasami zakłócały przepływ użytkowników — logowanie, przesyłanie formularzy — co uniemożliwiało wykrycie aż do zakończenia ręcznych testów na koniec dnia.

Rozwiązanie z Selenium

Tester zaimplementował JavaOparte Selenium Pakiet WebDriver zintegrowany z TestNG. Testy obejmowały uwierzytelnianie, aktualizacje profili i funkcje wyszukiwania. Były one uruchamiane przy każdej kompilacji Jenkins, wykorzystując równoległe wykonywanie i parametryzację przeglądarki.

Wynik

  • Osiągnięto szybką reakcję zwrotną: uszkodzone przepływy były natychmiast oznaczane.
  • O ponad 60% zmniejszono liczbę błędów występujących po wdrożeniu.
  • Umożliwiło programistom rozwiązywanie problemów zanim trafiły one do działu zapewnienia jakości.

🚀 Studium przypadku 3: Przyspieszenie wdrażania funkcji dla agregatora podróży

Scenariusz

Platforma agregująca podróże musiała wydać udoskonaloną funkcję rezerwacji lotów. Ręczne testy regresji na ponad 10 stronach trwały dni i zablokowały wydanie.

Opis projektu

Presja związana z koniecznością skrócenia czasu wprowadzania produktów na rynek nie mogła być większa niż ręczne cykle testowania, gdyż wiązało się to z ryzykiem opóźnień i obniżenia jakości.

Rozwiązanie z Selenium & Model obiektu strony

Kierownik działu automatyzacji kontroli jakości przedstawił strukturę Page Object Model (POM) w języku C#. Selenium Skrypty WebDriver obejmowały elementy strony i akcje (wyszukiwanie lotów, stosowanie filtrów, przypadki płatności). Automatyczne przebiegi testów były uruchamiane co noc w GitLab CI.

Wynik

  • Czas trwania testów skrócił się z 3 dni do zaledwie 4 godzin.
  • Ponowne wykorzystanie skryptów w wielu funkcjach pozwoliło ograniczyć nakład pracy związany z ich tworzeniem o 50%.
  • Zaufanie wzrosło: wersja została dostarczona zgodnie z planem, a zgłoszeń błędów było niewiele.

Zalety QTP ponad Selenium

QTP Selenium
Może testować zarówno aplikacje internetowe, jak i desktopowe Może testować tylko aplikacje internetowe
Pochodzi z wbudowane repozytorium obiektów Nie posiada wbudowanego repozytorium obiektów
Automatyzuje się szybciej niż Selenium ponieważ jest to w pełni funkcjonalne IDE. Automatyzuje się wolniej, ponieważ nie ma natywnego IDE i do programowania można używać tylko IDE innej firmy.
Testowanie oparte na danych jest łatwiejsze do przeprowadzenia, ponieważ posiada wbudowane tabele danych globalnych i lokalnych. Testowanie oparte na danych jest bardziej kłopotliwe, ponieważ przy ustawianiu wartości danych testowych trzeba polegać na możliwościach języka programowania
Może uzyskać dostęp do elementów sterujących w przeglądarce(takie jak pasek ulubionych, pasek adresu, przyciski Wstecz i Dalej itp.) Nie można uzyskać dostępu do elementów poza testowaną aplikacją internetową
Zapewnia profesjonalne obsługa klienta Nie jest oferowana żadna oficjalna pomoc techniczna dla użytkowników.
Posiada natywną możliwość eksportować dane testowe do formatów zewnętrznych Nie ma natywnej możliwości eksportowania danych wykonawczych do formatów zewnętrznych
Zbudowano wsparcie parametryzacji Parametryzację można przeprowadzić poprzez programowanie, ale jest ona trudna do wdrożenia.
Raporty z testów są generowane automatycznie Brak natywnej obsługi generowania raportów z testów/błędów.

Choć wyraźnie QTP ma bardziej zaawansowane możliwości, Selenium przewyższa QTP w trzech głównych obszarach:

  • Koszty:(ponieważ Selenium jest całkowicie darmowy)
  • Elastyczność (ze względu na wiele języków programowania, przeglądarek i platform, które obsługuje)
  • Testowanie równoległe(coś, do czego QTP jest w stanie, ale tylko przy użyciu Quality Center)

Podsumowanie

  • Cały Selenium Software Testing Suite składa się z czterech komponentów:
  • Selenium Pomysł Firefox i dodatek do Chrome, którego można używać tylko do tworzenia stosunkowo prostych przypadków testowych i zestawów testów.
  • Selenium Pilot zdalnego sterowania, znany również jako Selenium 1, jest pierwszy Selenium narzędzie pozwalające użytkownikom na wykorzystanie języków programowania do tworzenia złożonych testów.
  • WebDriver to nowsze przełomowe rozwiązanie, które pozwala skryptom testowym komunikować się bezpośrednio z przeglądarką, kontrolując ją z poziomu systemu operacyjnego.
  • Selenium Siatka jest także narzędziem, z którego się korzysta Selenium RC umożliwia wykonywanie równoległych testów w różnych przeglądarkach i systemach operacyjnych.
  • Selenium RC i WebDriver zostały połączone, tworząc Selenium 2.
  • Selenium jest korzystniejszy niż Microfocus UFT One pod względem kosztów i elastyczności.