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
- Pobierz pakiet Google Cloud SDK.
- Upewnij się, że Twoja instalacja jest aktualna i zawiera polecenie
gcloud firebase
:gcloud components update
- Zaloguj się do gcloud CLI, używając swojego konta Google:
gcloud auth login
- Ustaw projekt Firebase w gcloud, gdzie PROJECT_ID to identyfikator projektu Firebase:
gcloud config set project PROJECT_ID
Obejmuje to narzędzie gcloud CLI.
Krok 2 : Uruchom test
Uruchom XCTest
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
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
ilandscape
.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.
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 |
--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 |
--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:
|
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 .