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.
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".
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
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
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.
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)
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
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 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 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.
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.
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:
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
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 |
|
Selenium RC |
|
Sterownik sieciowy |
|
Selenium Krata |
|
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.