Articles

Co To jest selen? Wprowadzenie do testowania automatyki Selenium

Co To jest Selenium?

Selenium to darmowy (open-source) zautomatyzowany framework testujący używany do walidacji aplikacji internetowych w różnych przeglądarkach i platformach. Możesz użyć wielu języków programowania, takich jak Java, C#, Python itp. do tworzenia skryptów testowych Selenium. Testowanie przy użyciu narzędzia do testowania selenu jest zwykle określane jako testowanie selenu.

Selenium Software to nie tylko pojedyncze narzędzie, ale pakiet oprogramowania, każdy element zaspokajający różne potrzeby organizacji w zakresie testowania jakości Selenium. Poniżej znajduje się lista narzędzi

  • Selenium Integrated Development Environment (IDE)
  • Selenium Remote Control (RC)
  • WebDriver
  • Selenium Grid

wprowadzenie do selenium
wprowadzenie do selenium

w tej chwili Selenium RC i WebDriver są połączone w jeden framework, tworząc Selenium 2. Selen 1, nawiasem mówiąc, odnosi się do selenu RC.

Kliknij tutaj, jeśli film nie jest dostępny

w tym samouczku dowiesz się:

  • co to jest Selenium?
  • kto opracował selen?
  • ten sam problem z Polityką pochodzenia
  • narodziny Selenium Remote Control (Selenium RC)
  • narodziny Selenium Grid
  • narodziny Selenium IDE
  • narodziny Webdrivera
  • narodziny Selenium 2
  • dlaczego więc nazwa Selenium?
  • Krótkie wprowadzenie Selenium IDE
  • Krótkie wprowadzenie Selenium Remote Control (Selenium RC)
  • Krótkie wprowadzenie WebDriver
  • Selenium Grid
  • uwaga na obsługę przeglądarki i środowiska
  • Jak wybrać odpowiednie narzędzie Selenium do swoich potrzeb
  • porównanie Selenium i QTP(teraz UFT)
  • zalety QTP nad Selenium

kto opracował selen?

ponieważ Selenium jest zbiorem różnych narzędzi, miał również różnych programistów. Poniżej znajdują się kluczowe osoby, które wniosły znaczący wkład w projekt Selenium

Wprowadzenie do Selenium

Selenium zostało stworzone przez Jasona hugginsa w 2004 roku. Inżynier w Thougtworks, pracował nad aplikacją internetową, która wymagała częstych testów. Zdając sobie sprawę, że powtarzające się ręczne testowanie ich aplikacji stawało się coraz bardziej nieefektywne, stworzył program JavaScript, który automatycznie kontrolowałby działania przeglądarki. Nazwał ten program ” JavaScriptTestRunner.”

widząc potencjał w tym pomyśle, aby pomóc zautomatyzować inne aplikacje internetowe, stworzył JavaScriptRunner open-source, który później został ponownie nazwany Selenium Core.

ten sam problem z zasadami Origin

Ta sama zasada Origin zabrania kodu JavaScript dostępu do elementów z domeny innej niż domena, w której został uruchomiony. Przykład, kod HTML w www.google.com używa programu JavaScript ” randomScript.js”. Ta sama zasada pochodzenia zezwala tylko na randomScript.js, aby uzyskać dostęp do stron w google.com takie jak google.com/mail, google.com/login, lub google.com/signup. jednak nie może uzyskać dostępu do stron z różnych witryn, takich jak yahoo.com/search lub guru99.com, ponieważ należą do różnych domen.

Wprowadzenie do Selenium

To jest powód, dla którego przed Selenium RC testerzy musieli zainstalować lokalne kopie zarówno Selenium Core (program JavaScript), jak i serwera www zawierającego testowaną aplikację internetową, aby należeli do tej samej domeny

narodziny Pilota Zdalnego Sterowania Selenium (Selenium RC)

wprowadzenie do selenu

Niestety; testerzy korzystający z Selenium Core musieli zainstalować całą testowaną aplikację i serwer WWW na własnych komputerach lokalnych z powodu ograniczeń nałożonych przez tę samą politykę pochodzenia. Więc inny inżynier ThoughtWork, Paul Hammant, postanowił stworzyć serwer, który będzie działał jako proxy HTTP, aby „oszukać” przeglądarkę, aby uwierzyła, że Selenium Core i testowana aplikacja internetowa pochodzą z tej samej domeny. System ten stał się znany jako Selenium Remote Control lub Selenium 1.

narodziny Selenium Grid

Wprowadzenie do Selenium

Selenium Grid został opracowany przez Patricka Lightbody, aby sprostać potrzebie zminimalizowania czasu wykonywania testów w jak największym stopniu. Początkowo nazwał system ” Hosted QA.”Był w stanie przechwytywać zrzuty ekranu przeglądarki podczas znaczących etapów, a także wysyłać polecenia Selenium do różnych maszyn jednocześnie.

narodziny Selenium IDE

Wprowadzenie do Selenium

Shinya Kasatani z Japonii stworzył Selenium IDE, rozszerzenie Firefoksa, które może zautomatyzować przeglądarkę za pomocą funkcji nagrywania i odtwarzania. Wpadł na ten pomysł, aby jeszcze bardziej zwiększyć szybkość tworzenia przypadków testowych. W 2006 roku przekazał Selenium IDE do projektu Selenium.

narodziny Webdrivera

Wprowadzenie do Selenium Simon Stewart stworzył WebDriver około 2006 roku, kiedy przeglądarki i aplikacje internetowe stawały się coraz bardziej wydajne i bardziej restrykcyjne dzięki programom JavaScript, takim jak Selenium Core. Był to pierwszy wieloplatformowy framework testujący, który mógł kontrolować przeglądarkę z poziomu systemu operacyjnego.

narodziny Selenium 2

w 2008 roku cały zespół Selenium postanowił połączyć WebDriver i Selenium RC, tworząc potężniejsze narzędzie o nazwie Selenium 2, którego rdzeniem jest WebDriver. Obecnie Selenium RC jest nadal rozwijany, ale tylko w trybie konserwacji. Większość działań projektu Selenium koncentruje się obecnie na Selenium 2.

skąd więc nazwa selen?

Nazwa Selenium wzięła się od żartu, który Jason rozgryzł kiedyś swojej drużynie. Podczas rozwoju Selenium popularny był inny zautomatyzowany framework testujący stworzony przez firmę Mercury Interactive (tak, firma, która pierwotnie tworzyła QTP, zanim została przejęta przez HP). Ponieważ Selen jest dobrze znanym antidotum na zatrucie rtęcią, Jason zasugerował to imię, a jego koledzy z drużyny przyjęli je. Tak właśnie nazwaliśmy te ramy do chwili obecnej.

pochodzenie nazwy Selenium framework

Krótkie wprowadzenie Selenium IDE

Selenium Integrated Development Environment (IDE) to najprostszy framework w pakiecie Selenium i najłatwiejszy do nauczenia się. Jest to wtyczka do Firefoksa, którą można zainstalować tak łatwo, jak to tylko możliwe z innymi wtyczkami. Jednak ze względu na swoją prostotę, Selenium IDE powinno być używane tylko jako narzędzie do prototypowania. Jeśli chcesz tworzyć bardziej zaawansowane przypadki testowe, musisz użyć Selenium RC lub WebDriver.

plusy i minusy Selenium IDE

Krótkie wprowadzenie Pilot Zdalnego Sterowania Selenium (Selenium RC)

Selenium RC był flagowym szkieletem testowym całego projektu Selenium przez długi czas. Jest to pierwsze zautomatyzowane narzędzie do testowania stron internetowych, które pozwoliło użytkownikom korzystać z preferowanego języka programowania. Od wersji 2.25.0 RC może obsługiwać następujące języki programowania:

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Ruby

zalety i wady Selenium RC

Krótkie wprowadzenie webdriver

webdriver sprawdza się lepiej niż zarówno Selenium IDE, jak i Selenium RC pod wieloma względami. Wdraża bardziej nowoczesne i stabilne podejście do automatyzacji działań przeglądarki. WebDriver, w przeciwieństwie do Selenium RC, nie opiera się na JavaScript dla Selenium Automation Testing. 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
  • Ruby

zalety i wady Selenium Webdriver

Selenium Grid

Selenium Grid to narzędzie używane razem z Selenium rc do przeprowadzania równoległych testów na różnych maszynach i różnych przeglądarkach w tym samym czasie. Równoległe wykonanie oznacza uruchomienie wielu testów jednocześnie.

cechy:

  • umożliwia jednoczesne uruchamianie testów w wielu przeglądarkach i środowiskach.
  • oszczędza czas ogromnie.
  • wykorzystuje koncepcję hub-and-nodes. Hub działa jako centralne źródło komend selenowych do każdego węzła z nim połączonego.

Uwaga dotycząca obsługi przeglądarki i środowiska

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

Selenium IDE WebDriver
Browser Support Mozilla Firefox Internet Explorer versions 6 to 11, both 32 and 64-bit
Microsoft Edge version 12.10240 & above ( partial support some functionalities under development)
Firefox 3.0 and above
Google Chrome 12.0. and above
Opera 11.5 and above
Android – 2.3 i więcej dla telefonów i tabletów
(urządzenia & emulatory)
iOS 3+ dla telefonów (urządzenia & emulatory) i 3.2+ Dla tabletów (urządzenia & emulatory)
HtmlUnit 2.9 i nowsze
system operacyjny Windows, Mac OS X, Linux wszystkie systemy operacyjne, w których mogą działać powyższe przeglądarki.

Uwaga: Selenium WebDriver jest określany jako następca Selenium RC, który został wycofany & oficjalnie ogłoszony przez SeleniumHQ.

jak wybrać odpowiednie narzędzie Selenium do swoich potrzeb

Selenium RC

WebDriver

Selenium Grid

narzędzie
dlaczego warto wybrać?

Selenium IDE

  • To learn about concepts on automated testing and Selenium, including:
  • Selenese commands such as type, open, clickAndWait, assert, verify, etc.
  • Locators such as id, name, xpath, css selector, etc.
  • Executing customized JavaScript code using runScript
  • Exporting test cases in various formats.
  • do tworzenia testów z niewielką lub żadną wcześniejszą wiedzą w programowaniu.
  • do tworzenia prostych przypadków testowych i pakietów testowych, które można później wyeksportować do RC lub Webdrivera.
  • aby przetestować aplikację internetową tylko pod Firefoksem i Chrome.
  • aby zaprojektować test przy użyciu bardziej ekspresyjnego języka niż Selenese
  • aby uruchomić test na różnych przeglądarkach (z wyjątkiem HtmlUnit) na różnych systemach operacyjnych.
  • aby wdrożyć testy w wielu środowiskach za pomocą Selenium Grid.
  • aby przetestować aplikację pod kątem nowej przeglądarki obsługującej JavaScript.
  • do testowania aplikacji internetowych ze złożonymi scenariuszami AJAX.
  • aby użyć określonego języka programowania w projektowaniu przypadku testowego.
  • do testowania aplikacji bogatych w funkcjonalności AJAX.
  • do wykonywania testów w przeglądarce HtmlUnit.
  • aby utworzyć niestandardowe wyniki testu.
  • uruchamianie skryptów Selenium RC w wielu przeglądarkach i systemach operacyjnych jednocześnie.
  • aby uruchomić ogromny pakiet testowy, który musi zostać ukończony w możliwie najkrótszym czasie.

porównanie Selenium i QTP(obecnie UFT)

Quick Test Professional(QTP) to autorskie narzędzie do automatycznego testowania, które wcześniej było własnością firmy Mercury Interactive, zanim zostało przejęte przez Hewlett-Packard w 2006 roku. Zestaw narzędzi Selenium ma wiele zalet w porównaniu z QTP, jak opisano poniżej –

Zalety i korzyści Selenium w porównaniu z QTP

Selen
QTP
open source, darmowe i bezpłatne. Reklama.
wysoce rozszerzalny ograniczone dodatki
może uruchamiać testy w różnych przeglądarkach może uruchamiać testy tylko w Firefox, Internet Explorer i Chrome
obsługuje różne systemy operacyjne może być używany tylko w Windows
obsługuje urządzenia mobilne QTP obsługuje automatyzację testów aplikacji mobilnych (iOS & Android) przy użyciu rozwiązania HP o nazwie-HP Mobile Center
może wykonywać testy, gdy przeglądarka jest zminimalizowana musi mieć aplikację pod test aby był widoczny na pulpicie
może wykonywać testy równolegle. może wykonywać tylko równolegle, ale za pomocą Centrum jakości, które jest ponownie płatnym produktem.

Advantages of QTP over Selenium

Advantages of QTP over Selenium
QTP
Selenium
Can test both web and desktop applications Can only test web applications
Comes with a built-in object repository Has no built-in object repository
automatyzuje się szybciej niż Selenium, ponieważ jest w pełni funkcjonalnym IDE. automatyzuje się wolniej, ponieważ nie ma natywnego IDE i tylko IDE innych firm może być używane do rozwoju
testowanie oparte na danych jest łatwiejsze do wykonania, ponieważ ma wbudowane globalne i lokalne tabele danych. testowanie oparte na danych jest bardziej uciążliwe, ponieważ musisz polegać na możliwościach języka programowania do ustawiania wartości dla danych testowych
ma dostęp do kontroli w przeglądarce(takich jak pasek ulubionych, pasek adresu, przyciski Wstecz i do przodu itp. nie może uzyskać dostępu do elementów poza testowaną aplikacją internetową
zapewnia profesjonalną obsługę klienta nie jest oferowana oficjalna obsługa użytkownika.
ma natywną zdolność eksportowania danych testowych do formatów zewnętrznych nie ma natywnej możliwości eksportowania danych uruchomieniowych do formatów zewnętrznych
parametryzacja wsparcie jest wbudowane parametryzacja może być dokonana poprzez programowanie, ale jest trudna do zaimplementowania.
raporty z testów są generowane automatycznie brak natywnej obsługi do generowania Raportów z testów /błędów.

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

  • koszt(ponieważ Selenium jest całkowicie bezpłatne)
  • elastyczność(ze względu na wiele języków programowania, przeglądarek i platform, które może obsługiwać)
  • testowanie równoległe(coś, co QTP jest w stanie, ale tylko przy użyciu Centrum jakości)

podsumowanie

  • cały zestaw do testowania oprogramowania Selenium składa się z czterech komponentów:
  • Selenium IDE, dodatek do Firefoksa, którego można używać tylko do tworzenia stosunkowo prostych przypadków testowych i pakietów testowych.
  • Selenium Pilot Zdalnego Sterowania, znany również jako Selenium 1, który jest pierwszym narzędziem Selenium, które pozwoliło użytkownikom korzystać z języków programowania w tworzeniu złożonych testów.
  • WebDriver, nowszy przełom, który pozwala skryptom testowym komunikować się bezpośrednio z przeglądarką, a tym samym sterować nią z poziomu systemu operacyjnego.
  • Selenium Grid jest również narzędziem używanym z Selenium RC do wykonywania 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.
  • selen jest korzystniejszy niż QTP pod względem kosztów i elastyczności. Pozwala również na uruchamianie testów równolegle, w przeciwieństwie do QTP, gdzie można uruchamiać testy tylko sekwencyjnie.