W tym przewodniku opisano, jak uruchomić test XCTest lub Game Loop przy użyciu interfejsu wiersza polecenia gcloud.
Krok 1 : Skonfiguruj lokalne środowisko Google Cloud SDK
- Pobierz pakiet SDK Google Cloud
- Upewnij się, że Twoja instalacja jest aktualna i zawiera polecenie
gcloud firebase
:gcloud components update
- Zaloguj się do interfejsu CLI gcloud, używając swojego konta Google:
gcloud auth login
- Ustaw swój projekt Firebase w gcloud, gdzie PROJECT_ID to identyfikator twojego 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 jeszcze nie spakowałeś 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.
Laboratorium testowe umożliwia przeprowadzanie testów na różnych wersjach systemu iOS, urządzeniach, orientacjach ekranu i lokalizacjach. Konfiguracje te nazywane są wymiarami testowymi testu. Aby zobaczyć opcje dla każdego wymiaru (np. obsługiwane wersje Xcode dla wersji iOS urządzenia), zamień
models
,versions
lublocales
dladimension
w następującym poleceniu:gcloud firebase test ios dimension list
Orientacja ekranu jest nieco prostsza, ponieważ dostępne są tylko opcje
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 wykonanie testów za pomocą polecenia
firebase test ios run
. Dla każdej kombinacji wymiarów testowych, na których chcesz testować, dołącz oddzielną 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órej korzystano podczas tworzenia testu, a domyślną wersją Xcode używaną przez Laboratorium Testowe. Aby określić obsługiwaną wersję Xcode dla swojego 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
Aby pomóc Ci zidentyfikować i zlokalizować macierze testowe w konsoli Firebase, możesz opcjonalnie oznaczyć macierz testową etykietą za pomocą flagi
--client-details matrixLabel="<label>"
w następującym przykładzie:gcloud beta firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --client-details matrixLabel="my label"
Testuj uprawnienia specjalne
Aby przetestować uprawnienia wymagające jawnego identyfikatora aplikacji, możesz to zrobić, ustawiając flagę --test-special-entitlements
. Laboratorium testowe ponownie podpisuje aplikację nowym identyfikatorem pakietu, aby obsługiwać specjalne uprawnienia, dlatego upewnij się, że w pliku ZIP nie znajdują się żadne zasoby zawierające bezpośrednie odniesienia do identyfikatora pakietu aplikacji. Powiadomienia push
Aby autoryzować żądania powiadomień wypychanych, użytkownicy mogą tworzyć tokeny sieciowe JSON przy użyciu prywatnego klucza podpisującego wraz z identyfikatorem klucza — C7FD9DJAA8 i identyfikatorem zespołu — 9CKCGNNUQN . Wygenerowane tokeny będą ważne przez godzinę i należy je odświeżać co 60 minut. Przeczytaj więcej na temat ustanawiania połączenia opartego na tokenach z APN.
Grupy aplikacjiIdentyfikatory grup aplikacji są powszechnie unikalne. Oznacza to, że gdy ponownie podpiszemy aplikacje użytkownika, możemy użyć tylko identyfikatora grupy aplikacji powiązanego z kontem programisty Test Lab. Jeśli Twój test opiera się na grupach aplikacji, test zakończy się niepowodzeniem.
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 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żna wprowadzić jedną pętlę, listę lub pętle lub zakres pętli. Domyślna pętla to 1. Na przykład |
--device-model | Urządzenie fizyczne, na którym chcesz uruchomić test (dowiedz się, z jakich dostępnych urządzeń możesz skorzystać). |
--timeout | Maksymalny czas trwania testu. Można wprowadzić liczbę całkowitą, aby przedstawić czas trwania w sekundach, lub liczbę całkowitą i wyliczenie, aby przedstawić czas trwania jako dłuższą jednostkę czasu. Na przykład:
|
Na przykład następujące polecenie uruchamia test pętli gry, 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 3 (opcjonalnie) : Zautomatyzuj przyszłe tworzone testy
Skryptowanie poleceń gcloud w laboratorium testowym
Możesz używać skryptów powłoki lub plików wsadowych, aby zautomatyzować polecenia testowania aplikacji mobilnych, które w przeciwnym razie uruchamiałbyś za pomocą wiersza poleceń gcloud. Ten przykładowy skrypt bash uruchamia XCTest z dwuminutowym limitem czasu i raportuje, 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 zakończenia, których można użyć w celu lepszego zrozumienia wyników testów uruchamianych przy użyciu skryptów lub plików wsadowych.
Kod wyjścia | Notatki |
---|---|
0 | Wszystkie wykonania testowe zaliczone. |
1 | Wystąpiła ogólna awaria. Możliwe przyczyny to: nazwa pliku, która nie istnieje lub błąd HTTP/sieci. |
2 | Testowanie zostało zakończone, ponieważ podano nieznane polecenia lub argumenty. |
10 | Jeden lub więcej przypadków testowych (testowanych klas lub metod klas) w ramach wykonania testu nie przeszło pomyślnie. |
15 | Laboratorium testowe Firebase nie mogło określić, czy macierz testowa przeszła pomyślnie, czy nie, z powodu nieoczekiwanego błędu. |
19 | Matryca testowa została anulowana przez użytkownika. |
20 | Wystąpił błąd infrastruktury testowej. |
Krok 4 : Sprawdź wyniki testu
Po rozpoczęciu testu otrzymasz łącze do strony Wyniki testu . Uruchomienie testów może zająć kilka minut, w zależności od liczby wybranych różnych konfiguracji i limitu czasu trwania testu ustawionego dla testów. Po przeprowadzeniu testów możesz przejrzeć ich wyniki. Zobacz Analizowanie wyników laboratorium testowego Firebase, 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 .