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=15
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
apns-environment
- Osobista sieć VPN
com.apple.developer.networking.vpn.api
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 .