Check out what’s new from Firebase at Google I/O 2022. Learn more

Przetestuj za pomocą interfejsu wiersza polecenia gcloud

W tym przewodniku opisano, 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 zobaczyć opcje dla każdego wymiaru (np. obsługiwane wersje Xcode dla wersji iOS urządzenia), locales dimension models , versions lub ustawienia regionalne 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ć, dołącz 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 uprawnień specjalnych, więc 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 potrwa do 200 sekund.
  • --timeout=1h wymusza zakończenie testu po upływie 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, czy przebieg testu zakończył się pomyślnie:

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 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 wykonania testu nie przeszedł pomyślnie.
15 Laboratorium Firebase Test Lab nie mogło określić, czy macierz testów zakończyła się pomyślnie, 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 testu Firebase Test Lab , aby dowiedzieć się więcej o tym, jak interpretować wyniki 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 .