Wyślij zapytanie Dołącz do Sii

Od długiego czasu narzędzia no-code i low-code zyskują na popularności w całym procesie wytwarzania oprogramowania, od tworzenia aplikacji do testowania ich. Innym rozwiązaniem wkraczającą na rynek rozwiązań IT jest AI.

Mabl łączy te zagadnienia w postaci platformy do wieloaspektowego testowania aplikacji. W serii artykułów o tym narzędziu przedstawię jego działanie w praktyce.

Aplikacja

Low-code

Co to znaczy, że Mabl jest narzędziem low-code? Otóż bazuje ono na redukcji potrzeby pisania skryptów do tworzenia i uruchamiania testów, zastępując je interfejsem graficznym, czyli UI. Mabl pod tym względem niewątpliwie wyprzedza konkurencję, oferując nowoczesny i prosty do zrozumienia interfejs.

Przykład Trainera testów UI
Ryc. 1 Przykład Trainera testów UI
Przykład Trainera testów API
Ryc. 2 Przykład Trainera testów API

W takim razie – gdzie jest ten low-code, skoro na razie nie musimy pisać żadnego kodu? Otóż Mabl daje nam możliwość zastosowania kodu napisanego w JavaScript’cie dla skomplikowanych lub nieoczywistych rozwiązań.

Dla testów UI możemy zastosować „snippety”. Są to funkcje, w których wykonujemy interesujące nas działania. Dobrym przykładem akcji, jaką możemy wykonać, jest stworzenie niestandardowego formatu daty, który jest wymagany w jednym z pól na stronie internetowej, którą testujemy.  

Przykład Snippet Trainera
Ryc. 3 Przykład Snippet Trainera

Dla testów API kod możemy zamieszczać w wielu miejscach, zależnie od naszych potrzeb.

Dzielimy je ze względu na:

  • liczbę testów, których dotyczą (dla wszystkich lub dla każdego testu oddzielnie),
  • moment wykonania (przed wysłaniem zapytania lub po jego wysłaniu).

Dzięki temu, możemy w dynamiczny sposób korzystać z wartości, które otrzymujemy lub wysyłamy w zapytaniach.

Kod JS–owy przed wszystkim zapytaniami
Ryc. 4 Kod JS–owy przed wszystkim zapytaniami

Artificial Intelligence

AI jest w tym momencie gorącym tematem w świecie IT. Mabl jest tego w pełni świadom, dlatego w przeciwieństwie do innych podobnych narzędzi nie traktuje AI jako dodatku, ale jako integralną część systemu. Stosuje on sztuczną inteligencję w celu poprawy jakości, utrzymywalności i szybkości testów.

Uzyskuje to dzięki 3 elementom:

  1. Automatycznemu leczeniu (ang. Auto-healing) – dla kroków, które wykorzystują elementy strony internetowej, Mabl uczy się atrybutów danego elementu i podczas odpalania na chmurze, kiedy nie jest w stanie go ponownie znaleźć na skutek jakieś zmiany, stara się sam uleczyć test poprzez znalezienie nowego silnego powiązania.
  2. Inteligentnemu czekaniu (ang. Intelligent Wait) – Mabl przechowuje informację o czasie i stabilności poprzednich egzekucji testu, dzięki czemu ucząc się, jest w stanie zbalansować czas, jaki jest potrzebny na wykonywania poszczególnych akcji na stronie. Przekłada się to na redukcję czasu potrzebnego na wykonanie testu przy jednoczesnym zachowaniu jego stabilności.
Przykład inteligentnego czekania
Ryc. 5 Przykład inteligentnego czekania
  1. Nauce wizualnej zmiany (ang. Visual change learning) – za pomocą uczenia maszynowego tworzony jest dynamiczny model zmian wizualnych, który niweluje wpływ wszystkich dynamicznych elementów strony (jak banery z reklamami) i powie nam o wszelkich istotnych zmianach na naszej stronie.

Rodzaje testów

Mabl umożliwia tworzenie wielu rodzajów testów. Nie tylko skupia się na testach funkcjonalnych wykonywanych na poziomach UI i API, ale również na testach niefunkcjonalnych walidujących przystępność i wydajność testowanego systemu. Informacje pozwalające oceniać metryki związane z rzeczami niefunkcjonalnymi, są zbierane zarówno podczas wykonywania testów funkcjonalnych oraz podczas stworzonych dedykowanych testów niefunkcjonalnych.

Poniżej, przedstawię wszystkie rodzaje testów, możliwych do stworzenia za pomocą Mabl.

Testy UI

Trainera testów UI możemy wykorzystać na kilka sposób. Jednym z nich jest pisanie testów UI End-to-end, gdzie podczas nagrywania przechodzimy przez poszczególne widoki związane z funkcjonalnością, wykonujemy akcję, które później sprawdzimy asercjami. Natomiast przy skorzystaniu z dodatkowego modułu do testów użyteczności, jesteśmy w stanie sprawdzać stan strony, jak i jej elementów pod względem przystępności.

Kolejnym rodzajem testów UI są testy wizualne, gdzie test uruchamia daną stronę internetową i bazując na wcześniej przechowywanej informacji o jej wyglądzie, sprawdza czy jej interfejs graficzny nie uległ zmianie.

Testy API

W testach API możemy przyjąć dwie strategie testowania:

  1. Sprawdzanie ścieżek poprzez wywoływanie kolejnych powiązanych ze sobą zapytań API,
  2. Weryfikacja pojedynczego endpointa ze względu na różne parametry wejściowe.

Jesteśmy w stanie stworzyć takie dwa podejścia ze względu na to, że Mabl nie skończy egzekucji testu przy wystąpieniu błędów w odpowiedziach na wywołane zapytania, o ile mu tego nie zlecimy. Pozwala to na grupowanie testów dla danych zapytań, jak i redukcję potrzebnych zasobów na uruchomienie wielu testów.  

Testy wydajnościowe

Mabl zbiera informacje o wydajności poszczególnych komponentów UI i API, jak i o czasie wykonywania samych testów. Informacje te są wyświetlane na poszczególnych wykresach i możliwe do filtrowania ze względu na plan testowy i środowisko.

Poniżej przedstawię ich przykłady.

Przykład wydajności testu UI lub API
Ryc. 6 Przykład wydajności testu UI lub API
 Przykład wydajności zapytań API
Ryc. 7 Przykład wydajności zapytań API
Przykład wydajności stron
Ryc. 8 Przykład wydajności stron

Dodatkowo, za pomocą jednego z modułów możliwe jest stworzenie testów wydajności, które będą korzystać z wcześniej napisanych testów przeglądarki i/lub API. Skraca to w znaczny sposób czas potrzebny na stworzenie i utrzymanie dedykowanych testów wydajnościowych.

Widok dla dodawania testów wydajnościowych
Ryc. 9 Widok dla dodawania testów wydajnościowych

Infrastruktura

Jest to narzędzie działające przede wszystkim w obrębie chmury, ale mamy możliwość uruchamiania testów lokalnie. Dzięki temu zredukowano trudność i koszt potrzebny na zbudowanie skalowalnego systemu do testowania aplikacji.

Na ten moment Mabl wspiera takie przeglądarki jak:

  • Chrome,
  • Edge (tylko chmura),
  • Firefox (tylko chmura),
  • Safari (tylko chmura),
  • emulacja przeglądarki mobilnej na Chrome dla wszystkich najpopularniejszych urządzeń.

Trwają prace nad umożliwieniem testowania natywnych aplikacji mobilnych najpierw na emulatorach, a za jakiś czas na rzeczywistych urządzeniach. Przewidywane jest wprowadzenie pierwszej wersji jeszcze na początku tego roku.

Platformy

Mabl oferuje możliwość skorzystania z wersji desktopowej jak i przeglądarkowej aplikacji.

Wersje desktopowe są dostępne na platformy:

  • Windows,
  • Linux,
  • macOS Intel,
  • macOS Apple.

Testy równoległe

Bazując na skalowalnej infrastrukturze Mabla, możliwe jest nielimitowane uruchomienie testów równoległych, zarówno na wielu przeglądarkach jak i wielu funkcjonalności. Brak ograniczeń w ilości równoczesnych egzekucji pozwala rozbić plany testowe na mniejsze, skupiające się na jednej lub kilku funkcjonalnościach.

Wprowadza to dużo większą elastyczność wykonań testów jak i uzyskanie szybszej odpowiedzi zwrotnej z ich wynikami. Kolejną zaletą wynikającą z tego jest możliwość zastosowania powyższych cech do wdrożenia shift-left (czyli przesunięcia procesów kontroli jakości na wcześniejsze etapy wytwarzania oprogramowania). Testy równoległe są dostępne tylko na chmurze, lokalnie wszystkie testy są uruchamiane w sposób sekwencyjny.  

Mabl CLI

Uruchamianie testów lokalnie ma pewne ograniczenia – wszystkie pojedyncze testy możemy odpalić z poziomu widoku danego testu. Przedstawia to poniższe zdjęcie.

Przykład uruchomienia testu lokalnie
Ryc. 10 Przykład uruchomienia testu lokalnie

Aby uruchomić plan testowy, musimy skorzystać z narzędzia Mabl CLI. Jest ono rozdzielne z aplikacją desktopową czy przeglądarkową. Dzięki temu możliwa jest łatwa inicjacja testów lokalnie na systemie CI/CD. Wymagane jest zainstalowanie środowiska Node.JS. Następnie należy wywołać w terminalu komendę:

```npm install -g @mablhq/mabl-cli```

Kolejnym krokiem jest zautoryzowanie aplikacji terminalowej z naszym środowiskiem pracy Mabl.

```mabl auth activate-key KEY_VALUE```

Po wykonaniu kroków mamy dostęp do pełnej funkcjonalności Mabl CLI. Poniżej zaprezentowałem kilka przykładów konfiguracji uruchamiania lokalnego testów:

  1. Uruchomienie wybranego planu testowego za pomocą jego id:

„`mabl tests run –from-plan-id ID_PLANU –headless„`

  1. Uruchomienie wybranego testu za pomocą jego id:
```mabl tests run --id ID_TESTU –headless```
  1. Uruchomienie wielu testów posiadających dane kategorię 1 i 2 z wykluczeniem 3:
```mabl tests run --labels KATEGORIA_1, KATEGORIA_2 --exclude-labels KATEGORIA_3 –headless```

Oprócz inicjacji lokalnej testów, Mabl CLI umożliwia wywoływanie zdarzeń związanych z wdrożeniem nowej wersji testowanego systemu lub jego części. W związku z tym możemy od razu wywołać interesujące nas testy i sprawdzić, jak dana wersja wpłynęła na stan naszej aplikacji. Wykonujemy to poprzez wywołanie komendy:

```mabl deployments create --application-id ID_APLIKACJI --labels KATEGORIA_1 await-completion```

Jeżeli posiadamy więcej niż jedno środowisko zdefiniowane w aplikacji, to do wszystkich powyższych opcji warto jest dodać parametr `–environment-id ID_ŚRODOWISKA.

Mabl Link

Częstym wyzwaniem, stojącym przed zespołem testerskim, jest testowanie aplikacji na środowiskach lokalnych lub zamkniętych sieciach. Z pomocą przychodzi Mabl Link. Jest to jeden z modułów, który umożliwia nawiązanie bezpiecznego połączenia między tymi środowiskami a chmurą Mabl. Składa się on z dwóch elementów:

  • Link Agent,
  • Link Service.

Poniższy diagram pokazuje ruch między poszczególnymi elementami tej funkcjonalności.

Przykład Mabl Link
Ryc. 11 Przykład Mabl Link

Integracje

Jednym z głównych założeń Mabl jest ułatwienie wdrożenia testowania do organizacji. Kryje się za tym łatwość w tworzeniu integracji z innymi narzędziami, które są najczęściej używane i powiązane z wytwarzaniem oprogramowania lub z samym testowaniem. Lista oficjalnych systemów, z jakim Mabl jest zintegrowany, cały czas jest poszerzana o nowe pozycje. Zespół odpowiedzialnych za to narzędzi jest otwarty na sugestie dostarczane przez społeczność w celu dodania nowych.

Poniżej przedstawię wszystkie dostępne integracje na ten moment:

Aktualne oficjalne integracje Mabl
Ryc. 12 Aktualne oficjalne integracje Mabl

Oprócz oficjalnych integracji, możliwe jest skorzystanie z Webhooków, które wykonywane są przed i/lub po egzekucji planu testowego. Daje nam to możliwość rozszerzenia przesyłu informacji we własnym zakresie.

Dodawanie Webhooka
Ryc. 13 Dodawanie Webhooka

Podsumowanie

W artykule zobrazowałem, jak obszernym narzędziem jest Mabl. Omówiłem, w jaki sposób pozwala na redukcję czasu i kosztu związanego z automatyzacją testów. Jest to łatwe do zrozumienia i otwarte narzędzie, dzięki dostępności aplikacji na wszystkich głównych systemach operacyjnych oraz dzięki posiadaniu dedykowanej aplikacji internetowej. Mabl cechuje się szybkością uzyskiwania rezultatów, poprzez możliwość egzekucji bardzo dużej ilości testów równolegle.

Oprócz wyżej wymienionych zalet, Mabl jest rozwiązaniem cechującym się łatwością rozszerzania. Związane jest to z wieloma integracjami jak i dodatkowymi modułami pozwalającymi skonfigurować narzędzie dla swoich potrzeb. Narzędzie to jest w stanie uzyskać wiele możliwych typów analizy systemu podczas uruchamiania testów funkcjonalnych UI i API lub poprzez dedykowane testy niefunkcjonalne.

W kolejnych artykułach przedstawię proces tworzenia poszczególnych typów testów, jak i sposoby do zapewniania sukcesu we wdrożeniu Mabl w procesach organizacji.   

3.7/5 ( głosy: 4)
Ocena:
3.7/5 ( głosy: 4)
Autor
Avatar
Wojciech Wieczorek

Test Development Engineer. Tester automatyzacji zajmujący się implementacją aplikacji testowych. Specjalizuje się w JavaScript i TypeScript, ale inne języki nie są mu obce. Wspiera swoich kolegów w ulepszaniu podejścia zespołu do kodowania i ogólnej poprawie samej aplikacji testowej. Poza pracą lubi przeczytać dobrą książkę albo spędzić czas, grając w gry planszowe lub cyfrowe.

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Może Cię również zainteresować

Pokaż więcej artykułów

Bądź na bieżąco

Zasubskrybuj naszego bloga i otrzymuj informacje o najnowszych wpisach.

Otrzymaj ofertę

Jeśli chcesz dowiedzieć się więcej na temat oferty Sii, skontaktuj się z nami.

Wyślij zapytanie Wyślij zapytanie

Natalia Competency Center Director

Get an offer

Dołącz do Sii

Znajdź idealną pracę – zapoznaj się z naszą ofertą rekrutacyjną i aplikuj.

Aplikuj Aplikuj

Paweł Process Owner

Join Sii

ZATWIERDŹ

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?