Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.


26.08.2021

Firma Fortinet rozszerzyła...

Firma Fortinet rozszerzyła ofertę o usługę FortiTrust, która dołączyła do innych usług...
26.08.2021

Aplikacje biznesowe

Ready_™ AppStore
26.08.2021

Automatyzacja chmur...

Integracja z Red Hat Ansible
26.08.2021

Backup kodu źródłowego

GitProtect.io dostępny na Github
26.08.2021

Wsparcie pracy hybrydowej

Zdalny SD WAN
26.08.2021

Nowy monitor Philips 498P9Z

Nowy monitor Philips 498P9Z to model wyposażony w 49-calowy, zakrzywiony panel VA o...
26.08.2021

Wytrzymały punkt dostępowy

D-Link DIS-2650AP
26.08.2021

Ekonomiczne dyski

SSD bez DRAM
26.08.2021

Petabajty pojemności

Serwery QNAP

Automatyzacja zadań i testów aplikacji webowej

Data publikacji: 29-04-2021 Autor: Marcel Kamiński
Rys. 1. Output to plik XML,...

Przygotowanie spersonalizowanego skryptu może posłużyć do szybkiego i automatycznego wykonywania przeróżnych czynności. Dotyczy to zwłaszcza zadań, które zazwyczaj są niezwykle żmudne, powtarzalne i zajmują dużo czasu. W takich przypadkach, zamiast przez wiele godzin porównywać, testować czy wprowadzać dane, lepiej użyć narzędzi wspierających automatyzację w języku Python.

 

W iększość profesjonalistów IT zna różne rozwiązania automatyzujące pracę pomagające przy testach lub służące do web scrapingu. Jednym z nich jest biblioteka Selenium. Jest to wieloplatformowe rozwiązanie rozwijane od lat – można je traktować jako swoistą skrzynkę narzędzi, z których możemy stworzyć swój autorski projekt.

Nie zawsze jednak konieczne jest stosowanie tak zaawansowanych narzędzi. Czasem wystarczą proste w użyciu rozwiązania, które z łatwością możemy zaimplementować we własnym projekcie. Przykładem tego typu rozwiązania jest platforma Robot Framework, która łączy możliwości Pythona z Selenium oraz ułatwia cały proces testowania, oferując gotowe narzędzia, którymi możemy się posługiwać, używając uproszczonego języka angielskiego. W poniższym przykładzie wykonamy prosty projekt prezentujący możliwości testowania web aplikacji za pomocą Robot Framework: jego instalację, implementację, konfigurację i samo przeprowadzanie testu.

> Instalacja

Do działania wszystkich przedstawionych w artykule narzędzi potrzebujemy Pythona. Aby wszystko działało zgodnie z naszymi założeniami, należy zainstalować wersję powyżej 3.7.X oraz dodać Pythona do zmiennej środowiskowej Path. Po instalacji warto sprawdzić, czy wszystko działa poprawnie. W tym celu włączamy cmd lub Powershell i wprowadzamy polecenie python. Komunikat wyświetlający wersję zainstalowanego Pythona świadczy o tym, że Python jest zainstalowany poprawnie i możemy działać dalej.

W kolejnym kroku musimy zainstalować biblioteki robotframework i robotframework-seleniumlibrary. W tym celu użyjemy instalatora pip, który służy do zarządzania dodatkowymi pakietami Pythona. Jeżeli przy instalacji nie pominęliśmy żadnego kroku, pip powinien być już zainstalowany. Możemy to sprawdzić, otwierając cmd lub Powershell i wpisując docelowe komendy. Jeżeli pip nie został zainstalowany, otrzymamy komunikat informujący o jego braku. Jeżeli znamy narzędzia do tworzenia środowiska wirtualnego Python, całe rozwiązanie można w nim wykonywać tak, aby nie instalować niepotrzebnych bibliotek do własnego środowiska lokalnego.

Komendy instalacyjne, które należy wykonać w konsoli, to:

pip install robotframework
pip install robotframework-seleniumlibrary


Kolejny krok to przygotowanie środowiska, w którym będzie działało nasze rozwiązanie. W moim przykładzie będzie to przeglądarka Google Chrome w wersji 88.0.4324.96. Aby Python i biblioteki wiedziały, z czym mają się połączyć, potrzebują webdrivera, który jest zewnętrzną biblioteką łączącą w sobie sterownik do danej przeglądarki oraz potrzebne rozwiązania wymagane do utworzenia sesji.

Przed instalacją odpowiedniej wersji webdrivera warto sprawdzić, jaką wersję przeglądarki posiadamy. Wersja web­drivera powinna pokrywać się z wersją przeglądarki. Aby to sprawdzić:

 

  1. otwieramy przeglądarkę Chrome;
  2. klikamy w trzy kropki w prawym górnym rogu;
  3. przechodzimy do zakładki Pomoc;
  4. klikamy zakładkę Google Chrome – Informacje.


Następnie wchodzimy na stronę https://sites.google.com/a/chromium.org/chromedriver/downloads, pobieramy odpowiednią wersję webdrivera oraz rozpakowujemy w dogodnej lokalizacji. Aby nasz system wiedział, skąd ma pobierać web­drivera, musimy dodać go do zmiennej Path. Robimy to analogicznie jak w przypadku Pythona. W moim przypadku jest to folder C:reposrobot_framework.

Jeżeli posiadamy już wszystkie potrzebne zasoby i instalacje przebiegły pomyślnie, możemy zacząć implementować nasze rozwiązanie. W tym przypadku użyjemy edytora Visual Studio Code na platformie Windows oraz, dla przejrzystości kodu, wtyczki Robot Framework Intellisense, którą można pobrać w menadżerze wtyczek (marketplace) tego programu.

 

> Implementacja

Nasze zadanie będzie polegało na stworzeniu scenariusza, który wykorzystamy do przetestowania prostej strony logowania, aby w pełni zrozumieć, jak działa framework. Nic nie stoi jednak na przeszkodzie, aby tego typu testy wykorzystać w przypadku większych projektów.

Zdefiniujemy dwie możliwości: pierwszą – dane uwierzytelniania są poprawne – oraz drugą – hasło lub login jest niepoprawny.

Zacznijmy od założenia pliku z rozszerzeniem .robot. W moim przypadku będzie to test.robot. Zanim jednak zaczniemy pisać docelowy kod, chciałbym omówić strukturę, jaką powinniśmy zachować w pliku .robot. Kod bowiem jest umieszczany w określonych sekcjach, rozpoznawanych przez odpowiednie nagłówki. Są one ustalone z góry. W naszym przykładzie będziemy używać poniższych sekcji:

 

  • Settings – sekcja, w której definiujemy dane konfiguracyjne, np. importowane biblioteki czy też pliki zasobów.
  • Variables – sekcja, w której definiujemy zmienne wykorzystywane w danych testowych, np. zmienne typu listy, słowniki czy też zmienne środowiskowe.
  • Test cases – sekcja, w której tworzymy przypadki testowe oraz używamy wartości zadeklarowanych w sekcji Keywords.
  • Keywords – sekcja, w której tworzymy słowa kluczowe (wywoływane w sekcji Test cases).


Należy pamiętać, że istotne jest uzupełnienie sekcji Settings. To w tej sekcji definiujemy listę bibliotek, którą będziemy używać, oraz opisujemy dokumentację projektu. Ponieważ w przykładzie wykorzystujemy bibliotekę Selenium, po stworzeniu naszego pliku w pierwszej linii sekcji Settings wpisujemy Library SeleniumLibrary. Dzięki temu nasz plik Robot będzie wiedział, na podstawie jakiej biblioteki ma budować rozwiązanie.

 

[...]

 

Autor jest studentem informatyki na uniwersytecie w Irlandii, pasjonatem programowania oraz cyberbezpieczeństwa.

Artykuł pochodzi z miesięcznika: IT Professional

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"