Edge dodane do Selenium i automatyzacja testowania aplikacji przy pomocy WebDriver
Coraz więcej znanych aplikacji, usług internetowych — od JavaScript obsługiwanego przez Electron aż do nowych generacji niezależnych aplikacji internetowych — powstaje w oparciu o technologie sieciowe. Rozwój podstawowych technologii HTML 5 (m.in. JavaScript, CSS, transponowane języki — TypeScript) pozwala na otwartość, technologie te dojrzewają i dostarczają znacznie więcej niż na początku Internetu.
Jeden obszar nowoczesnej sieci pozostaje jednak odrobinę z tyłu — mowa o testowaniu. Podczas, gdy można budować kod w znanych IDE, pisać go lepiej, przejrzyściej, możemy go debugować za pomocą narzędzi opartych na przeglądarce, to w dziale testów spotykamy niewiele ulepszeń.
WebDriver i Selenium
Już od kilku dziesięcioleci istnieją zautomatyzowane narzędzia do testowania stron internetowych. Najwcześniejsze z nich były w stanie symulować interakcje użytkowników na dużą skalę. Pokazywało to jak witryny działają pod obciążeniem, nie tylko czy strony i aplikacje działają zgodnie z oczekiwaniami. Obecnie testowanie aplikacji internetowych polega na wypróbowanych już i przetestowanych technikach. Jednak zamiast symulacji przeglądarki i użytkowników bazują na oryginalnej specyfikacji WebDriver projektu Selenium. Pozwala to na testowanie interakcji strony z przeglądarkami produkcyjnymi, tj. Chrome, Edge HTML, nowy Edge oparty na chromie czy Firefox.
Interfejs API WebDriver idzie w dobrą stronę, ma duże szanse, aby stać się standardem konsorcjum World Wide Web. WebDriver umożliwia pisanie kodu do bezpośredniego sterowania przeglądarką. Skrypty testowe symulują interakcje użytkownika. Przez testowanie z WebDriver zamiast testów JavaScript można uzyskać większy zasięg działań przeglądarki, pracę między oknami i kartami. Symulacje dotyczą zdarzeń zarówno od użytkowników, jak i podstawowego systemu operacyjnego.
Testowanie w Edge za pomocą WebDriver
Każda wersja Edge potrzebuje innego sterownika, co pozwala na jej testy wraz z wersjami Neta, Canary czy Dev. Testowanie między wersjami pozwala zlokalizować błędy specyficzne dla niej, umożliwia dostrojenie stron i aplikacji pod kątem nowych funkcji przeglądarki, bez wpływu na normalne działanie. Zarówno dla starszej wersji EdgeHTML, jak i nowej wersji Chromium, Microsoft udostępnił bibliotekę implementacji WebDriver. Oprócz instalacji WebDriver odpowiedniego dla wersji Edge, należy zainstalować jeszcze powiązanie językowe ze strony Selenium. Znajdziemy tam różne języki, od skryptowych typu Ruby po korporacyjną Javę.
Korzystanie z WebDriver z C #
Budowa i uruchamianie własnych skryptów testowych bez konieczności stawania instancji serwera Selenium jest możliwa dzięki powiązaniom .NET dla wywołań API zapewnionym przez C# WebDriver. Zaleca się tworzenie testów opartych na C# jako część tego samego projektu co aplikacja internetowa. Spowoduje to rozwój programu ASP.NET Core równolegle z testami WebDriver. Testy te z kolei można używać zarówno do testów jednostkowych jak i akceptacyjnych.
Nauka interfejsu API WebDriver jest dość trudna, posiada on wiele funkcji, jest złożony. Jedną z prostszych rzeczy może być użycie wtyczki przeglądarki Selenium IDE do wygenerowania podstawowych skryptów na potrzeby testów. Następnie należy je wykorzystać jako podstawę własnego kodu.
Korzystanie z WebDriver z narzędziami testowymi Visual Studio
Znaczna część kodu testowego zależy od dobrze zbudowanego HTML i CSS, np. przy pomocy etykiet elementów do nawigacji do formularzy. Automatyzacja testowania witryn i treści będzie ułatwiona, jeśli strony będą dobrze zaprojektowane, poprze m.in. oznakowanie elementów ASP.NET. Z WebDriver można wchodzić w interakcje, wysyłać treści do pól, nie służy tylko jako narzędzie od nawigacji po treści. Skrypty interakcji mogą być także pakowane jako przypadki testowe z warunkami negatywnymi i pozytywnymi. Spakowane skrypty są gotowe do użycia z narzędziami takimi jak NUnit. Dzięki niemu testy są częścią kompilacji Visual Studio.
Przede wszystkim sukcesem dobrej aplikacji i strony internetowej jest nie tylko prawidłowo działający program czy dobry kod. Testowanie jest kluczowym elementem procesu programowania. Dzięki automatyzacji interakcji Edge z Selenium i WebDriver można pracować w ramach testów wykorzystujących rzeczywiste funkcje przeglądarki. Umożliwia to pisanie testów w tym samym czasie co pisanie kodu.
Źródła: