Selenium Webdriver Architecture: większość początkujących nie wie

Zaczniemy od Samouczek dotyczący selenu Czarna książka w wyczerpującym i innym podejściu, w pierwszym segmencie samouczka Selenium omówimyArchitektura Selenium Webdriver, co to jest Selenium Webdriver, przegląd Selenium Webdriver, Krótka historia selenu, Zalety selenu, ograniczenia selenu, składniki selenu i kilka często zadawanych pytań.

Co to jest Selenium Webdriver

Selenium to technologia lub framework open source dzięki którym możemy zautomatyzować Aplikacje internetowe. Selenium obsługuje testowanie w wielu przeglądarkach, obsługiwanych jest również wiele języków, takich jak Java, Ruby, Perl, Python. Obsługuje różne platformy, takie jak Windows, Linux, macOS itp. W ramach platformy.

Krótka historia o selenie:

Selen został początkowo wyewoluowany z wewnętrznego narzędzia przez Jasona Hugginsa w 2004 roku pod adresem ThoughtWorks.

Później w 2007 roku Huggins dołączył do organizacji Google i wraz z innymi, takimi jak Jennifer Bevan, kontynuował projektowanie i rozwój jednej z początkowych odmian selenu o nazwie Selen RC. W podobnym okresie inna osoba o imieniu Simon Stewart z ThoughtWorks opracowała zaawansowane narzędzia do automatyzacji przeglądarki internetowej, takie jak WebDriver. 

W 2008 roku Philippe Hanrigou z ThoughtWorks wymyślił koncepcje zdalnej automatyzacji znane jako „Selenium Grid”.

W 2009 roku na konferencji Google Test Automation zdecydowano się na połączenie obu projektów i nadano im nazwę Selenium WebDriver lub Selenium 2.0.

Zalety Selenium Webdriver:

A. Open Source:

Selenium jest technologią / frameworkiem o otwartym kodzie źródłowym, stąd ogromne wsparcie społeczności jest dostępne tam, gdzie zakres rozwoju i ulepszeń jest szybki i rozległy, również jako open source możesz wdrożyć dowolną konkretną funkcję, której potrzebujesz w ramach swojej pracy i wnieść swój wkład w Open społeczność źródłowa. 

B. Obsługa wielu języków programowania:

Selen jest obsługiwany przez powszechnie używane języki; pojawia się z różnymi powiązaniami języka programowania, więc możesz wybrać preferowany język do pracy z selenem zgodnie ze swoimi potrzebami i wiedzą.

Selenium zapewnia obsługę poniższych języków programowania: 

  • Java 
  • C#
  • Perl
  • pyton
  • Rubin  
  • Javascript

C. Niezależność od platformy:

Selenium jest niezależne od platformy, więc możesz zautomatyzować swoje aplikacje internetowe na dowolnej platformie i dowolnym systemie operacyjnym, tj. Windows, Linux, macOS itp.

D. Możliwość testowania w różnych przeglądarkach

Selenium obsługuje możliwość testowania aplikacji internetowych w różnych przeglądarkach; możesz uruchomić swój zestaw testów napisany przy użyciu Selenium w wielu przeglądarkach, takich jak Firefox, Chrome, IE, Safari itp.

E. Możliwość testowania na różnych urządzeniach

Selenium Test Automation służy do automatyzacji testowania mobilnych aplikacji internetowych na różnych urządzeniach, takich jak Android, IOS. 

F. Wykonywanie zdalne lub w chmurze:

Selenium GRID zapewnia funkcję uruchamiania i kontrolowania skryptu testowego automatyzacji aplikacji internetowej w chmurze, tworząc jeden system jako węzeł nadrzędny, a drugi jako węzeł podrzędny, węzły podrzędne łączą się z jednym węzłem nadrzędnym, a węzeł nadrzędny monitoruje podrzędny węzły, więc twoje testy znajdują się w różnych węzłach slave z różnymi systemami operacyjnymi i różnymi przeglądarkami, takimi jak Chrome, Firefox, Internet Explorer itp.

G. Możliwość testowania równoległego:

Dzięki Selenium możesz osiągnąć funkcje automatycznego testowania równoległego, tj. Możesz uruchamiać swój skrypt testowy lub przypadki testowe automatyzacji równolegle w tej samej przeglądarce i innym lub tym samym systemie operacyjnym. Ta funkcja pomaga uzyskać krótszy czas wykonywania całego zestawu testów automatyzacji, a także umożliwia równoległe testowanie wykonalności i zgodności aplikacji internetowej z wieloma systemami operacyjnymi i wieloma przeglądarkami.   

H. Zgodność z wieloma Framework oraz narzędziami i technologiami innych firm

Framework Selenium można łatwo zintegrować z wieloma różnymi technologiami i frameworkami stron trzecich, takimi jak różne frameworki testów jednostkowych, tj TestNg, JUnit, MbUnit, Nunit itp., różne narzędzia do kompilacji, takie jak Ant, Maven, Gradle itp., narzędzia ciągłej integracji, np. Jenkins, różne narzędzia do zarządzania testami, takie jak Jira, testlink itp., różne narzędzia do raportowania, takie jak Allure, Extent Raport itp.

I. Wykonywanie bezgłowej przeglądarki: 

Selenium Webdriver obsługuje bezgłowy sterownik przeglądarki dla zautomatyzowanych wykonanie przypadku testowego, w którym wszystkie przypadki testowe automatyzacji działają w trybie przeglądarki bez głowy, tj. żadna przeglądarka nie jest otwierana, a wykonanie staje się błyskawiczne, dzięki czemu możesz szybko ukończyć testowanie skryptów i funkcjonalności w przypadku pilnego wydania i walidacji.

Możesz w zasadzie użyć htmlSterowniki jednostek or kierowca-duch za wykonanie bezgłowe z Selenium.  

Wady selenu:

  • Obsługa aplikacji natywnych/okienkowych, brak : 
    • Selenium jest używane do automatyzacji aplikacji Web Bade, ale nie zapewnia wsparcia dla aplikacji natywnych ani aplikacji opartych na systemie Windows.
  • Kompleksowa automatyzacja oparta na obrazach: 
    • Selenium nie zapewnia wyczerpującego wsparcia w zakresie automatyzacji problemów lub aplikacji opartych na obrazach, chociaż możemy korzystać z narzędzi innych firm, takich jak Sikuli, rozwiązania oparte na tesseract ocr, które można zintegrować z Selenium w celu wykonania zadania związanego z walidacją / operacjami obrazu lub wyodrębnianie i sprawdzanie poprawności danych obrazu, mają również pewne ograniczenia, na przykład możesz napotkać problemy z testowaniem równoległym, identyfikowaniem odręcznych dokumentów i sprawdzaniem poprawności tych w procesie automatyzacji aplikacji, jeśli istnieją takie przypadki użycia.
  • Integracja z narzędziami innych firm: 
    • Jedną z wad integracji z wieloma narzędziami innych firm z selenem jest to, że skrypt automatyzacji może czasami działać wolniej.
  • Ramy selenu Rozwój:
    • Projektowanie i rozwijanie zaawansowanego frameworka automatyzacji testów z Selenium wymaga dużej wiedzy na temat selenu i nie jest zbyt proste, aby zbudować platformę automatyzacji z wieloma narzędziami wraz z Selenium.
  • Problemy dotyczące przeglądarek: 
    • Podczas pracy z Selenium możesz napotkać pewne problemy specyficzne dla przeglądarki, szczególnie z IE, czasami możesz nie być w stanie obsłużyć działań internetowych, takich jak kliknięcie, klawisze wysyłania itp., A przeglądarka może przestać działać. Dlatego musisz mieć zaawansowaną wiedzę, aby poradzić sobie z tymi obszarami podczas automatyzacji aplikacji zbudowanej na Bootstrap JS i wykonywania jej w przeglądarce IE.
    • Możesz również napotkać problemy ze zgodnością przeglądarki w wersjach Selenium Webdriver; musisz upewnić się, że używasz kompatybilnej przeglądarki Firefox, Chrome lub jakiejkolwiek innej przeglądarki, na której pracujesz z wersją Selenium Webdriver.
  • Brak oficjalnego wsparcia : 
    • Podobnie jak wszystkie inne narzędzia Open Source, selen jest również narzędziem typu open source, co oznacza, że ​​nie będziesz mieć oficjalnego wsparcia dla swoich problemów, jak żadne płatne narzędzia, mimo że dostępne jest bardzo duże wsparcie społeczności, możesz z nimi pracować nad stwierdzeniem problemu , ale może to być bardzo czasochłonne.

Składniki selenu: 

Selen jako narzędzie posiada wymienione poniżej komponenty, którymi są: 

Selen IDE :

  • Selenium IDE lub Selenium Integrated Development environment to najbardziej początkowa wersja Selenium for Web Application Automation.
  • Selenium IDE to rodzaj narzędzia do nagrywania i odtwarzania, którego można używać jako wtyczki przeglądarki i rejestrować działania internetowe w swoich aplikacjach i które można zapisać jako skrypt, a później można uruchomić ten sam nagrany skrypt, aby wykonać i wykonać walidacje.
  • Ale ma kilka ograniczeń, takich jak:
    • Musisz uruchomić nagrany skrypt, modyfikacja skryptu nie jest tak elastyczna, ani nie możesz raczyć się używać przypadków i skryptów we własnym, niezależnym podejściu.
    • Wykonanie jest z natury bardzo powolne.
    • W większości obsługuje Firefoksa, chociaż można wprowadzić pewne poprawki, aby uruchomić nagrany skrypt w innych przeglądarkach, takich jak Google Chrome.
    • wykonywanie równoległe nie jest obsługiwane.
    • Testy mobilne nie są obsługiwane.
    • Generowanie raportów nie jest dobre.
  • W rzeczywistości jest to bardzo wstępna wersja Selenium, dzięki której możesz wykonać bardzo ograniczoną automatyzację testów dla aplikacji internetowych.

Selen RC

  • Selenium Remote Control to kolejna wersja Selenium i bardzo często nazywana jest Selenium 1.0.

Jak Selenium RC działa wewnętrznie:

Selenium RC składa się z dwóch głównych komponentów, takich jak Selenium Server, Selenium Client.

Serwer Selenium uruchamia przeglądarki i uruchamia komendy selenium, które napisałeś jako skrypt automatyzacji testów, używając bibliotek klienckich Selenium dostępnych w różnych językach.

Selenium Server konwertuje polecenia / skrypty testowe na coś, co nazywa się poleceniami Selenese i działa jako proxy HTTP.

Serwer Selenium współdziała z silnikiem przeglądarki internetowej i wykonuje operację sieci Web, którą próbujesz zautomatyzować w ramach przypadków testowych dla testowanej aplikacji.

Kroki korzystania z Selenium RC: 

  • Zainstaluj serwer Selenium-RC.
    • Utwórz projekt, używając wybranego języka programowania i języka specyficznego dla sterownika przeglądarki.
  • Zainstaluj serwer selen
    • Możesz skonfigurować Selenium Server, po prostu pobierz plik selenium-server.jar i uruchom go w swoim systemie za pomocą poniższego polecenia: 
    • java -jar selen-server.jar
  • Napisz skrypt przy użyciu bibliotek klienta Selenium i to samo przy użyciu serwera Selenium.

Ograniczenia Selenium RC:

  • W Selenium Remote Control sterownik automatyzacji i przeglądarka stają się nieco wolniejsze, ponieważ silnik przeglądarki nie jest bezpośrednio powiązany, a raczej Selenium RC wstrzykuje javascript do silnika przeglądarki, nazywany również Selenium Core.
  • Serwer, który musi być uruchomiony przed i podczas wykonywania skryptu testowego.
  • Akcje Advance Web nie mogą być zautomatyzowane i obsługiwane za pomocą Selenium RC, takie jak ruch myszy, podwójne kliknięcie, pobieranie danych wejściowych z klawiatury itp. W przeciwieństwie do Selenium Webdriver.
  • Selenium RC nie obsługuje testowania aplikacji mobilnych.
  • Selenium RC jest zależne od prawdziwej przeglądarki, aby uruchomić skrypt testujący Automation, i nie obsługuje bezgłowej przeglądarki, takiej jak HTMLUnitDriver lub GHostDriver itp. W przeciwieństwie do Selenium Webdriver.

Sterownik sieciowy Selenium:

Selenium Webdriver to zaawansowana wersja wśród komponentów Selenium, która jest bardzo solidna i obsługuje również zaawansowaną wersję interakcji internetowych, a także nie współpracuje z przeglądarką za pośrednictwem JavaScript w przeciwieństwie do Selenium RC i ma również wsparcie testowania aplikacji mobilnych. Jest bardzo często określany jako część Selenium 2.0.

WebDriver może obsługiwać elementy dynamiczne, a także obsługuje wykonywanie równoległe w wielu różnych przeglądarkach.

W kolejnych segmentach omówimy szczegółowo.

Siatka selenowa : 

Selenium GRID to kolejny komponent Selenium, dzięki któremu możesz zdalnie wykonać skrypt testujący automatyzację, tworząc węzły master-slave. Selenium GRID obsługuje testowanie równoległe w tej samej przeglądarce, jak również w wielu przeglądarkach. 

W kolejnych sekcjach będziemy mieli dalszą dyskusję na temat Selenium GRID.

Sterownik sieciowy 3.0

Selenium 3.0 to najnowsza wersja komponentów Selenium, która jest w zasadzie połączeniem WebDriver 2.0 i ewolucji GRID 3.

W następnym segmencie będziemy omawiać Architektura Selenium WebDriver w szczegółachi ostatecznie przedstawia jak selen działa wewnętrznie,.

Architektura Selenium Webdriver  :

Istnieje pięć głównych atrybutów lub komponentów w ramach architektury Selenium Webdriver: 

    

  • Selenium Client Library lub powiązania języka Selenium-Programming
  • Protokół WebDriver lub protokół JSON Wire przez HTTP
  • Sterowniki przeglądarki
  • Silnik przeglądarki
  • Silnik renderujący przeglądarki
Architektura Selenium Webdriver
Selenium Tutorial - architektura Selenium Webdriver

Biblioteki klienckie Selenium lub powiązania języka programowania: 

Selenium zapewnia różne powiązania językowe, tj. Biblioteki klienta obsługujące wiele różnych języków jako część skryptu testowego Automation Development i Automation. Na przykład Selenium z C #, Selenium z Javą, Selenium z Pythonem itp.

Protokół WebDriver lub PROTOKÓŁ JSON WIRE:

JSON, który zasadniczo oznacza JavaScript Object Notation. Protokół ten jest również nazywany protokołem WebDriver, używanym do przesyłania danych serwer-klient przez Internet. Każdy sterownik przeglądarki (np. FirefoxDriver, ChromeDriver itp.) Ma swój własny serwer HTTP i używa tego protokołu do przesyłania danych za pośrednictwem pozostałych usług sieciowych w postaci żądania HTTP i odpowiedzi HTTP.

 Sterowniki przeglądarki:

Każda przeglądarka ma własny sterownik przeglądarki. Sterowniki przeglądarki nawiązują komunikację z odpowiednią przeglądarką za pośrednictwem silnika przeglądarki. 

Po wykonaniu skryptu Automation komunikuje się bezpośrednio ze sterownikami przeglądarki i ostatecznie z odpowiednią przeglądarką. Żądanie i odpowiedź są przesyłane za pośrednictwem żądania HTTP i odpowiedzi HTTP.

Silnik przeglądarki:

Każda przeglądarka ma swój własny silnik przeglądarki; Silnik przeglądarki działa zasadniczo jako warstwa pośrednicząca między interfejsem użytkownika a silnikiem renderującym.

Silnik renderowania przeglądarki: 

Silnik renderujący przeglądarkę jest odpowiedzialny za wyświetlenie żądanego dokumentu poprzez renderowanie określonych elementów wymaganych dla odpowiedzi na żądanie i danych.

Selenium Webdriver Architektura i funkcjonalność w pigułce :

Selenium-WebDriver wywołuje przeglądarkę bezpośrednio przy użyciu natywnej obsługi automatyzacji każdej przeglądarki i jej silnika JavaScript. Sposób wykonywania tych połączeń i obsługiwane przez nie funkcje zależą od używanej przeglądarki.

Podczas ładowania przeglądarki nie wstrzykuje JavaScript, takiego jak Selenium-RC.

Podczas uruchamiania skryptu Webdriver występuje następujący przypadek:

  •  Skrypty automatyzacji wykonujemy przy użyciu dowolnego powiązania języka (Java/C# itp.) oraz uruchamia interfejs API WebDriver podczas wykonywania skryptu.
  •   Skrypt i ewentualnie polecenia (np. driver.findElement (By.id („idName”))) są są wewnętrznie konwertowane na JavaScript.
  •   Używając Browser Engine, to znowu przekonwertowany z powrotem na JSON, która jest rodzajem pary klucz-wartość.
  •   Po uzyskaniu odpowiedniej wartości odpowiedniego klucza, identyfikuje odpowiednie elementy WebElement i wykonuje odpowiednie czynności użytkownika (takie jak kliknięcie, wysłanie kluczy itp.).
  •   Cała komunikacja odbywa się za pomocą Wywołanie protokołu JSON-Wire lub Webdriver, a komunikacja odbywa się za pośrednictwem protokołu HTTP w postaci interfejsu API Rest jako żądanie HTTP i odpowiedź HTTP.

Często zadawane pytania dotyczące selenu: 

Jakie rodzaje interfejsów API WebDriver są dostępne w Selenium?

Selenium Webdriver to interfejs i ma różne powiązania językowe dla różnych języków programowania, takich jak Java, C #, python itp., 

Selenium Webdriver ma głównie dwa różne warianty, takie jak: 

  • Lokalny sterownik Selenium Web.
  • Zdalny sterownik sieciowy Selenium. 

Lokalny sterownik sieciowy Selenium wykorzystuje API do pracy z określonym powiązaniem językowym i możesz pracować z nimi przy lokalnym wykonaniu, z drugiej strony, jeśli chcesz wykonywać skrypty testujące automatyzację w trybie zdalnym, musisz użyć zdalne interfejsy API sterownika Selenium Web.

Wyjaśnij Jakie są scenariusze, których nie możemy zautomatyzować za pomocą Selenium?

Selenium nie zapewnia sposobu na zautomatyzowanie poniższych obszarów aspektów aplikacji, którymi są: 

  • Testowanie wydajności Aplikacji
  • Testowanie bezpieczeństwa aplikacji.
  • Przetwarzanie i automatyzacja w oparciu o obraz
  • Automatyzacja oparta na Captcha.
  • Scenariusze strumieniowania wideo.
  • Aplikacja natywna lub aplikacje okienkowe.
  • Aplikacje do przesyłania strumieniowego

Różnica między Selenium 2.0 a Selenium 3.0?

  • Dla Selenium 2.0 minimalne wymaganie to Java 1.7, z drugiej strony dla Selenium 3.0, minimalna wymagana wersja Java to 1.8
  • Selenium 3.0 wymaga GeckOdriver dla przeglądarki Firefox w wersji powyżej 47, ale nie dotyczy to Selenium 2.0 
  • Selenium 3.0 obsługuje nowoczesną przeglądarkę takich jak Edge, Safari itp., ale z drugiej strony dla Selenium 2.0, sterownik przeglądarki dla Mozilli, Chromedriver, IE, który jest rozwijany przez programistów Selenium.
  • W Selenium 3 usunięto wsparcie dla testowania automatyzacji mobilnej, tj. AndroidDriver i iPhoneDriver, i musisz korzystać z narzędzi takich jak Aplikacja do testowania automatyzacji urządzeń mobilnych, co nie ma miejsca w przypadku Selenium 2.0.
  • Selenium 3.0 nie obsługuje sterownika Headless, tj. HTMLUnitWebDriver, ale Selenium 2.0 ma obsługę wykonywania Headless, tj. z HTMLUnitDriver lub ghostdriver.
  • W Selenium 3 Selenium WebDriver stał się standardem W3C; z drugiej strony Selenium Webdriver w Selenium 2.0 nie należy do standardu W3C.

Wnioski : Tym kończymy pierwszy segment Poradnik dotyczący selenu pokrycie Co to jest selen , Selenium Webdriver Architektura, przegląd Selenium, plusy i minusy Selenium, W nadchodzącym segmencie Samouczek dotyczący selenu moduł 2 będziemy omawiać instalację Selenium, tj. konfigurację, polecenia Selenium i inne podstawowe, średniozaawansowane i zaawansowane tematy Selenium

Zostaw komentarz