Testowanie aplikacji mobilnych z ukierunkowaniem na...
Transcript of Testowanie aplikacji mobilnych z ukierunkowaniem na...
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
• 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
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
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
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 – 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 – 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
Dziękuję za uwagę!