Samouczek Selendroid dla początkujących z przykładem

Spisie treści:

Anonim

Czy kiedykolwiek opracowałeś aplikację na Androida i opublikowałeś ją w Google Play? Co zrobisz, jeśli otrzymasz opinię użytkownika, taką jak -

Kiedy publikujesz aplikację w Google Play, musi być dobrze przetestowana, aby uniknąć potencjalnych błędów. Istnieje mnóstwo scenariuszy testowych, które należy wykonać przed opublikowaniem aplikacji. Aby zaoszczędzić wysiłek związany z testowaniem, potrzebujesz narzędzia testowego. Jednym z najlepszych narzędzi do testowania aplikacji na Androida jest Selendroid.

  • Co to jest Selendroid?
  • Dlaczego potrzebujemy Selendroid?
  • Architektura Selendroid
  • Pierwsze kroki z Selendroid
  • Konfigurowanie środowiska Selendroid
  • Jak uruchomić Selendroid
  • Podstawowe polecenie Selendroid
  • Rozpocznij swój pierwszy test z Selendroid

Co to jest Selendroid?

Selendroid to platforma do automatyzacji testów dla wielu typów aplikacji mobilnych: natywna i hybrydowa aplikacja na Androida oraz sieć mobilna .

Możesz napisać testy za pomocą interfejsów API klienta Selenium 2. Ponieważ Selendroid nadal ponownie wykorzystuje istniejącą infrastrukturę Selenium dla sieci

Selendroid to potężne narzędzie do testowania. Może być używany na emulatorach i prawdziwych urządzeniach

Dlaczego potrzebujemy Selendroid?

Selendroid to świetne narzędzie do testowania. Ale nadal możesz wątpić w jego użyteczność.

Ta sekcja przedstawi ważne funkcje 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) zainstalowanego na komputerze. Aby zainstalować plik binarny na urządzeniu, aplikacja testowa i aplikacja mobilna muszą być podpisane tym samym kluczem podpisu
  • Aplikacja testowa Selendroid może współdziałać z wieloma urządzeniami lub symulatorami jednocześnie. To wielka zaleta Selendroid. Możesz więc przetestować swoją aplikację na różnych urządzeniach z Androidem, aby sprawdzić zgodność.
  • Selendroid może symulować działania użytkownika w aplikacji, takie jak dotyk, przesuwanie, przeciąganie i upuszczanie na urządzeniach
  • Podczas testowania można zmieniać urządzenia sprzętowe (podłącz i odłącz) bez ponownego uruchamiania lub zatrzymywania testu. Selendroid automatycznie rozpoznaje nowe urządzenia
  • Odpowiadając wersji Android API, Selendroid obsługuje również nowy 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…

Architektura Selendroid

Selendroid jest oparty na strukturze instrumentacji Androida. Testy Selendroid są pisane w oparciu o interfejs API klienta sterownika Selenium Web, dzięki czemu zapewnia pełną integrację z obecnymi frameworkami Selenium.

Poniższy rysunek przedstawia architekturę Selendroid

Selendroid zawiera 4 główne składniki:

  • Klient sterownika sieci Web - biblioteka klienta Java oparta na Selenium. Ta biblioteka powinna być zainstalowana na komputerze (który jest używany do tworzenia przypadków testowych)
  • Selendroid-Server - serwer, który działa w testowanej aplikacji na urządzeniu z Androidem lub w symulatorze. To są główne elementy architektury Selendroid
  • Android Driver-App - wbudowany sterownik Android, aplikacja Web View do testowania mobilnej sieci.
  • Selendroid-Standalone - ten komponent służy do instalacji serwera Selendroid i testowanej aplikacji (AUT)

Pierwsze kroki z Selendroid

Wiesz już, jakie znaczenie ma Selendroid. Teraz zabrudzmy sobie ręce Selendroidem.

Przed pierwszym testem z Selendroidem należy wykonać 3 kroki

Konfigurowanie środowiska Selendroid

Selendroid może działać w systemie Windows, Linux i Mac OS. W tym samouczku skonfigurujemy Selendroid w systemie Windows.

Przed użyciem Selendroid musisz najpierw zainstalować następujący pakiet

  • Java SDK (minimum 1,6)

    Musisz zaakceptować umowę licencyjną i pobrać instalator java (wybierz podstawę x64 lub x86 w swoim systemie operacyjnym)

    Pobierz i zainstaluj Java SDK jako zwykłe oprogramowanie

  • Najnowsza wersja Android SDK
  • Twój komputer musi mieć co najmniej jedno urządzenie wirtualne z systemem Android (AVD) lub prawdziwe urządzenie z systemem Android podłączone do komputera.
  • Selendroid Standalone z zależnościami, Selendroid Client i Selenium Client
  • Oprogramowanie Eclipse
  • 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świetl okno Właściwości systemu, wybierz zakładkę Zaawansowane -> Zmienne środowiskowe

    Krok 3) Wyświetl okno Środowisko, kliknij Nowy -> Wprowadź zmienną ANDROID_HOME w następujący sposób

    Wartość zmiennej to ścieżka do zainstalowanego już android-sdks.

    Znajdź zmienną systemową Path -> Edit -> Dodaj następujący wiersz po bieżącym wierszu

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

    Wartością jest ścieżka do instalacji Java JDK

    Krok 4) Uruchom ponownie komputer -> Gotowe

Jak uruchomić Selendroid

Krok 1) Testowanie aplikacji

Możesz użyć istniejącej aplikacji testowej Selendroid, aby sprawdzić, jak działa Selendroid (link do testowanej przykładowej aplikacji)

Po zakończeniu pobierania skopiuj ten plik APK i powyższy plik jar Selendroid Standalone do folderu o nazwie „ Guru99”

Krok 2) Uruchom Selendroid

Otwórz terminal w systemie Windows i przejdź do folderu Guru99 utworzonego w kroku 1.

Uruchom następujące polecenie

Dane wyjściowe będą wyświetlane w następujący sposób

Po uruchomieniu tego polecenia uruchamia się samodzielny serwer HTTP Selendroid! Domyślny numer portu tego serwera to 4444. Wszystkie urządzenia sprzętowe, a także urządzenie wirtualne z systemem Android, zostaną automatycznie przeskanowane i rozpoznane. Selendroid zidentyfikuje docelową wersję Androida i rozmiar ekranu urządzenia.

Aby sprawdzić docelową wersję Androida, a także informacje o urządzeniu, możesz uruchomić następujący adres URL w przeglądarce:

http: // localhost: 4444 / wd / hub / status.

Podstawowe polecenie Selendroid

Ta sekcja przedstawia podstawowy wiersz poleceń Selendroid-Standalone. Możesz ich użyć do skonfigurowania środowiska testowego Selendroid

  1. Ustawianie portu Selendroid

    Domyślny port Selendroid to 4444. Ale możesz zmienić na inny port, dodając parametr do polecenia, aby uruchomić Selendroid

    Parametr: -port [numer portu]

    Na przykład:

    W powyższym poleceniu 5555 to nowy port.

Dlatego adres URL służący do sprawdzania wersji docelowej Androida zmienia się na: http: // localhost: 5555 / wd / hub / status

  1. Określ lokalizację testowanej aplikacji (plik binarny APK). Selendroid często wymagał bezwzględnej ścieżki do tego pliku

    Parametr: -app [ścieżka do pliku]

    Na przykład:

    W powyższym poleceniu Selendroid automatycznie odnajduje plik binarny w bazie „C: \ Guru99App.apk”, aby uzyskać informacje o testowanej aplikacji.

    Sprawdź adres URL http: // localhost: 4444 / wd / hub / status, zobaczysz tę informację

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

    Parametr: -selendroidServerPort [numer portu]

    Przykład

    Port jest teraz zmieniony na 9000

  3. Zmień limit czasu uruchamiania emulatorów. Jednostka to milisekundy.

    Parametr: -timeoutEmulatorStart

    Domyślnie Selendroid będzie czekał 300 000 milisekund do uruchomienia emulatora. Możesz zmienić na nowy limit czasu (200 000 ms) za pomocą polecenia

    Po tym czasie nasz wygasł, jeśli emulator nie może się uruchomić, 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 polecenia Selendroid na terminalu zobaczysz dziennik wydrukowany na ekranie. Możesz zmienić typ wyświetlanego dziennika, dodając następujący parametr

    Parametr: -logLevel [typ dziennika]

    Wartości poziomów dziennika to ERROR, WARNING, INFO, DEBUG i VERBOSE. Domyślnie: ERROR.

    Na przykład, ustaw Selendroid, aby drukował tylko dziennik OSTRZEŻENIA, możesz użyć tego polecenia

    Selendroid drukuje tylko dziennik OSTRZEŻENIA

Rozpocznij swój pierwszy test z Selendroid

Ta sekcja zawiera przewodnik krok po kroku dotyczący tworzenia pierwszego skryptu testowego przy użyciu Selendroid

Załóżmy, że mamy aplikację na Androida pod nazwą testową Guru99App. Aplikacja zawiera pole tekstowe i nazwę przycisku „Pokaż tekst”.

POBIERZ APK TUTAJ

Musimy wykonać następujący przypadek testowy przy użyciu Selendroid

Przypadki testowe

Stan: schorzenie

Oczekiwany wynik:

  1. Uruchom aplikację
  2. Wpisz tekst „ Guru99 Test ” w polu tekstowym
  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 zamieniony na tekst

który użytkownik wprowadza w polu tekstowym

Krok 1) Utwórz projekt Java w Eclipse

Krok 2) Dodaj plik jar selenu i Selendroid w środowiskach zaćmienia

Kliknij prawym przyciskiem myszy Projekt Guru99Test -> Ścieżka kompilacji -> Dodaj archiwa zewnętrzne

Przejdź do folderu, w którym przechowywane są pliki jar

Należy dodać 3 pliki jar

  • selendroid-client-0.10.0.jar: Biblioteka klienta java Selendroid
  • selendroid-standalone-0.11.0-with-dependencies: Biblioteka autonomicznego serwera Selendroid
  • selenium-java-2.40.0.jar: biblioteka Selenium Web Driver

Zaznacz wszystko -> Wybierz Otwórz, aby dodać plik jar do projektu

Krok 3) po dodaniu powyższej biblioteki biblioteki te zostaną dodane do bibliotek referencyjnych projektu testowego. Tester może użyć interfejsów 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 -> Nowy -> Pakiet

Wpisz com.guru.test w polu Nazwa w oknie dialogowym Nowy pakiet Java → Zakończ

Eclipse utworzy listy folderów i podfolderów, takich jak ten w strukturze kodu źródłowego

Krok 4) Zainstaluj TestNG dla Eclipse

W Eclipse, Help -> Install New Software, w oknie dialogowym Install, kliknij Add i wprowadź następujące dane

  • Imię: TestNG
  • Lokalizacja: http://selendroid.io/

Naciśnij OK -> Dalej, aby zainstalować TestNG

Krok 5) Skopiuj Guru99App.apk do folderu aplikacji testowej

Krok 6) Uzyskaj identyfikator testowanej aplikacji.

Załóżmy, że mamy plik APK o nazwie Guru99App.apk. Postępuj zgodnie z krokiem opisanym w poprzedniej sekcji, wykonaj polecenie na terminalu

Otwórz poniższy link w przeglądarce

http: // localhost: 4444 / wd / hub / status.

Zostaną wyświetlone informacje o urządzeniu, skopiuj wartość appId „com.guru99app: 1.0”

Krok 7) Otwórz plik Guru99Test.java (w przykładowym kodzie) i zmień 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 identyfikator aplikacji nie jest zgodny z urządzeniem z systemem Android, sesja testowa wyświetli błąd i nie rozpocznie się.

Po zainicjowaniu znalezionego urządzenia Selendroid tworzy dostosowany serwer selendroid i instaluje na nim serwer Selendroid

Selendroid instaluje również testowaną aplikację i uruchamia serwer selendroid na urządzeniu

Po pomyślnym zainicjowaniu sesji testowej polecenie test jest uruchamiane na urządzeniu. (Na przykład wprowadzanie tekstu, naciśnij przycisk

…). Jeśli test dołączy sesję testową, emulator zatrzyma się automatycznie

Krok 8) Rozpocznij nową sesję testową

Uruchom serwer Selendroid za pomocą następującego polecenia na terminalu, takiego jak krok 6

Po uruchomieniu serwera Selendroid otwórz przykładowy projekt testowy Guru99test na Eclipse, ustaw punkt przerwania w linii 77 w pliku Guru99Test.java, klikając dwukrotnie wiersz 77 -> Pojawi się kropka jak poniżej

Rozpocznij sesję testową, klikając prawym przyciskiem myszy na projekt Guru99Test -> Debuguj jako -> Testng Test.

Sesja testowa rozpocznie się jak poniżej

Krok 9) Uzyskaj identyfikator elementu GUI testowanej aplikacji

Po pomyślnym uruchomieniu sesji testowej otwórz przeglądarkę i przejdź do adresu URL http: // localhost: 4444 / inspector

Zobaczysz, że testowana aplikacja jest uruchomiona jak poniżej

Użyj wskaźnika myszy na każdym elemencie interfejsu użytkownika AUT (przycisk, pole tekstowe, etykieta tekstowa), identyfikator każdego elementu zostanie podświetlony w prawym okienku

Po tym kroku możesz uzyskać identyfikator każdego z powyższych elementów interfejsu użytkownika

  • Przycisk Pokaż identyfikator tekstu: „ btnShow
  • Identyfikator pola tekstowego: „ edtText
  • 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 warunek dla sesji testowej.W przypadku błędu Selendroid wyrzuci wyjątek, a aplikacja testowa zostanie zatrzymana.

Kod zawiera komentarze wyjaśniające każdą instrukcję.

pakiet 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 przy użyciu Selendroid* Testowana aplikacja: Guru99App** /publicznyclass Guru99Test {// Zadeklaruj zmienną sterownika sieciowegoprywatny sterownik WebDriver;/ *** Skonfiguruj środowisko przed testowaniem* Wyjątek @throws* /@BeforeSuitepublicznyvoid setUp () rzuca wyjątek {// Uruchom autonomiczny selendroid podczas testuSelendroidConfiguration config = new SelendroidConfiguration ();// Dodaj aplikację selendroid-test-app do samodzielnego serweraconfig.addSupportedApp („Guru99App.apk”);// uruchom serwer autonomicznySelendroidLauncher selendroidServer = nowy SelendroidLauncher (config);selendroidServer.launchSelendroid ();// Utwórz możliwości selendroidSelendroidCapabilities capa = nowy SelendroidCapabilities ();// Określ, aby użyć aplikacji testowej Selendroidcapa.setAut ("com.guru99app: 1.0");// Określ, aby używać interfejsu API urządzenia z systemem Android 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Nie żądaj symulatora, użyj prawdziwego urządzeniacapa.setEmulator (false);//capa.wait(10000000);// Utwórz instancję sterownika Selendroiddriver = nowy SelendroidDriver (capa);}

Wykonaj test

Poniżej znajduje się kod do wykonania testu. Kod zawiera komentarze

Oto ponownie kroki testowe

  1. Wpisz tekst „Hello Guru”
  2. Kliknij opcję Pokaż przycisk tekstowy
  3. Poczekaj chwile
  4. Sprawdź, czy aplikacja wyświetla tekst wprowadzany przez użytkownika w polu tekstowym (np. Wyświetla tekst „Witaj Guru”)
 / *** Rozpocznij wykonanie przypadku testowego* 01. Wpisz tekst „Selendroid” w pole tekstowe* 02. Naciśnij przycisk OK* Wyjątek @throws* /@Testpublicznyvoid selendroidTest () rzuca wyjątek {// Wydrukuj dziennikSystem.out.print ("Rozpocznij wykonywanie testu");// Znajdź pole tekstu wejściowego na ekranie// Identyfikator tego pola tekstowego został pobrany z kroku 9WebElement inputField = driver.findElement (By.id ("edtText"));// Sprawdź, czy pole tekstowe jest włączone, aby użytkownik mógł wprowadzić tekstAssert.assertEquals ("true", inputField.getAttribute ("włączone"));// Wpisz tekst do pola tekstowegoinputField.sendKeys ("Witaj Guru");// kliknij przycisk Pokaż tekst// Identyfikator tego przycisku został pobrany z kroku 9Przycisk WebElement = driver.findElement (By.id ("btnShow"));button.click ();// Czas opóźnienia, aby zadziałaćThread.sleep (5000);// Znajdź na ekranie etykietę „Tekst pokaż tutaj”// Identyfikator tej etykiety został pobrany z kroku 9WebElement txtView = driver.findElement (By.id ("txtView"));// Wyświetl tekst na ekranieOczekiwany ciąg znaków = txtView.getText ();// Sprawdź, czy tekst wprowadzany przez użytkownika w polu tekstowym jest taki sam, jak tekst wyświetlany na ekranieAssert.assertEquals (oczekiwano, inputField.getText ());}

Zakończ test

Poniższy kod zakończy test, zatrzymując sterownik Selendroid.

 / *** Zatrzymaj sterownik Selendroid** /@AfterSuitepublicznyvoid tearDown () {driver.quit ();}

Możesz zobaczyć szczegóły w przykładowym kodzie zawartym w tym artykule.

Krok 10) Podłącz urządzenie z Androidem do komputera za pomocą kabla USB. Punkty, na które należy zwrócić uwagę -

  • Upewnij się, że urządzenie nie ma skonfigurowanej blokady ekranu.
  • Urządzenia muszą być podłączone przez USB do komputera, na którym działa samodzielny komponent selendroid.
  • Urządzenie powinno zainstalować przynajmniej Android Target Version API 10

Krok 11) Uruchom aplikację testową: kliknij prawym przyciskiem myszy Guru99test -> Uruchom jako -> TestNG test

Krok 10) Rozpocznie się wykonywanie skryptu 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, zakończyłeś teraz test.

Podsumowanie

Podsumowanie

  • Selendroid to bardzo potężne narzędzie do testowania aplikacji natywnej na Androida, aplikacji hybrydowej, a także aplikacji internetowej.
  • Może być używany na prawdziwych urządzeniach, a także w symulatorze.
  • Umożliwia także równoległe uruchamianie testów, uruchamiając je na wielu urządzeniach.
  • Cały pakiet Selendroid składa się z czterech elementów:
    • Klient sterownika sieciowego,
    • Serwer Selendroid,
    • Aplikacja dla kierowców na Androida
    • Samodzielny Selendroid
  • Aby korzystać z Selendroid, musisz mieć zainstalowany Java JDK, Android SDK i Eclipse.