Rozpocznij testowanie za pomocą interfejsu wiersza polecenia gcloud

Ten przewodnik opisuje jak uruchomić oprzyrządowania, test Robo lub Loop Gra za pomocą CLI gcloud .

Pełną listę gcloud poleceń można używać z aplikacji na Androida w Test Lab, odwiedź dokumentację odniesienia dla gcloud firebase test android .

Zanim zaczniesz

Jeśli tego nie zrobiłeś, dodaj Firebase do projektu Android .

Krok 1. Skonfiguruj interfejs wiersza polecenia gcloud

  1. Pobierz Chmura SDK Google.
  2. Obejmuje to narzędzie Gcloud CLI.

  3. Upewnij się, że instalacja jest up-to-date:
    gcloud components update
    
  4. Zaloguj się, by CLI gcloud za pomocą konta Google:
    gcloud auth login
    
  5. Ustaw swój projekt Firebase w gcloud, gdzie PROJECT_ID jest identyfikator swojej Firebase projektu:
    gcloud config set project PROJECT_ID
    

Krok 2. Sprawdź dostępne urządzenia testowe

Użyj poniższych poleceń gcloud, aby wyświetlić urządzenia testowe i języki, które są dostępne dla Twojego testu.

Opcjonalnie można również pobrać próbki aplikację Notatnik zacząć biegać komendy od razu. Użyj plik binarny app-debug-unaligned.apk plik testy i oprzyrządowanie app-debug-test-unaligned.apk , które znajdują się w NotePad/app/build/outputs/apk/ .

  • models list : Pobierz aktualną listę urządzeń z systemem Android dostępny do testu przeciw.

    gcloud firebase test android models list
    

    W wyniku polecenia:

    • Kolumna MODEL_ID zawiera identyfikator można później wykorzystać do prowadzenia badań na modelu urządzenia.
    • Kolumna OS_VERSION_ID zawiera wersje systemów operacyjnych obsługiwanych przez urządzenie.

    Przykładowe wyjście

    gcloud firebase test android models list output

  • models describe : Zdobądź więcej informacji o konkretnym Android MODEL_ID .

    gcloud firebase test android models describe MODEL_ID
    

    Dane wyjściowe zawierają markę modelu urządzenia, producenta, wersje systemu operacyjnego, obsługiwane poziomy interfejsu API, daty wydania oraz czy urządzenie jest fizyczne czy wirtualne.

  • versions list : Pobierz listę aktualnie dostępnych wersji systemu operacyjnego do testu przeciw.

    gcloud firebase test android versions list
    

    Można użyć identyfikatora z jednego z dwóch pierwszych kolumnach wyjście poleceń ( OS_VERSION_ID i VERSION ), aby później prowadzonych testów przeciwko wersji Android OS. Jeśli użytkownik nie określi wersje Android OS do testu z domyślnym zauważyć pod TAGS kolumna jest używana.

    Przykładowe wyjście

    gcloud android versions list

  • locales list : Pobierz aktualną listę dostępnych lokalizacjach testu przeciw.

    gcloud firebase test android versions list
    

    Pierwsza kolumna wyjścia polecenia LOCALE , zawiera identyfikator, który można wykorzystać później uruchomić testy przeciwko lokalizacji. Jeśli nie określisz ustawień regionalnych do testowania, angielski jest używany jako domyślne ustawienia regionalne.

Przeprowadzanie testów

Teraz, gdy wiesz zakres modeli urządzeń, ustawienia narodowe i wersji systemu operacyjnego dostępnych do testowania aplikacji, można określić urządzenia z wykorzystaniem gcloud firebase test android run komendę i --device flagę, aby uruchomić testy Robo lub oprzyrządowania.

Uruchamianie testu Robo

Nawet jeśli nie masz żadnych testów oprzyrządowania, nadal możesz szukać błędów w swojej aplikacji. Użyj testu Robo, aby wykonać automatyczne sprawdzenie interfejsu użytkownika aplikacji. Test Robo sprawdza aplikację, wykonując statyczną analizę różnych ścieżek za pośrednictwem interfejsu użytkownika aplikacji, a następnie indeksując aplikację, aby znaleźć awarie i inne potencjalne problemy.

Zacznijmy od uruchomienia przykładowego polecenia:

gcloud firebase test android run \
  --type robo \
  --app app-debug-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape \
  --timeout 90s

--type robo parametr jest niejawna, jeżeli nie --type wartość jest określona. Można zobaczyć pełny zestaw opcji wiersza poleceń do uruchamiania testów przez wpisywanie: gcloud help firebase test android run . Jako alternatywę do określania wszystkich tych argumentów w wierszu poleceń, możesz opcjonalnie określić swoje argumenty w pliku argumentów w formacie YAML. Run gcloud topic arg-files , aby dowiedzieć się, jak korzystać z tej funkcji.

Zobacz wyniki testu Analizować sekcję, aby dowiedzieć się, jak badać wyniki testu z testu Robo.

Przeprowadzanie testów oprzyrządowania

Teraz użyj gcloud narzędzie wiersza polecenia do uruchomienia aplikacji notatnika za Ekspresy badań czynności określonych konfiguracji urządzenia z systemem Android przy użyciu instrumentation typu testu, aby uruchomić testy w app-debug-test-unaligned.apk następująco:

gcloud firebase test android run \
  --type instrumentation \
  --app app-debug-unaligned.apk \
  --test app-debug-test-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape

--type instrumentation parametr jest niejawna, jeżeli APK Test został określony z --test . Jako alternatywę do określania wszystkich tych argumentów w wierszu poleceń, możesz opcjonalnie określić swoje argumenty w pliku argumentów w formacie YAML. Run gcloud topic arg-files , aby dowiedzieć się, jak korzystać z tej funkcji.

Gcloud CLI obsługuje Android test Orchestrator . Program Orchestrator wymaga AndroidJUnitRunner w wersji 1.0 lub nowszej. Aby go włączyć, stosowanie gcloud firebase test android run z
--use-orchestrator flag. Aby wyłączyć go użyć --no-use-orchestrator flagę.

Uwaga: Można również kontrolować, jak test Lab prowadzi swoje badania oprzyrządowania użycia dodatkowych flag, które nie są pokazane powyżej. Na przykład, można użyć --test-targets flagę przetestować jedną klasę lub metody klasy używane przez badanego APK. Możesz również dowiedzieć się, czy test, który się nie powiódł, był faktycznie niestabilny, czy nie, używając flagi „--num-flaky-test-attempts”, która określa liczbę ponownych prób wykonania testu, jeśli jeden lub więcej jego przypadki testowe zawodzą z jakiegokolwiek powodu. Aby dowiedzieć się więcej, zobacz gcloud testową Firebase android bieg .

Raporty pokrycia kodu dla testów oprzyrządowania

Test Lab wspiera pokrycie kodu raportu narzędzia EMMA i JaCoCo . Jeśli masz albo narzędzie zintegrowane z budowania aplikacji, można uzyskać raport pokrycia kodu do badań laboratorium testowego uruchamiając gcloud firebase test android run polecenia z następującymi argumentami:

gcloud firebase test android run \
  --type instrumentation \
  --app your-app.apk \
  --test your-app-test.apk \
  --device model=TestDevice,version=AndroidVersion  \
  --environment-variables coverage=true,coverageFile="/sdcard/coverage.ec" \
  --directories-to-pull /sdcard

Gdy Test Lab zakończy przeprowadzanie testów, znajdź swoje raporty dotyczące pokrycia kodu w Google Cloud Storage:

  1. Otwórz link konsoli Firebase że gcloud narzędzie wydrukowany powyżej tabeli wyników testu w terminalu.
  2. Kliknij wykonanie testu z listy znajdującej się pod tym linkiem, aby otworzyć stronę szczegółów tego wykonania.
  3. Wyniki testu kliknij aby przejść do Cloud Storage z wynikami badań, że wykonanie tych.
  4. Otwarte artifacts/coverage.ec zobaczyć raport pokrycia kodu.

Przeanalizuj wyniki swoich testów

Po kilku minutach narzędzie gcloud drukuje podstawowe podsumowanie wyników testu:

Command test results

Dane wyjściowe testu z wiersza poleceń zawierają również łącze do przeglądania wyników testu. Aby dowiedzieć się więcej o tym, jak interpretować te wyniki, zobacz Analizowanie Firebase laboratorium testowego dla Androida wyników .

Niestandardowe logowanie i wprowadzanie tekstu za pomocą testu Robo

Test Robo automatycznie uzupełnia logowania ekranów, które korzystają z konta Google do uwierzytelniania, chyba użyć --no-auto-google-login parametr. Może również wypełniać niestandardowe ekrany logowania przy użyciu podanych przez Ciebie danych logowania do konta testowego. Możesz również użyć tego parametru, aby podać niestandardowy tekst wejściowy dla innych pól tekstowych używanych przez Twoją aplikację.

Aby wypełnić pola tekstowe w aplikacji, należy użyć --robo-directives parametr i dostarczyć listę oddzielonych przecinkami key-value parach, gdzie key jest Android nazwa zasobu elementu docelowego UI, a value jest ciągiem tekstowym . Możesz również użyć tej flagi, aby powiedzieć Robo, aby ignorował określone elementy interfejsu użytkownika (np. przycisk „wyloguj”). EditText pola są obsługiwane, ale nie pola tekstowe w WebView elementów UI.

Na przykład możesz użyć następującego parametru do niestandardowego logowania:

--robo-directives username_resource=username,password_resource=password

Dostępne komendy i flagi

Interfejs wiersza polecenia gcloud w laboratorium testowym zawiera kilka poleceń i flag, które umożliwiają uruchamianie testów o różnych specyfikacjach:

  • Android test Orchestrator flag : Flaga włączyć Orchestrator narzędzie, które pozwala na uruchomienie każdego z testów swojej aplikacji we własnym wezwaniem Instrumentation . Laboratorium testowe zawsze uruchamia najnowszą wersję programu Orchestrator.

  • Loop gra flagi testów : Zestaw flag konfiguracyjnych, które umożliwiają i kontrolują „DEMO MODE”, aby symulować działania gracza w grze aplikacji. Dowiedz się więcej o prowadzeniu testów Loop Gra z Test Lab .

  • Uniform flag Sharding (w wersji beta) : Flaga, która określa liczbę odłamków, w którym chcesz, aby równomiernie rozprowadzić przypadków testowych. Fragmenty są uruchamiane równolegle na osobnych urządzeniach.

  • Instrukcja flag Sharding (w wersji beta) : Flaga określająca grupy pakietów, klas i / lub przypadków testowych do uruchomienia w skorupie (grupa przypadków testowych). Fragmenty są uruchamiane równolegle na osobnych urządzeniach.

  • Sieć profile ruchu flag (w wersji beta) : Flaga, która określa sieć profil twoje testy korzystania z urządzeń fizycznych. Profile sieciowe emulują różne warunki sieciowe, umożliwiając testowanie wydajności aplikacji w niepewnych lub nieprzewidywalnych sieciach.

Skryptowanie poleceń gcloud za pomocą Test Lab

Za pomocą skryptów powłoki lub plików wsadowych możesz zautomatyzować polecenia testowania aplikacji mobilnych, które w innym przypadku byłyby uruchamiane za pomocą wiersza poleceń gcloud. Poniższy przykładowy skrypt bash uruchamia test instrumentacji z dwuminutowym limitem czasu i zgłasza, czy przebieg testu zakończył się pomyślnie:

if gcloud firebase test android run --app my-app.apk --test my-test.apk --timeout 2m
then
    echo "Test matrix successfully finished"
else
    echo "Test matrix exited abnormally with non-zero exit code: " $?
fi

Kody wyjścia skryptu

Laboratorium testowe udostępnia kilka kodów wyjścia, których można użyć, aby lepiej zrozumieć wyniki testów uruchamianych za pomocą skryptów lub plików wsadowych.

Skryptowanie kodów wyjścia dla laboratorium testowego

Kod wyjścia Uwagi
0 Wszystkie wykonania testów zakończyły się pomyślnie.
1 Wystąpiła ogólna awaria. Możliwe przyczyny to: nieistniejąca nazwa pliku lub błąd HTTP/sieci.
2 Testowanie zostało zakończone, ponieważ podano nieznane polecenia lub argumenty.
10 Co najmniej jeden przypadek testowy (testowane klasy lub metody klas) w ramach wykonywania testu nie przeszedł pomyślnie.
15 Laboratorium Firebase Test Lab nie mogło określić, czy macierz testów zakończyła się powodzeniem, czy nie, z powodu nieoczekiwanego błędu.
18 Środowisko testowe dla tego wykonania testu nie jest obsługiwane z powodu niezgodnych wymiarów testowych. Ten błąd może wystąpić, jeśli wybrany poziom interfejsu API systemu Android nie jest obsługiwany przez wybrany typ urządzenia.
19 Macierz testowa została anulowana przez użytkownika.
20 Wystąpił błąd infrastruktury testowej.