Testing

Automatyczne testy aplikacji mobilnych – Appium

Marzec 4, 2016 0
Podziel się:

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

4.5 / 5
Kategorie: Testing
Paulina Łojszczyk
Autor: 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.

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

Zostaw komentarz