Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Przetestuj za pomocą interfejsu wiersza polecenia gcloud

Ten przewodnik opisuje, jak uruchomić test XCTest lub Game Loop za pomocą interfejsu wiersza polecenia gcloud.

Krok 1 : skonfiguruj lokalne środowisko Google Cloud SDK

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

  3. Upewnij się, że Twoja instalacja jest aktualna i zawiera polecenie gcloud firebase :
          gcloud components update
  4. Zaloguj się do gcloud CLI, używając swojego konta Google:
          gcloud auth login
  5. Ustaw projekt Firebase w gcloud, gdzie PROJECT_ID to identyfikator projektu Firebase:
         gcloud config set project PROJECT_ID

Krok 2 : Uruchom test

Uruchom XCTest

  1. Prześlij plik .zip swojego testu, uruchamiając następujące polecenie (jeśli nie spakowałeś jeszcze swojej aplikacji, zobacz Pakowanie XCTest ):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. Wybierz wymiary testowe.

    Test Lab umożliwia przeprowadzanie testów na różnych wersjach i urządzeniach iOS, orientacji ekranu i ustawieniach regionalnych. Te konfiguracje są nazywane wymiarami testowymi testu . Aby wyświetlić opcje dla każdego wymiaru (np. obsługiwane wersje Xcode dla wersji iOS urządzenia), locales dimension models , versions lub ustawienia locales w następującym poleceniu:

    gcloud firebase test ios dimension list

    Orientacja ekranu jest nieco prostsza, ponieważ jej jedyne opcje to portrait i landscape .

    Przejrzyj listę wymiarów testowych i wybierz kilka kombinacji, dla których chcesz przeprowadzić test. Odwiedź Plany cenowe, aby zobaczyć maksymalną liczbę kombinacji, które możesz uruchomić dziennie.

  3. Po wybraniu zestawu wymiarów testowych możesz zlecić laboratorium testowemu przeprowadzenie testów za pomocą polecenia firebase test ios run . Dla każdej kombinacji wymiarów testowych, które chcesz przetestować, --device osobną flagę --device :

    gcloud firebase test ios run --test PATH/TO/MyTests.zip \
     --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
     --device model=MODEL_ID_2,version=VERSION_ID_2,locale=LOCALE_2,orientation=ORIENTATION_2 \
     etc...

    Możliwe, że Twój test zakończy się niepowodzeniem z powodu niezgodności między wersją Xcode, z którą skompilowano test, a domyślną wersją Xcode używaną przez Test Lab. Aby określić obsługiwaną wersję Xcode dla testu, użyj flagi --xcode-version :

    gcloud firebase test ios run --test PATH/TO/MyTests.zip \
     --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
     --xcode-version=11.3

Testuj uprawnienia specjalne

Aby przetestować uprawnienia, które wymagają jawnego identyfikatora aplikacji, możesz to zrobić, ustawiając flagę --test-special-entitlements . Test Lab ponownie podpisuje aplikację przy użyciu nowego identyfikatora pakietu w celu obsługi specjalnych uprawnień, dlatego upewnij się, że w pliku ZIP nie ma zasobów zawierających bezpośrednie odniesienia do identyfikatora pakietu aplikacji.

Powiadomienia push

W celu autoryzacji żądań powiadomień wypychanych użytkownicy mogą tworzyć tokeny internetowe JSON przy użyciu prywatnego klucza podpisywania wraz z identyfikatorem klucza - C7FD9DJAA8 i identyfikatorem zespołu - 9CKCGNNUQN . Wygenerowane tokeny byłyby ważne przez godzinę i musiałyby być odświeżane co 60 minut. Przeczytaj więcej na temat ustanawiania połączenia z APN opartego na tokenach.

Uruchom test pętli gry

Uruchom polecenie gcloud beta firebase test ios run i użyj następujących flag, aby skonfigurować uruchomienie:

Flagi do testów pętli gry
--type

Wymagane : określa typ testu systemu iOS, który chcesz uruchomić. Możesz wprowadzić typy testów xctest (domyślne) lub game-loop .

--app

Wymagane : ścieżka bezwzględna (GCS lub system plików) do pliku IPA aplikacji. Ta flaga jest ważna tylko podczas uruchamiania testów Game Loop.

--scenario-numbers

Pętle (inaczej scenariusze), które chcesz uruchomić w swojej aplikacji. Możesz wprowadzić jedną pętlę, listę lub pętle albo zakres pętli. Domyślna pętla to 1.

Na przykład --scenario-numbers=1-3,5 uruchamia pętle 1, 2, 3 i 5.

--device-model

Fizyczne urządzenie, na którym chcesz przeprowadzić test (dowiedz się, z jakich dostępnych urządzeń możesz korzystać).

--timeout

Maksymalny czas trwania testu. Możesz wprowadzić liczbę całkowitą, aby reprezentować czas trwania w sekundach, lub liczbę całkowitą i wyliczenie, aby reprezentować czas trwania jako dłuższą jednostkę czasu.

Na przykład:

  • --timeout=200 wymusza zakończenie testu, gdy --timeout=200 do 200 sekund.
  • --timeout=1h wymusza zakończenie testu po --timeout=1h godziny.

Na przykład następujące polecenie uruchamia test Game Loop, który wykonuje pętle 1, 4, 6, 7 i 8 na telefonie iPhone 8 Plus:

gcloud beta firebase test ios run
 --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8
 --device-model=iphone8plus

Więcej informacji na temat interfejsu wiersza polecenia gcloud znajdziesz w dokumentacji referencyjnej .

Krok 4 (Opcjonalnie) : Zautomatyzuj przyszłe testy, które tworzysz

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. Ten przykładowy skrypt bash uruchamia XCTest z dwuminutowym limitem czasu i informuje o pomyślnym zakończeniu testu:

if gcloud firebase test ios run --test MyTest.zip --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.

Kod wyjścia Uwagi
0 Wszystkie wykonania testów zaliczone.
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.
19 Macierz testowa została anulowana przez użytkownika.
20 Wystąpił błąd infrastruktury testowej.

Krok 5 : Sprawdź wyniki testu

Po rozpoczęciu testu otrzymasz łącze do strony z wynikami testu . Testy mogą potrwać kilka minut, w zależności od liczby wybranych konfiguracji i ustawionego limitu czasu testu. Po uruchomieniu testów możesz przejrzeć wyniki testów. Zobacz Analizowanie wyników laboratorium Firebase Test, aby dowiedzieć się więcej o interpretowaniu wyników testów.

Następny krok

Przeczytaj dokumentację pakietu Google Cloud SDK, aby poznać opcje testowania, które są ogólnie dostępne lub w wersji beta .