O Appium
Istnieje sporo narzędzi do automatyzacji testów e2e aplikacji mobilnych, część z nich przeznaczona jest do pracy z systemem Android, część do iOS, takie rozwiązania są bez wątpienia najlepsze, jeżeli pracujemy nad aplikacją przeznaczoną dla jednej platformy. Jednak w sytuacji kiedy przygotowywana jest aplikacja dla dwóch platform: lepiej jest wybrać narzędzie, które pozwoli przygotować automatyczne testy na obie platformy.
Jednym z takich rozwiązań jest Appium.
Założeniem twórców Appium było stworzenie open-source’owego rozwiązania, pozwalającego na:
- Testowana powinna być niezmieniona wersja aplikacji;
- Narzędzie do testów nie powinno ograniczać użytkownika do korzystania z jednego języka;
- Maksymalizacja reużywalności testów dla wszystkich platform (brak konieczności pisania odrębnego kodu dla testów na Androidzie oraz iOS).
W efekcie, twórcy postawili na rozwiązanie opierające się na Selenium WebDriver. Architektura klient-serwer pozwala na korzystanie z tego samego API dla każdej platformy, wygląda ona (w uproszczeniu) tak:
Rozpoczynając sesję, użytkownik podaje jej parametry, w których informuje serwer, z jakiego urządzenia będzie korzystał, jakiego silnika chce użyć i jaką aplikację serwer ma uruchomić. O szczegółach napiszę w dalszych wpisach.
Dlaczego Appium?
Appium jest bez wątpienia wolniejsze od narzędzi przeznaczonych na konkretne platformy, jego zalet należy upatrywać zatem gdzie indziej 😉
Przede wszystkim, dla osoby, która – podobnie do mnie – przeszła z automatyzacji testów aplikacji webowych przy użyciu Selenium do testowania aplikacji mobilnych, przesiadka jest niemalże bezbolesna: interakcje z UI przy użyciu Appium definiowane są niemalże identycznie jak w Selenium.
Drugim dużym atutem jest możliwość odpalenia tych samych testów na iOS i Androidzie.
Trzecim, nie do przecenienia, plusem jest towarzysząca Appium społeczność (którą w przypadku części problemów można poszerzyć o społeczność Selenium).
I na koniec – z własnego doświadczenia – przy systemach w skład których wchodzi zarówno aplikacja jak i strona internetowa: ogromnym plusem jest możliwość współdzielenia rozwiązań pomiędzy testami aplikacji webowej i mobilnej.
Instalacja
Instalacja opisana jest pod tym linkiem: klik.
Jeżeli nie korzystamy z żadnego narzędzia do inspekcji aplikacji może nam się przydać wersja desktopowa, rozbudowana m.in. o możliwość odpalania inspektora (który może być bardzo pomocny przy tworzeniu lokatorów elementów UI).