Przyszłość Robot Framework i Selenium

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Przyszłość Robot Framework i Selenium jest ważna dla każdego, kto działa w dziedzinie automatyzacji testów. Dowiedz się więcej na ich temat tutaj!

Każdy, kto zajmuje się automatyzacją testów, zna Robot Framework i Selenium. Są to dwa wiodące środowiska automatyzacji, których deweloperzy i testerzy używają do tworzenia środowisk testowych automatyzujących testowanie innej aplikacji.

Jakie będą przyszłe zastosowania tych środowisk i jak wpłyną one na rozwój technologii oraz aplikacji internetowych? W tym artykule omówię podobieństwa i różnice między Robot Framework a Selenium, automatyzację opartą na słowach kluczowych oraz inne spostrzeżenia ekspertów.

Podobieństwa między Robot Framework a Selenium

Oba środowiska są sprawdzonymi technologiami — Selenium istnieje od ponad dwóch dekad, a Robot Framework zbliża się do 20 lat. 

Oba są rozwiązaniami typu open source i mają setki tysięcy użytkowników (jeśli nie miliony). Jednak żadne z nich nie jest narzędziem w ścisłym znaczeniu tego słowa — są to środowiska, za pomocą których tworzy się narzędzie dostosowane do konkretnego celu testowania. 

Robot Framework i Selenium są powszechnie używane do testowania aplikacji internetowych. W rzeczywistości Selenium zostało stworzone wyraźnie w tym celu, podczas gdy Robot Framework zaprojektowano do automatyzowania niemal wszystkiego. Wiadomo nawet, że Robot Framework jest używany do testowania wrażliwych czasowo systemów sygnalizacyjnych.

Oba środowiska są dostępne z poziomu różnych języków programowania — Selenium ma historyczne powiązania z Javą i C++, podczas gdy Robot Framework kojarzy się przede wszystkim z Pythonem.

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

Różnice między Robot Framework a Selenium

Środowisko automatyzacji testów działa pomiędzy testerem a testowaną aplikacją. Udostępnia interfejs skryptowy („górny interfejs testowy”) do opisywania testów dla środowiska oraz interfejs sterownika („dolny interfejs testowy”) do wydawania poleceń testowanej aplikacji i symulowania działań użytkownika. Głównym zadaniem środowiska jest zatem tłumaczenie poleceń skryptu testowego z górnego interfejsu na wskazania, kliknięcia i naciśnięcia klawiszy w dolnym interfejsie.

Selenium początkowo ustanowiło standard dolnego interfejsu w testowaniu aplikacji internetowych: spójny model adresowania elementów stron internetowych za pomocą formatu lokalizatorów znanego jako XPath. Górny interfejs Selenium to jedynie cienka biblioteka programistyczna do pracy z wyrażeniami XPath, która wymaga silnych umiejętności programistycznych. Ponadto wszyscy użytkownicy Selenium wiedzą, że wyrażenia XPath mają tendencję do zmian, a testy wymagają ciągłej, czasochłonnej i kosztownej konserwacji.

Robot Framework powstał z frustracji związanej z uciążliwymi narzędziami do automatyzacji, wśród których znajdowało się Selenium. Celem projektu było stworzenie uniwersalnego środowiska automatyzacji, które można rozszerzać za pomocą niestandardowych bibliotek implementujących różne interfejsy testowe. Koncepcja została zainspirowana automatyzacją opartą na słowach kluczowych, której pionierem był Hans Buwalda, oraz programowaniem sterowanym zachowaniem (BDD). 

Czym jest automatyzacja oparta na słowach kluczowych w Robot Framework?

Automatyzacja oparta na słowach kluczowych to proces programowania poleceń wysokiego poziomu, takich jak Login, EnterLead, CreateContact itd., które wykonują typowe działania podejmowane przez testera lub rzeczywistego użytkownika. Słowa kluczowe ukrywają złożone szczegóły wyrażeń XPath i inne kwestie techniczne. Projektanci testów używają następnie słów kluczowych do definiowania właściwych testów. Jeśli coś zmieni się w implementacji bazowej aplikacji, wystarczy zmodyfikować definicję słów kluczowych, a wszystkie testy korzystające z danego słowa kluczowego znów będą działać.

Kwestie związane z automatyzacją opartą na słowach kluczowych

Automatyzacja oparta na słowach kluczowych ma jednak pewne ograniczenie. Definiowanie słownika słów kluczowych wymaga dużej uwagi, aby uniknąć ich nadmiernego rozrostu. Jeśli zastosujesz BDD, rozrost słów kluczowych jest niemal gwarantowany. Jeśli słownik słów kluczowych jest specyficzny dla aplikacji, używanie Robot Framework do projektowania testów dla jednej aplikacji nie oznacza biegłości w projektowaniu testów dla innej. 

Podobnie jak w przypadku Selenium, deweloperzy utrzymujący implementacje tych słów kluczowych mają tendencję do stawania się wąskim gardłem procesu. Wymagające konserwacji, zmienne wyrażenia XPath mogą występować znacznie rzadziej niż w Selenium, ale nadal są obecne.

More Articles

Korzyści z automatyzacji opartej na słowach kluczowych i rozbudowanych bibliotek

Możliwość rozszerzania Robot Framework pozwoliła społeczności stworzyć wiele przydatnych bibliotek słów kluczowych. Na przykład istnieją co najmniej trzy unikalne biblioteki do automatyzacji stron internetowych: SeleniumLibrary, QWeb i BrowserLibrary.  Robot Framework SeleniumLibrary została zbudowana na bazie Selenium, ale oferuje wyższy poziom abstrakcji niż samo Selenium. Społeczność udostępnia mnóstwo bibliotek do różnych innych celów, takich jak testowanie interfejsów API czy generowanie danych testowych. 

Jeśli jesteś profesjonalnym programistą, możesz wykonać dowolne zadanie związane z automatyzacją stron internetowych za pomocą Selenium, ale musisz zrealizować je całkowicie samodzielnie. Robot Framework zapewnia taki sam poziom elastyczności, a jednocześnie oferuje ogromną liczbę przydatnych bibliotek, które mogą zwiększyć produktywność Twojej pracy.

Dobrze przemyślany model rozszerzalności jest jedną z istotnych zalet Robot Framework. Możesz na przykład tworzyć nowe biblioteki słów kluczowych, programując je w Pythonie lub innym wybranym języku, albo po prostu łączyć istniejące słowa kluczowe — nawet za pomocą podstawowych struktur sterujących — aby tworzyć nowe.

Uwaga dotycząca rozwiązania bez kodu

Jeśli nie jesteś profesjonalnym programistą, korzystanie z Selenium będzie dla Ciebie bezradnością, a mówiąc szczerze, z Robot Framework również prawie sobie nie poradzisz. Niewiele zrozumiesz ze skryptu Selenium, ale gdy zobaczysz skrypt testowy Robot Framework, prawdopodobnie — choć nie zawsze — będziesz w stanie prześledzić jego logikę i zrozumieć, co ma robić. Jeśli masz dobre przykłady do skopiowania i ulepszenia, będziesz nawet w stanie samodzielnie tworzyć skrypty Robot Framework.

Wielu kierowników ds. testów szacuje, że praca z Robot Framework jest bardziej produktywna niż praca z Selenium dzięki wyższemu poziomowi abstrakcji i gotowym bibliotekom, które obniżają zarówno koszt automatyzacji, jak i w szczególności koszt utrzymania testów. Często obserwuje się wzrost produktywności w porównaniu z Selenium od czterokrotnego do ośmiokrotnego. 

Z drugiej strony, jeśli wiesz, co robisz, bez wątpienia możesz osiągnąć swój cel za pomocą Selenium: uciążliwość konieczności wykonania niemal wszystkiego samodzielnie daje swobodę zrobienia wszystkiego własnymi siłami.

Esko Hannula
Esko Hannula is VP Product Line Management at Copado, a DevOps and testing solution for low code SaaS platforms that run the world’s largest digital transformations. Backed by Insight Partners, Salesforce Ventures and SoftBank Vision Fund, Copado accelerates multi-cloud, enterprise deployments by automating the end-to-end software delivery process to maximize customers’ return on their cloud investment.
Follow the author:

You may also like