Co to jest Selenium Webdriver?
Selenium Webdriver to zbiór interfejsów API typu open source, który służy do testowania aplikacji internetowych. Narzędzie Selenium Webdriver służy do automatyzacji testowania aplikacji internetowych w celu sprawdzenia, czy działa zgodnie z oczekiwaniami, czy nie. Obsługuje głównie przeglądarki takie jak Firefox, Chrome, Safari i Internet Explorer. Umożliwia także przeprowadzanie testów w różnych przeglądarkach.
WebDriver umożliwia również używanie języka programowania do tworzenia skryptów testowych (nie jest to możliwe w Selenium IDE).
Możesz teraz używać operacji warunkowych, takich jak if-then-else lub switch-case. Możesz także wykonywać zapętlenie, takie jak do-while.
Następujące języki programowania są obsługiwane przez WebDriver
- Jawa
- .Netto
- PHP
- Pyton
- Perl
- Rubin
Nie musisz znać ich wszystkich. Musisz tylko mieć wiedzę w jednym. Jednak w tym samouczku będziemy używać Javy z Eclipse jako naszym IDE.
Różnica między Selenium RC i Webdriver
Przed pojawieniem się WebDriver w 2006 roku istniało inne narzędzie do automatyzacji o nazwie Selenium Remote Control. Zarówno WebDriver, jak i Selenium RC mają następujące funkcje:
- Oba pozwalają na użycie języka programowania w projektowaniu skryptów testowych.
- Oba umożliwiają przeprowadzanie testów w różnych przeglądarkach.
Więc czym się różnią? Omówmy odpowiedzi.
1. Architektura
Architektura WebDriver jest prostsza niż Selenium RC .
- Kontroluje przeglądarkę z poziomu systemu operacyjnego
- Wszystko czego potrzebujesz to IDE twojego języka programowania (które zawiera twoje polecenia Selenium) i przeglądarka.
Architektura Selenium RC jest znacznie bardziej skomplikowana.
- Najpierw musisz uruchomić oddzielną aplikację o nazwie Selenium Remote Control (RC) Server, zanim będziesz mógł rozpocząć testowanie
- Serwer Selenium RC działa jako „pośrednik” między poleceniami Selenium a przeglądarką
- Kiedy zaczynasz testować, Selenium RC Server „wstrzykuje” do przeglądarki program Javascript o nazwie Selenium Core .
- Po wstrzyknięciu Selenium Core zacznie odbierać instrukcje przekazywane przez serwer RC z programu testowego.
- Po otrzymaniu instrukcji Selenium Core wykona je jako polecenia JavaScript.
- Przeglądarka będzie postępować zgodnie z instrukcjami Selenium Core i przekaże swoją odpowiedź do serwera RC.
- Serwer RC otrzyma odpowiedź przeglądarki, a następnie wyświetli wyniki.
- RC Server pobierze następną instrukcję z twojego skryptu testowego, aby powtórzyć cały cykl.
2. Prędkość
WebDriver jest szybszy niż Selenium RC, ponieważ mówi bezpośrednio do przeglądarki i używa jej własnego silnika do sterowania nią.
Selenium RC jest wolniejsze, ponieważ używa programu JavaScript o nazwie Selenium Core. To Selenium Core to ten, który bezpośrednio kontroluje przeglądarkę, a nie ty.
3. Interakcja w prawdziwym życiu
WebDriver współdziała z elementami strony w bardziej realistyczny sposób. Na przykład, jeśli masz wyłączone pole tekstowe na testowanej stronie, WebDriver naprawdę nie może wprowadzić do niego żadnej wartości, tak jak nie może to zrobić prawdziwa osoba.
Selenium Core, podobnie jak inne kody JavaScript, ma dostęp do wyłączonych elementów. W przeszłości testerzy Selenium narzekali, że Selenium Core był w stanie wprowadzić wartości do wyłączonego pola tekstowego w swoich testach. Różnice w API
4. API
Interfejs API Selenium RC jest bardziej dojrzały, ale zawiera nadmiarowości i często mylące polecenia . Na przykład przez większość czasu testerzy nie wiedzą, czy używać klawiszy type czy typeKeys; lub czy użyć click, mouseDown czy mouseDownAt. Co gorsza, różne przeglądarki również interpretują każde z tych poleceń na różne sposoby!
API WebDriver jest prostsze niż Selenium RC . Nie zawiera zbędnych i mylących poleceń.
5. Wsparcie przeglądarki
WebDriver może obsługiwać bezgłową przeglądarkę HtmlUnit
HtmlUnit jest określany jako „bezgłowy”, ponieważ jest to niewidzialna przeglądarka - nie zawiera GUI.
Jest to bardzo szybka przeglądarka, ponieważ nie trzeba czekać na załadowanie elementów strony. Przyspiesza to cykle wykonywania testów.
Ponieważ jest niewidoczny dla użytkownika, można nim sterować tylko w sposób zautomatyzowany.
Selenium RC nie obsługuje bezgłowej przeglądarki HtmlUnit. Do działania potrzebuje prawdziwej, widocznej przeglądarki.
Ograniczenia WebDriver
WebDriver nie może w łatwy sposób obsługiwać nowych przeglądarek
Pamiętaj, że WebDriver działa na poziomie systemu operacyjnego. Pamiętaj też, że różne przeglądarki komunikują się z systemem operacyjnym na różne sposoby. Jeśli pojawi się nowa przeglądarka, może mieć inny proces komunikacji z systemem operacyjnym niż inne przeglądarki. Tak, trzeba dać zespołowi WebDriver trochę czasu, żeby to nowy proces się , zanim będą mogły wdrożyć go w następnym wydaniu WebDriver.
Jednak to zespół programistów WebDriver decyduje, czy powinni obsługiwać nową przeglądarkę, czy nie.
Selenium RC ma wbudowany generator wyników testu
Selenium RC automatycznie generuje plik HTML z wynikami testu . Format raportu został ustalony przez samego RC. Spójrz na przykład tego raportu poniżej.
WebDriver nie ma wbudowanego polecenia, które automatycznie generuje plik wyników testu . Musiałbyś polegać na oknie wyjściowym swojego IDE lub samodzielnie zaprojektować raport, korzystając z możliwości swojego języka programowania i przechowywać go jako tekst, HTML itp.
Podsumowanie
- WebDriver to narzędzie do testowania aplikacji internetowych w różnych przeglądarkach przy użyciu różnych języków programowania.
- Możesz teraz wykonywać zaawansowane testy, ponieważ WebDriver umożliwia korzystanie z dowolnego języka programowania podczas projektowania testów.
- WebDriver jest szybszy niż Selenium RC ze względu na prostszą architekturę.
- WebDriver bezpośrednio komunikuje się z przeglądarką, podczas gdy Selenium RC potrzebuje w tym celu pomocy RC Servera.
- API WebDriver jest bardziej zwięzłe niż Selenium RC.
- WebDriver może obsługiwać HtmlUnit, podczas gdy Selenium RC nie.
- Jedyne wady WebDriver to:
- Nie może łatwo obsługiwać nowych przeglądarek , ale Selenium RC może.
- Nie ma wbudowanego polecenia do automatycznego generowania wyników testów.