Selendroid Poradnik dla początkujących z przykładem
Czy kiedykolwiek opracowałeś tzw Android aplikację i opublikować ją w Google Play? Co zrobisz, jeśli otrzymasz recenzję użytkownika typu:
Kiedy publikujesz aplikację w Google Play, musisz ją dokładnie przetestować, aby uniknąć potencjalnych błędów. Istnieje mnóstwo scenariuszy testowych, które należy wykonać przed opublikowaniem aplikacji. Aby zapisać Testowanie wysiłku, potrzebujesz narzędzia testującego. Jedno z najlepszych narzędzi do testowania Android aplikacja jest Selendroid.
Co to jest Selendroid?
Selendroid to framework do automatyzacji testów dla wielu typów aplikacji mobilnych: rodzimy i hybrydowy Android aplikacja i MOBILNA WWW.
Testy możesz pisać za pomocą Selenium 2 interfejsy API klienta. Ponieważ Selendroid nadal wykorzystuje istniejące Selenium infrastrukturę sieciową
Selendroid to potężne narzędzie testujące. Można go używać emulatory i prawdziwy urządzenia
Dlaczego potrzebujemy Selendroid?
Selendroid jest doskonałym narzędziem do testowania. Ale nadal możesz wątpić w jego użyteczność.
W tej sekcji zostaną przedstawione ważne funkcje programu Selendroid aby odpowiedzieć na pytanie, dlaczego potrzebujesz Selendroid.
- Możesz przetestować testowaną aplikację za pomocą Selendroid bez żadnych modyfikacji aplikacji. Potrzebujesz tylko pliku binarnego (APK) zainstalowany na komputerze. Aby zainstalować plik binarny na urządzeniu, aplikacja testowa i aplikacja mobilna muszą być podpisane tym samym kluczem znaku
- Selendroid aplikacja testowa może współdziałać z wieloma urządzeniami lub symulatorami jednocześnie. To wielka zaleta Selendroid. Możesz więc przetestować swoją aplikację za pomocą różnych Android urządzenia, aby sprawdzić kompatybilność.
- Selendroid może symulować działania użytkownika w aplikacji, takie jak dotykanie, przesuwanie, przeciąganie i upuszczanie na urządzeniach
- Możesz zmienić urządzenia sprzętowe (podłącz i odłącz) podczas testowania bez ponownego uruchamiania lub zatrzymywania testu. Selendroid automatycznie rozpoznaje nowe urządzenia
- Odpowiadające Android Wersja API w górę, Selendroid obsługuje również nowe Android API (od API 10 do API 19)
- Selendroid ma również wbudowane narzędzie inspektora, które pomaga zidentyfikować element interfejsu użytkownika testowanej aplikacji. Na przykład przycisk ID, pole tekstowe, widok tekstowy…
Selendroid Architektura
Selendroid opiera się na Android ramy oprzyrządowania. Selendroid testy są pisane na podstawie Selenium Interfejs API klienta sterownika sieciowego, dzięki czemu obsługuje pełną integrację z bieżącym Selenium ramy.
Na poniższym rysunku opisano architekturę Selendroid
Selendroid zawiera 4 główne elementy:
- Klient sterownika sieciowego – The Java biblioteka klienta oparta na Selenium. Bibliotekę tę należy zainstalować na komputerze (na którym tworzone są przypadki testowe)
- Selendroid-Server – serwer, na którym działa testowana aplikacja Android urządzenie lub symulator. To są główne składniki A Selendroid architektura
- Android Aplikacja kierowcy – wbudowana Android sterownik, aplikacja Web View do testowania mobilnego Internetu.
- Selendroid-Standalone — ten komponent służy do instalowania oprogramowania Selendroid serwer i testowana aplikacja (AUT)
Pierwsze kroki z Selendroid
Znałeś już znaczenie tzw Selendroid. Teraz ubrudzimy sobie ręce Selendroid.
Przed pierwszym testem należy wykonać 3 kroki Selendroid
Konfigurowanie Selendroid środowisko
Selendroid może pracować w systemie Windows, Linux i Mac OS. W tym samouczku dokonamy konfiguracji Selendroid w systemie operacyjnym Windows.
Przed użyciem Selendroid, najpierw musisz zainstalować następujący pakiet
- Java SDK (minimum 1.6)
Musisz zaakceptować umowę licencyjną i pobrać instalator Java (wybierz wersję x64 lub x86 w swoim systemie operacyjnym)
Pobierz i zainstaluj Java SDK jako normalne oprogramowanie
- Najnowsza wersja Android SDK
- Twój komputer musi być wyposażony w co najmniej jeden Android Urządzenie wirtualne (AVD) lub prawdziwe Android urządzenie podłączone do komputera.
- Selendroid Samodzielny z zależnościami, Selendroid klientem, Selenium klientem
- Eclipse oprogramowanie
- Skonfiguruj JAVA_HOME i ANDROID_HOME
Krok 1) W oknie kliknij prawym przyciskiem myszy Komputer -> Właściwości -> Zaawansowane ustawienia systemu
Krok 2) Wyświetlone zostanie okno Właściwości systemu, wybierz kartę Zaawansowane -> Zmienne środowiskowe
Krok 3) W wyświetlonym oknie Środowisko kliknij opcję Nowy -> Wprowadź zmienną ANDROID_HOME w następujący sposób
Wartość zmiennej to ścieżka do pakietu android-sdks, który już zainstalowałeś.
Znajdź zmienną systemową Path -> Edytuj -> Dodaj następujący wiersz po bieżącym wierszu
Podobnie jak w przypadku ANDROID_HOME, dodaj nową zmienną JAVA_HOME z wartością jak poniżej
Wartością jest Ścieżka do Twojego Java Instalacja JDK
Krok 4) Uruchom ponownie komputer -> Gotowe
Jak uruchomić Selendroid
Krok 1) Uzyskanie testowanej aplikacji
Możesz skorzystać z istniejących Selendroid przetestuj aplikację, aby sprawdzić, jak to zrobić Selendroid Pracuje (Połączyć do przykładowej testowanej aplikacji)
Po zakończeniu pobierania skopiuj ten plik APK i powyższe Selendroid Samodzielny słoik plik do folderu o nazwie „Guru99″
Krok 2) Uruchom plik Selendroid
Otwórz terminal na Windows & przejdź do folderu Guru99 utworzonego w kroku 1.
Uruchom następujące polecenie
Wynik będzie wyświetlany w następujący sposób
Po uruchomieniu tego polecenia Selendroid-uruchamia się samodzielny serwer HTTP! Domyślny numer portu tego serwera to 4444. Wszystkie urządzenia sprzętowe oraz Android Urządzenie wirtualne zostanie przeskanowane i rozpoznane automatycznie. Selendroid zidentyfikuje Android wersja docelowa i rozmiar ekranu urządzenia.
Aby sprawdzić Android Aby uzyskać wersję docelową, a także informacje o urządzeniu, możesz uruchomić następujący adres URL w przeglądarce: http://localhost:4444/wd/hub/status
.
Selendroid podstawowe polecenie
W tej sekcji przedstawiono podstawowe informacje Selendroid-Samodzielna linia poleceń. Możesz ich użyć do skonfigurowania Selendroid środowisko testowe
- Ustawianie portu Selendroid
Domyślny port Selendroid wynosi 4444. Można jednak zmienić port na inny, dodając parametr do polecenia uruchomienia Selendroid
Parametr: -port [numer portu]
Na przykład:
W powyższym poleceniu nowym portem jest 5555.
Zatem adres URL do sprawdzenia Android wersja docelowa została zmieniona na: http://localhost:5555/wd/hub/status
- Określ lokalizację testowanej aplikacji (binarny plik APK). Selendroid często wymagana była bezwzględna ścieżka do tego pliku
Parametr: -app [ścieżka pliku]
Na przykład:
W powyższym poleceniu Selendroid automatycznie znajdzie bazę plików binarnych w „C:\Guru99App.apk”, aby uzyskać informacje o testowanej aplikacji.
Sprawdź adres URL
http://localhost:4444/wd/hub/status
, zobaczysz tę informację - Zmień port Selendroid używa do komunikacji z serwerem oprzyrządowania. Selendroid domyślnie używa portu 8080
Parametr: -selendroidServerPort [numer portu]
Przykład
Port został teraz zmieniony na 9000
- Zmień limit czasu uruchamiania emulatorów. Jednostką są milisekundy.
Parametr: -timeoutEmulatorStart
Domyślnie Selendroid poczeka 300,000 200,000 milisekund na uruchomienie emulatora. Możesz zmienić limit czasu na nowy (XNUMX XNUMX ms) za pomocą polecenia
Po tym czasie nasz wygaśnie, jeśli emulator nie będzie mógł się uruchomić, plik Selendroid wyrzuci błąd wyjątku (wystąpił błąd podczas wyszukiwania urządzeń/emulatorów), a następnie przestanie działać
- Po uruchomieniu Selendroid polecenie w terminalu, zobaczysz log wydrukowany na ekranie. Możesz zmienić typ logu, który widzisz, dodając następujący parametr
Parametr: -logLevel [rodzaj dziennika]
Wartości poziomu dziennika to ERROR, WARNING, INFO, DEBUG i VERBOSE. Wartość domyślna: BŁĄD.
Na przykład ustaw Selendroid aby wydrukować tylko dziennik OSTRZEŻEŃ, możesz użyć tego polecenia
Kurs Selendroid wydrukuj tylko dziennik OSTRZEŻEŃ
Rozpocznij swój pierwszy test od Selendroid
Ta sekcja zawiera przewodnik krok po kroku dotyczący tworzenia pierwszego skryptu testowego przy użyciu Selendroid
Załóżmy, że mamy plik Android aplikację pod nazwą testową Guru99App. Aplikacja zawiera pole tekstowe i nazwę przycisku „Pokaż tekst”.
Musimy wykonać następujące czynności Przypadek testowy za pomocą Selendroid
Przypadki testowe | Stan | Oczekiwany wynik |
---|---|---|
|
Dostępny jest plik binarny testowanej aplikacji
Urządzenie jest podłączone do komputera |
Tekst „Tekst pokaż tutaj” zostaje zmieniony na tekst
który użytkownik wprowadzi w polu tekstowym |
Krok 1) Stwórz Java projekt w Eclipse
Krok 2) Dodaj selen i Selendroid plik jar w środowiskach eclipse
Kliknij prawym przyciskiem myszy projekt Guru99Test -> Ścieżka budowania -> Dodaj zewnętrzne Archives
Przejdź do folderu, w którym przechowywane są pliki jar
Należy dodać 3 pliki jar
- selendroid-client-0.10.0.jar : Selendroid biblioteka klienta Java
- selendroid-standalone-0.11.0-z-zależnościami : Selendroid samodzielna biblioteka serwerów
- selenium-java-2.40.0.jar : Selenium Biblioteka sterowników sieciowych
Wybierz wszystko -> Wybierz opcję Otwórz, aby dodać plik jar do projektu
Krok 3) po dodaniu powyższej biblioteki biblioteki te zostaną dodane do Biblioteki referencyjnej projektu testowego. Tester może wykorzystać interfejsy API tych bibliotek do opracowania programu testowego
Utwórz pakiet „com.guru.test” i dodaj plik Java „Guru99Test.java”, jak poniżej
Kliknij prawym przyciskiem myszy Guru99Test -> Nowości -> Pakiet
Wpisz com.guru.test w polu Nazwa w opcji Nowy Java Okno dialogowe pakietu à Zakończ
Kurs Eclipse utworzy takie foldery i podfoldery w strukturze kodu źródłowego
Krok 4) Zainstalować TestNG dla Eclipse
In Eclipse, Pomoc -> Zainstaluj nowe oprogramowanie. W oknie dialogowym instalacji kliknij Dodaj i wprowadź następujące dane.
- Nazwa: TestNG
- Lokalizacja: https://github.com/selendroid/selendroid
wciśnij OK -> Następnie zainstaluj TestNG
Krok 5) Skopiuj plik Guru99App.apk do folderu aplikacji testowej
Krok 6) Uzyskaj identyfikator testowanej aplikacji.
Załóżmy, że mamy plik APK o nazwie Guru99App.apk. Wykonaj krok opisany w poprzedniej sekcji, wykonaj polecenie na terminalu
Otwórz poniższy link w przeglądarce: http://localhost:4444/wd/hub/status
.
Wyświetlą się informacje o urządzeniu, skopiuj wartość appId „com.guru99app:1.0”
Krok 7) Otwórz plik Guru99Test.java (w przykładowym kodzie) i zmień go w następujący sposób
Aby utworzyć nową sesję testową z Selendroid, musisz podać identyfikator aplikacji w formacie: com.guru99app:1.0. Ten identyfikator aplikacji można zidentyfikować w kroku 6. Jeśli nie ustawisz identyfikatora aplikacji odpowiadającego Android urządzeniu, sesja testowa zgłosi błąd i nie zostanie uruchomiona.
Po zainicjowaniu znalezionego urządzenia, Selendroid tworzy dostosowany serwer Selendroid i instaluje Selendroid na nim serwer
Selendroid instaluje również testowaną aplikację i uruchamia serwer selendroid na urządzeniu
Po pomyślnym zainicjowaniu sesji testowej na urządzeniu rozpoczyna się wykonywanie polecenia testowego. (np. wprowadzanie tekstu, naciśnięcie przycisku…). Jeśli test dołączy sesję testową, emulator zatrzyma się automatycznie
Krok 8) Rozpocznij nową sesję testową
Uruchom Selendroid serwer za pomocą następującego polecenia w terminalu, jak w kroku 6
Po Selendroid Serwer został uruchomiony, otwórz przykładowy projekt testowy Guru99test on Eclipse, ustaw punkt przerwania w linii 77 w pliku Guru99Test.java, klikając dwukrotnie linię 77 -> Pojawi się kropka, jak poniżej
Rozpocznij sesję testową, klikając prawym przyciskiem myszy, aby przejść do projektu Guru99Test -> Debuguj jako -> Testowanie Test.
Sesja testowa rozpocznie się jak poniżej
Krok 9) Pobierz identyfikator elementu GUI testowanej aplikacji
Po pomyślnym rozpoczęciu sesji testowej otwórz przeglądarkę i przejdź do adresu URL http://localhost:4444/inspector
Zobaczysz, że testowana aplikacja została uruchomiona, jak poniżej
Użyj kursora myszy na każdym elemencie interfejsu użytkownika AUT (przycisk, pole tekstowe, etykieta tekstowa), identyfikator każdego elementu zostanie podświetlony w prawym panelu
Po tym kroku możesz uzyskać identyfikator każdego powyższego elementu interfejsu użytkownika
- Przycisk Pokaż identyfikator tekstowy: „btnPokaż"
- Identyfikator pola tekstowego: „edtTekst"
- Identyfikator tekstu etykiety: „txtView"
Te identyfikatory zostaną użyte w następnym kroku
Krok 10) Wprowadź program testowy jak poniżej
Program testowy wykorzystujący Selendroid obejmuje 3 sekcje
Test konfiguracji:
Poniżej znajduje się kod do testu konfiguracji, który ustawi warunki sesji testowej. W przypadku wystąpienia błędu Selendroid zgłosi wyjątek i aplikacja testowa zatrzyma się.
Kod zawiera komentarze wyjaśniające każde stwierdzenie.
package com.guru.test; import io.selendroid.SelendroidCapabilities; import io.selendroid.SelendroidConfiguration; import io.selendroid.SelendroidDriver; import io.selendroid.SelendroidLauncher; import io.selendroid.device.DeviceTargetPlatform; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.testng.Assert; import org.testng.annotations.AfterSuite; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; /** * @author Guru99 Test App using Selendroid * Application under test: Guru99App * */ public class Guru99Test { //Declare web driver variable private WebDriver driver; /** * Setup the environment before testing * @throws Exception */ @BeforeSuite public void setUp() throws Exception { //Start selendroid-standalone during test SelendroidConfiguration config = new SelendroidConfiguration(); // Add the selendroid-test-app to the standalone server config.addSupportedApp("Guru99App.apk"); //start the standalone server SelendroidLauncher selendroidServer = new SelendroidLauncher(config); selendroidServer.launchSelendroid(); // Create the selendroid capabilities SelendroidCapabilities capa = new SelendroidCapabilities(); // Specify to use selendroid's test app capa.setAut("com.guru99app:1.0"); // Specify to use the Android device API 19 capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19); // Don't request simulator, use real device capa.setEmulator(false); //capa.wait(10000000); // Create instance of Selendroid Driver driver = new SelendroidDriver(capa); }
Wykonaj test
Poniżej znajduje się kod umożliwiający wykonanie testu. Kod zawiera komentarze
Oto ponownie kroki testowe
- Wpisz tekst „Hello Guru”
- Kliknij przycisk Pokaż tekst
- Poczekaj chwile
- Sprawdź, czy aplikacja wyświetla tekst wprowadzany przez użytkownika w polu tekstowym (np. wyświetl tekst „Hello Guru”)
/** * Start execute the test case * 01. Enter the text "Selendroid" to the textfield * 02. Press OK button * @throws Exception */ @Test public void selendroidTest() throws Exception { // Print the log System.out.print("Start executing test"); // Find the input text field on screen // The id of this text field was get from step 9 WebElement inputField = driver.findElement(By.id("edtText")); // Verify that the text field enabled so user can enter text Assert.assertEquals("true", inputField.getAttribute("enabled")); // Enter a text to text field inputField.sendKeys("Hello Guru"); // click Show Text button // The id of this button was get from step 9 WebElement button = driver.findElement(By.id("btnShow")); button.click(); // Delay time to take effect Thread.sleep(5000); //Find the label "Text Show Here" on screen // The id of this label was get from step 9 WebElement txtView = driver.findElement(By.id("txtView")); //Get the text display on screen String expected = txtView.getText(); // Verify that the text which user enter on text field is same as text display on screen Assert.assertEquals(expected, inputField.getText()); }
Zakończ test
Poniższy kod zakończy test poprzez zatrzymanie Selendroid kierowca.
/** * Stop the Selendroid driver * */ @AfterSuite public void tearDown() { driver.quit(); }
Szczegóły można zobaczyć w przykładowym kodzie zawartym w tym artykule.
Krok 10) Skontaktuj się Android urządzenie do komputera za pomocą kabla USB. Punkty, na które należy zwrócić uwagę –
- Upewnij się, że na urządzeniu nie ma skonfigurowanej blokady ekranu.
- Urządzenia muszą być podłączone przez USB do komputera, na którym działa komponent selendroid-standalone.
- Urządzenie powinno przynajmniej zostać zainstalowane Android Target Wersja API 10
Krok 11) Uruchom aplikację testową: Kliknij prawym przyciskiem myszy Guru99test -> Uruchom jako -> TestNG test
Krok 10) Skrypt rozpoczyna się w następujący sposób
Krok 12) Po zakończeniu wykonywania testu, TestNG automatycznie generuje raport z testu w następujący sposób
Dobra robota, już skończyłeś test.
Podsumowanie
- Selendroid jest bardzo potężnym narzędziem do testowania Android aplikacja natywna, aplikacja hybrydowa oraz aplikacja internetowa.
- Można go używać na prawdziwych urządzeniach, a także na symulatorze.
- Umożliwia także równoległe uruchamianie testów, uruchamiając test na wielu urządzeniach.
- Cały Selendroid pakiet składa się z czterech komponentów:
- Klient sterownika sieciowego,
- Selendroid-Serwer,
- Android Aplikacja kierowcy
- Selendroid-samodzielny
- Aby korzystać z Selendroid Ci działać Java JDK, Android SDK i Eclipse zainstalowany.