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:

Selendroid Poradnik

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.

Co to jest Selendroid

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

Co to jest Selendroid

Dlaczego potrzebujemy Selendroid?

Selendroid jest doskonałym narzędziem do testowania. Ale nadal możesz wątpić w jego użyteczność.

Dlaczego potrzebujemy Selendroid

W tej sekcji zostaną przedstawione ważne funkcje programu Selendroid aby odpowiedzieć na pytanie, dlaczego potrzebujesz Selendroid.

Dlaczego potrzebujemy 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 Architektura

Selendroid zawiera 4 główne elementy:

Selendroid Architektura

  • 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

Pierwsze kroki z 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)

    Konfigurowanie Selendroid Środowisko

    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

    Konfigurowanie Selendroid Środowisko

    Krok 2) Wyświetlone zostanie okno Właściwości systemu, wybierz kartę Zaawansowane -> Zmienne środowiskowe

    Konfigurowanie Selendroid Środowisko

    Krok 3) W wyświetlonym oknie Środowisko kliknij opcję Nowy -> Wprowadź zmienną ANDROID_HOME w następujący sposób

    Konfigurowanie Selendroid Środowisko

    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

    Konfigurowanie Selendroid Środowisko

    Konfigurowanie Selendroid Środowisko

    Podobnie jak w przypadku ANDROID_HOME, dodaj nową zmienną JAVA_HOME z wartością jak poniżej

    Konfigurowanie Selendroid Środowisko

    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

Premiera Selendroid

Wynik będzie wyświetlany w następujący sposób

Premiera Selendroid

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.

Premiera Selendroid

Selendroid podstawowe polecenie

W tej sekcji przedstawiono podstawowe informacje Selendroid-Samodzielna linia poleceń. Możesz ich użyć do skonfigurowania Selendroid środowisko testowe

  1. 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:

    Selendroid Podstawowe polecenie

    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

  1. 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:

    Selendroid Podstawowe polecenie

    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ę

    Selendroid Podstawowe polecenie

  2. Zmień port Selendroid używa do komunikacji z serwerem oprzyrządowania. Selendroid domyślnie używa portu 8080

    Parametr: -selendroidServerPort [numer portu]

    Przykład

    Selendroid Podstawowe polecenie

    Port został teraz zmieniony na 9000

  3. 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

    Selendroid Podstawowe polecenie

    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ć

  4. 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

    Selendroid Podstawowe polecenie

    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”.

POBIERZ APK TUTAJ

Pierwszy test z Selendroid

Musimy wykonać następujące czynności Przypadek testowy za pomocą Selendroid

Przypadki testowe Stan Oczekiwany wynik
  1. Uruchom aplikację
  2. Wpisz tekst „Test Guru99” do pola tekstowego
  3. Naciśnij przycisk „Pokaż tekst”.
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

Pierwszy test z Selendroid

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

Pierwszy test z Selendroid

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

Pierwszy test z Selendroid

Wpisz com.guru.test w polu Nazwa w opcji Nowy Java Okno dialogowe pakietu à Zakończ

Pierwszy test z Selendroid

Kurs Eclipse utworzy takie foldery i podfoldery w strukturze kodu źródłowego

Pierwszy test z Selendroid

Krok 4) Zainstalować TestNG dla Eclipse

In Eclipse, Pomoc -> Zainstaluj nowe oprogramowanie. W oknie dialogowym instalacji kliknij Dodaj i wprowadź następujące dane.

wciśnij OK -> Następnie zainstaluj TestNG

Pierwszy test z Selendroid

Krok 5) Skopiuj plik Guru99App.apk do folderu aplikacji testowej

Pierwszy test z Selendroid

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

Pierwszy test z Selendroid

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”

Pierwszy test z Selendroid

Krok 7) Otwórz plik Guru99Test.java (w przykładowym kodzie) i zmień go w następujący sposób

Pierwszy test z Selendroid

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

Pierwszy test z Selendroid

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

Pierwszy test z Selendroid

Rozpocznij sesję testową, klikając prawym przyciskiem myszy, aby przejść do projektu Guru99Test -> Debuguj jako -> Testowanie Test.

Sesja testowa rozpocznie się jak poniżej

Pierwszy test z Selendroid

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

Pierwszy test z Selendroid

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

Pierwszy test z Selendroid

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

  1. Wpisz tekst „Hello Guru”
  2. Kliknij przycisk Pokaż tekst
  3. Poczekaj chwile
  4. 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

Pierwszy test z Selendroid

Krok 10) Skrypt rozpoczyna się w następujący sposób

Pierwszy test z Selendroid

Krok 12) Po zakończeniu wykonywania testu, TestNG automatycznie generuje raport z testu w następujący sposób

Pierwszy test z Selendroid

Pierwszy test z Selendroid

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.