Wyślij zapytanie Dołącz do Sii

Testowanie aplikacji mobilnych różni się od testowania aplikacji internetowych czy desktopowych pod wieloma względami. Oczywiście, inaczej będą wyglądać testy aplikacji bankowych i gier – wszystko zależy od rodzaju aplikacji, jej głównych funkcjonalności czy grona odbiorców.

Duże znaczenie ma także platforma docelowa, na której pracuje aplikacja. Najczęściej rozważamy platformy Android i iOS, dlatego też w tej części zaprezentowany zostanie framework Appium, który udostępnia testy dla tych dwóch wiodących systemów.

Appium

Appium jest narzędziem open-source służącym do automatyzacji aplikacji natywnych, webowych oraz hybrydowych na platformach iOS oraz Android. Istotną cechą Appium jest wieloplatformowość, umożliwia bowiem pisanie testów na platformach iOS i Android przy pomocy tego samego API.

Filozofia Appium

Ideą Appium jest, by testowanie aplikacji natywnych nie wymagało dodawania specjalnych SDK czy też rekompilacji aplikacji. Powinniśmy również mieć możliwość użycia preferowanych przez siebie narzędzi, jęzków i praktyk. Appium to w pełni otwarty projekt, stworzony tak, by zachęcić społeczność do udziału w jego rozbudowie. Jak możemy przeczytać na stronie projektu, Appium został zaprojektowaniu w celu możliwości zautomatyzowania testów aplikacji mobilnych, zgodnie z filozofią czterech następujących założeń:

  1. Nie ma potrzeby przekompilowywania oraz modyfikowania aplikacji, aby poddać ją automatyzacji.
  2. Testy automatyczne nie powinny być ograniczone do określonego języka frameworka.
  3. Framework służący do automatyzacji nie powinien wyważać otwartych drzwi, jeśli chodzi o API automatyzacji.
  4. Framework powinien być oprogramowaniem open-source.

Projekt Appium

Zgodnie z zaprezentowanymi wyżej czterema punktami, projekt Appium realizuje swoją filozofię w następujący sposób:

  1. Appium korzysta z mechanizmów, dostarczanych przez twórców iOS oraz Androida, dzięki temu nie ma potrzeby kompilowania z jakimś specyficznym kodem frameworka. Testowaniu poddawana jest dokładnie ta sama aplikacja, którą stworzyliśmy. I tak, w przypadku iOS wykorzystywany jest UIAutomation, dla Androida 4.2+ Google UiAutomator, a dla Androida 2.3+ Google Instrumentation (Instrumentation wspierany jest przez osobny projekt Selendroid).
  2. Mechanizmy dostarczane przez twórców iOS czy Andorida zostały zawarte w API WebDriver. WebDriver określa protokół typu klient-serwer. Dzięki architekturze klient-serwer, klient napisany w dowolnym języku może być wykorzystywany do wysyłania odpowiednich żądań HTTP do serwera. Na tę chwilę istnieją już klienci napisani praktycznie w każdym popularnym języku programowania.
  3. WebDriver stał się standardem, jeśli chodzi o automatyzację testów w środowisku przeglądarek internetowych. Twórcy Appium postanowili rozszerzyć tylko API o specyficzne metody służące testowaniu aplikacji mobilnych.
  4. Appium jest oprogramowaniem open-source

Koncepcje Appium

Architektura klient-server

Sercem Appium jest serwer www wykorzystujący REST API. Odbiera on połączenia z klientem, nasłuchuje poleceń oraz wykonuje je na urządzeniu mobilnym, dzięki reakcji na odpowiedzi HTTP, możemy poznać wyniki wykonania danego polecenia. Zaletą tego typu architektury jest to, że kod testu możemy napisać w dowolnym języku, który posiada klienta, możemy również sam serwer zainstalować na innym komputerze.

Sesja

Automatyzacja zawsze odbywa się w ramach jednej sesji. Klient inicjuje sesję z serwerem przez co tworzony jest identyfikator sesji, wykorzystywany dalej do przesyłania kolejnych poleceń.

Pożądane możliwości

Pożądane możliwości to zestaw kluczy i wartości (tzw. map or hash) wysyłanych do serwera Appium, które mówią serwerowi którą sesją automatyzacji jesteśmy zainteresowani. Możemy również modyfikować różne właściwości w czasie automatyzacji, przykładowo możemy ustawić funkcję safariAllowPopups na true, dzięki czemu, podczas testów w przeglądarce Safari, mamy możliwość skorzystania z JavaScript, aby otworzyć nowe okno.

Appium Server

Appium napisany jest w Node.js, dzięki czemu może być również zainstalowany ze źródeł lub zainstalowany bezpośrednio z NPM.

Klienci Appium

Ogromną zaletą są biblioteki klienckie obsługujące rozszerzenia Appium do protokołu WebDriver, dostępne w popularnych językach np: Java, Ruby, Python, PHP, JavaScript, C#.

GUI

Dostępne są nakładki graficzne na serwer Appium, które ułatwiają zarówno instalację potrzebnego środowiska jak i identyfikację elementów w aplikacji mobilnej.

Porównanie frameworków

Porównanie Frameworków

Inne frameworki

Android:

  • Robolectric
  • Siesta
  • Spoon

iOS:

  • UI Automation
  • KIF
  • Jasmine
  • Frank

Chcesz lepiej zrozumieć aplikacje i systemy, które testujesz? Dołącz do ModernTester, poznaj najpotrzebniejsze narzędzia, frameworki oraz języki programowania i ćwicz na specjalnie przygotowanych środowiskach testowych: Platforma e-learningowa ModernTester

4.5/5 ( głosy: 2)
Ocena:
4.5/5 ( głosy: 2)
Autor
Avatar
Paulina Łojszczyk

W Sii pracuję od niemalże 5 lat, moją specjalizacją są testy aplikacji mobilnych. Ponadto zajmuję się także poznawaniem i rozwijaniem testów w narzędziu Tosca. Prywatnie jestem szczęśliwą żoną i mamą rocznej Hani.

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?