47
Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Testowanie aplikacji mobilnych z ukierunkowaniem na …prev.testwarez.pl/wp-content/uploads/2014/10/LukaszZlocki... · • MonkeyTalk jest paczką .zip, ... • MonkeyTalk umożliwia

Embed Size (px)

Citation preview

Testowanie aplikacji

mobilnych z ukierunkowaniem na

system Android

Trener

• Łukasz Złocki • Absolwent informatyki UŚ

• Tester i programista

• Certyfikat ISTQB Foundation

• W branży IT od 2003 roku

• W testowaniu od 5 lat

• Trener i konsultant w testerzy.pl

• Automatyk testów

© testerzy.pl 2

Agenda

• Praca z systemem Android

• Testowanie automatyczne z wykorzystaniem narzędzi

© testerzy.pl 3

Praca z systemem

Android

Praca z systemem Android

• Do rozwoju i testowania aplikacji Android wykorzystuje się narzędzia z pakietu Android SDK (Software Development Tools)

• Z narzędzi korzysta się bezpośrednio w Eclipse z dodatkiem ADT (Android Development Tools) • Bezpośredni dostęp do narzędzi

• Pakiet można pobrać ze strony http://developer.android.com/sdk/index.html

5 © testerzy.pl

Praca z systemem Android

• Ustawienie zmiennych środowiskowych

• User Variable • ANDROID_HOME = <path_to_sdk>

• System Variable • PATH = %PATH%; <path_to_platform_tools>;

<path_to_tools>

6 © testerzy.pl

SDK Manager

• Dodawanie platform oraz niezbędnych pakietów

7 © testerzy.pl

AVD Manager

• Android Virtual Device (AVD) pozwala modelować rzeczywiste urządzenia poprzez określenie sprzętu oraz oprogramowania i emulować je poprzez emulator

8 © testerzy.pl

Używanie emulatora Android

9 © testerzy.pl

Wykorzystanie konsoli emulatora

• Każda instancja emulatora udostępnia konsolę

• Dzięki poleceniom konsoli można kontrolować warunki pracy emulatora

• Podłączenie do konsoli telnet localhost <console-port>

• Konsola jest dostępna na portach 5554-5587 i jedynie z localhost'a

• Lista dostępnych poleceń help <polecenie>

• Kończenie pracy z konsolą quit lub exit

10 © testerzy.pl

Instalowanie aplikacji na emulatorze

• Uruchomienie testu w Eclipse powoduje automatyczną instalację aplikacji testowanej

• Instalacja odbywa się za pomocą narzędzia adb adb -s <device_name> install <src/app.apk>

• Przed zainstalowaniem aplikacji należy ją skonwertować do pliku .apk (build) • Instalacja poza Eclipse

• Emulator zapamiętuje informacje o aplikacji w danych użytkownika zlokalizowanych na dysku • Można wyczyścić dane użytkownika przy starcie emulatora

lub uruchomić instalację z odpowiednim parametrem

adb -s <device_name> install -r <src/app.apk>

11 © testerzy.pl

Testowanie automatyczne

z wykorzystaniem narzędzi

Agenda

• Testowanie z Eclipse ADT

• Robotium

• Robotium Recorder

• Testdroid Recorder

• MonkeyTalk

• Appium

15 © testerzy.pl

Instalacja wtyczki ADT

• Wtyczka ADT do Eclipse oferuje kilka funkcji, które pomagają konfigurować i zarządzać środowiskiem testowym • Szybko tworzy projekt testowy i łączy go z aplikacją testową

• <instrumentation> w pliku manifest

• Pozwala szybko zaimportować klasy do testów z aplikacji testowanej

• Pozwala na uruchomienie testu bezpośrednio z Eclipse • Automatycznie instaluje projekt w urządzeniu, uruchamia testy i

wyświetla wyniki

• Podpisuje pakiety .apk do dystrybucji

• https://dl-ssl.google.com/android/eclipse

16 © testerzy.pl

Praca z ADT w Eclipse

• Obsługa dodatku ADT

• Import projektu źródłowego aplikacji Android

• Tworzenie projektu testowego dla aplikacji źródłowej

• Uruchamianie projektu testowego

17 © testerzy.pl

Robotium - charakterystyka

• Framework testowy do pisania wydajnych i niezawodnych testów automatycznych black box dla aplikacji Android • funkcjonalnych, systemowych czy akceptacyjnych

• Wymagane pliki ze strony projektu http://code.google.com/p/robotium/ • robotium-solo-5.x.jar – biblioteka Robotium

• robotium-solo-5.x-javadoc.jar - javadoc

19 © testerzy.pl

Robotium – tworzenie testu z projektu źródłowego

• Dla istniejącego projektu źródłowego aplikacji Android tworzymy projekt testowy

• Następnie tworzymy klasę testową będącą naszym przypadkiem testowym w już utworzonym pakiecie

• Importujemy bibliotekę robotium-solo-5.x.jar • Tworzymy katalog libs w projekcie i importujemy pliki

• Build Path-->Configure Build Path...-->Add JARs...

• Utworzoną klasę testową uzupełniamy kodem naszego testu

20 © testerzy.pl

Robotium – tworzenie testu z pliku .apk

• Pracując bez źródła nie znamy nazwy pakietu aplikacji oraz głównej aktywności, która ją uruchamia • Znalezienie tych informacji umożliwia nam

polecenie: • adb logcat

• aapt dump badging

21 © testerzy.pl

Robotium – tworzenie testu z pliku .apk

22 © testerzy.pl

• adb logcat

• aapt dump badging src_app.apk

Robotium – tworzenie testu z pliku .apk

• Tworzymy projekt testowy, pakiet oraz klasę ze skryptem testowym • Pakiet testowy powinien mieć nazwę zgodną z

nazwą pakietu aplikacji testowanej z dopiskiem test com.android.calculator.test

• Dokonujemy zmiany w pliku AndroidManifest.xml podając odpowiednią nazwę pakietu aplikacji testowanej

23 © testerzy.pl

Robotium Recorder - charakterystyka

• Nagrywanie profesjonalnych przypadków testowych

• Plugin dla Eclipse IDE

• Nagrywanie bezpośrednio z narzędzia lub emulatora

• Wsparcie dla natywnych i hybrydowych aplikacji

• Automatyczne rozpoznawanie ID elementu

• Synchronizowany z ostatnimi wydaniami Robotium

25 © testerzy.pl

Robotium Recorder – instalacja

• Instalacja jako dodatek do Eclipse IDE • Help Install New Software

http://recorder.robotium.com/updates

26 © testerzy.pl

Robotium Recorder – tworzenie projektów testowych

• Robotium Recorder może nagrywać testy zarówno z projektu źródłowego jak i z pliku .apk • Pliki .apk są automatycznie podpisywane kluczem

debugującym

27 © testerzy.pl

Robotium Recorder – tworzenie projektów testowych

• Każda czynność użytkownika jest rejestrowana na liście poleceń

• Kliknięcie na elemencie w UI użytkownika powoduje dodanie polecenia będącego automatycznie asercją

• Zaznaczone polecenie można usunąć lub zrobić dla niego zrzut ekranu

28 © testerzy.pl

Testdroid Recorder - charakterystyka

• Narzędzie capture/replay dla Androida • Rejestruje zachowania

użytkownika w aplikacji

• Ściśle zintegrowany z Eclipse • Instalowany jako rozszerzenie

• Upraszcza automatyzację testowania aplikacji • Tworzy automatycznie kod

skryptu

• Wykorzystuje składnię Robotium

• Umożliwia uruchamianie testów w chmurze

30 © testerzy.pl

Testdroid Recorder - instalacja

• Testdroid do prawidłowego działania wymaga Eclipse z zainstalowanym dodatkiem ADT oraz Android SDK zainstalowany w systemie

• Instalujemy dodatek Testdroid podając adres URL http://www.testdroid.com/updates/

• Po pomyślnym zainstalowaniu

dodatku można rozpocząć

z nim pracę

31 © testerzy.pl

Testdroid Recorder – pierwsze uruchomienie

• Do pracy z Testdroid Recorderem wymagane jest konto założone na stronie https://cloud.testdroid.com

• Przy pierwszym uruchamianiu pojawia się okno z prośbą o autoryzację

• Podajemy dane, na które zarejestrowaliśmy się i klikamy na przycisk „Autoryzuj”

32 © testerzy.pl

Testdroid Recorder – tworzenie projektu ze źródła

• Są dwie możliwości: • Dla projektu aplikacji wybieramy

• Zostanie utworzony nowy projekt testowy

• Dla przygotowanego projektu testowego wybieramy

33 © testerzy.pl

Testdroid Recorder – tworzenie projektu z pliku .apk

• Dla nowego projektu testowego wybieramy

• W kolejnym oknie wybieramy docelowe miejsce, w którym będą tworzone klasy testowe

• Wybieramy pakiet w jakim będą znajdować się klasy testowe • Nazwa pakietu powinna być zgodna z nazwą pakietu

aplikacji testowanej i zakończona przyrostkiem .test

• Podajemy nazwę klasy testowej

34 © testerzy.pl

MonkeyTalk - charakterystyka

• MonkeyTalk składa się z dwóch podstawowych komponentów

• MonkeyTalk IDE • Wzorowane na Eclipse narzędzie do

nagrywania, odtwarzania, edycji i zarządzania testami

• Obsługuje emulatory, symulatory i rzeczywiste narzędzia dla Androida i iOS

• MonkeyTalk Agents • Biblioteki dla Androida i iOS, które muszą być

podpięte do aplikacji testowanej

• Umożliwiają w aplikacji nagrywanie i odtwarzanie komend MonkeyTalk

36 © testerzy.pl

MonkeyTalk – instalacja - Android

• MonkeyTalk jest paczką .zip, którą wystarczy pobrać i wypakować w dowolnym miejscu na dysku • W katalogu MonkeyTalkIDE znajduje się samo

narzędzie, które można już uruchomić

37 © testerzy.pl

MonkeyTalk – instalacja - Android

• Wymagany jest plugin AspectJ Development Tools (AJDT) w EclipseIDE • http://www.eclipse.org/ajdt/whatsnew223/

• Konwertujemy projekt aplikacji testowanej na AspectJ

38 © testerzy.pl

MonkeyTalk – instalacja - Android

• Importujemy do katalogu libs bibliotekę monkeytalk-agent.jar z katalogu agents/android/

• Dodaną bibliotekę dopisujemy do ścieżki path projektu AspectJ

39 © testerzy.pl

MonkeyTalk – instalacja - Android

• Do pliku manifestu aplikacji testowanej dodajemy dwa wpisy

40 © testerzy.pl

MonkeyTalk – instalacja - Android

• Na koniec dodajemy informację o eksporcie biblioteki AspectJ wraz z aplikacją testowaną

41 © testerzy.pl

MonkeyTalk – nagrywanie skryptów

• Przed rozpoczęciem nagrywania należy uruchomić emulator, symulator iOS lub podłączyć urządzenie • Zainstalować i uruchomić wcześniej przygotowaną aplikację

do testowania

• W MonkeyTalkIDE utworzyć nowy projekt i dodać nowy skrypt

• Wybrać urządzenie

• Rozpocząć nagrywanie

42 © testerzy.pl

MonkeyTalk – zestawy testów

• MonkeyTalk umożliwia organizowanie testów w zestawy testów • Kontrola uruchamiania i raportowanie JUnit

• Zestaw testów zawiera tylko trzy typy poleceń • Test – plik z przypadkiem testowym

• SetUp – plik uruchamiany przed każdym testem

• TearDown – plik uruchamiany po każdym teście

43 © testerzy.pl

MonkeyTalk – sposoby uruchamiania

• Uruchamianie za pomocą Apache Ant • Realizowane za pomocą biblioteki monkeytalk-

ant.jar

• Dwa sposoby wykorzystania tej biblioteki • Skopiować do katalogu Ant/lib/ powyższą bibliotekę

• Przekazywać ścieżkę do niej jako parametr w wierszu poleceń –lib monkeytalk-ant.jar

44 © testerzy.pl

MonkeyTalk – sposoby uruchamiania

• Uruchamianie za pomocą Java Runner

45 © testerzy.pl

MonkeyTalk – Java API

• Java API daje możliwość tworzenia testu aplikacji mobilnej jak standardowego testu JUnit w języku Java

• API zawarte jest w bibliotece monkeytalk-java-all-in-one.jar • Bibliotekę importuje się do standardowego

projektu Java

• Uruchomienie projektu testowego wymaga uruchomienia aplikacji testowanej

46 © testerzy.pl

Appium - charakterystyka

• Narzędzie open-source do

tworzenia automatycznych

testów natywnych i hybrydowych aplikacji

• Wspólne i intuicyjne API dla wielu platform (iOS, Android)

• Nie trzeba modyfikować testowanej aplikacji

• Używasz swojego ulubionego języka, praktyk i narzędzi do pisania testów

• GUI serwera Appium ułatwiający zarządzanie

48 © testerzy.pl

Appium – instalacja (windows)

• Wymagania (Android) • Windows 7+ lub Linux

• SDK >= 16 (UIAutomator), SDK < 16 (Selendroid)

• GUI Appium pobieramy ze strony • https://github.com/appium/appium-dot-exe

• Wymagane biblioteki klienta zawierające API WebDriver • http://docs.seleniumhq.org/download

• Selenium server

• https://github.com/appium/java-client • AppiumDriver

49 © testerzy.pl

Appium – serwer

• GUI serwera Appium

50 © testerzy.pl

Appium – serwer

• Okno inspektora Appium testowanej aplikacji

51 © testerzy.pl

Appium – tworzenie projektu testowego

• Stworzenie nowego projektu testowego

• Dodanie wymaganych bibliotek • selenium-java-x.x.x.jar

• selenium-server-standalone-x.x.x.jar

• java-client-x.x.x.jar

• gson-x.x.jar

• Ustawienie właściwości platformy testowej i podłączenie do serwera

52 © testerzy.pl

Appium – tworzenie projektu testowego

• Ustawienie właściwości platformy testowej i podłączenie do serwera

53 © testerzy.pl