Z tego przewodnika dowiesz się, jak uruchomić test XCTest lub Game Loop za pomocą interfejsu wiersza poleceń gcloud.
Krok 1. Skonfiguruj lokalne środowisko Google Cloud SDK
- Pobierz pakiet Google Cloud SDK.
- Upewnij się, że instalacja jest aktualna i zawiera polecenie
gcloud firebase
:gcloud components update
- Zaloguj się w gcloud CLI za pomocą konta Google:
gcloud auth login
- Skonfiguruj 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. Przeprowadź test
Uruchom XCTest
Prześlij plik ZIP z testem, uruchamiając to polecenie (jeśli nie masz jeszcze skompilowanej aplikacji, zapoznaj się z artykułem Kompilowanie testu 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 iOS, urządzeniach, orientacjach ekranu i językach. Te konfiguracje nazywamy wymiarami testowymi. Aby wyświetlić opcje dla danej wymiaru (np. obsługiwane wersje Xcode dla wersji iOS urządzenia), w tym poleceniu zastąp
dimension
wartościamimodels
,versions
lublocales
:gcloud firebase test ios dimension list
Orientacja ekranu jest nieco prostsza, ponieważ jej jedynymi opcjami są
portrait
ilandscape
.Przejrzyj listę wymiarów testu i wybierz kilka kombinacji, które chcesz przetestować. Aby poznać maksymalną liczbę kombinacji, które możesz uruchamiać dziennie, otwórz Plany cenowe.
Po wybraniu zestawu wymiarów testu możesz uruchomić Test Lab testy za pomocą polecenia
firebase test ios run
. W przypadku każdej kombinacji wymiarów testu, którą chcesz przetestować, dodaj 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...
Test może się nie udać z powodu niezgodności wersji Xcode, w której został utworzony, z domyślną wersją Xcode używaną przez Test Lab. Aby określić obsługiwaną wersję Xcode do testowania, 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 ułatwić sobie identyfikację i lokalizowanie testowych macierzy w konsoli Firebase, możesz opcjonalnie oznaczyć je za pomocą flagi
--client-details matrixLabel="<label>"
, jak w tym 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"
Testowanie uprawnień specjalnych
Aby przetestować uprawnienia, które wymagają jawnego identyfikatora aplikacji, ustaw flagę --test-special-entitlements
. Test Labponownie podpisuje aplikację za pomocą nowego identyfikatora pakietu, aby obsługiwać specjalne uprawnienia. Dlatego sprawdź, czy w pliku ZIP nie ma zasobów zawierających bezpośrednie odwołania do identyfikatora pakietu aplikacji.
- Powiadomienia push
apns-environment
- Osobisty VPN
com.apple.developer.networking.vpn.api
Aby autoryzować żądania powiadomień push, użytkownicy mogą tworzyć tokeny internetowe JSON za pomocą prywatnego klucza podpisywania oraz identyfikatora klucza C7FD9DJAA8 i identyfikatora zespołu 9CKCGNNUQN. Wygenerowane tokeny będą ważne przez 1 godzinę i trzeba je odświeżać co 60 minut. Dowiedz się więcej o: Nawiązywaniu połączenia z APN na podstawie tokena.
Grupy aplikacjiIdentyfikatory grup aplikacji są unikalne globalnie. Oznacza to, że podczas ponownego podpisywania aplikacji użytkownika możemy używać tylko identyfikatora grupy aplikacji powiązanego z kontem dewelopera Test Lab. Jeśli test opiera się na grupach aplikacji, nie zostanie on przeprowadzony.
Przeprowadź test pętli gry
Uruchom polecenie gcloud beta firebase test ios run
i użyj tych flag, aby skonfigurować uruchomienie:
Flagi testów pętli gry | |
---|---|
--type
|
Wymagane: określa typ testu iOS, który chcesz przeprowadzić. Możesz wpisać typy testów |
--app
|
Wymagane: bezwzględna ścieżka (GCS lub system plików) do pliku IPA aplikacji. Ten parametr jest prawidłowy tylko podczas uruchamiania testów Game Loop. |
--scenario-numbers
|
pętle (czyli scenariusze), które chcesz uruchomić w aplikacji. Możesz podać jedną pętlę, listę pętli lub 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ę, których dostępnych urządzeń możesz użyć). |
--timeout
|
Maksymalny czas trwania testu. Możesz wpisać liczbę całkowitą, aby reprezentować czas w sekundach, lub liczbę całkowitą i enumerację, aby reprezentować czas w dłuższej jednostce czasu. Przykład:
|
Na przykład poniższe polecenie uruchamia test pętli gry, który wykonuje pętle 1, 4, 6, 7 i 8 na iPhonie 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 o interfejsie wiersza poleceń gcloud znajdziesz w dokumentacji.
Krok 3 (opcjonalny): zautomatyzuj przyszłe testy, które tworzysz
Tworzenie skryptów poleceń gcloud za pomocą Test Lab
Możesz użyć skryptów powłoki lub plików wsadowych, aby zautomatyzować polecenia testowania aplikacji mobilnej, które w przeciwnym razie musiałbyś uruchomić w wierszu poleceń gcloud. Ten przykładowy skrypt basha uruchamia XCTest z 2-minutowym czasem oczekiwania i zgłasza, czy test został wykonany 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
Test Lab udostępnia kilka kodów zakończenia, które możesz wykorzystać, aby lepiej zrozumieć wyniki testów uruchamianych za pomocą skryptów lub plików zbiorczych.
Kod wyjścia | Uwagi |
---|---|
0 | Wszystkie wykonania testu zostały zaliczone. |
1 | Wystąpił ogólny błąd. Możliwe przyczyny to np. nieistniejąca nazwa pliku lub błąd HTTP/sieci. |
2 | Testowanie zostało zakończone, ponieważ podano nieznane polecenia lub argumenty. |
10 | Co najmniej 1 przypadek testowy (testowane klasy lub metody klas) w ramach wykonania testu nie został zaliczony. |
15 | Firebase Test Lab nie mógł ustalić, czy testowa matryca przeszła czy nie, z powodu nieoczekiwanego błędu. |
19 | Użytkownik anulował matrycę testów. |
20 | Wystąpił błąd infrastruktury testowej. |
Krok 4. Sprawdź wyniki testu
Gdy test się rozpocznie, otrzymasz link do strony Wyniki testu. Testy mogą trwać kilka minut, w zależności od liczby wybranych konfiguracji i czasu oczekiwania na zakończenie testu. Po zakończeniu testów możesz sprawdzić ich wyniki. Więcej informacji o interpretowaniu wyników testu znajdziesz w artykule Analiza wyników Firebase Test Lab.
Następny krok
Zapoznaj się z dokumentacją pakietu SDK Google Cloud, aby poznać opcje testowania, które są ogólnie dostępne lub dostępne w wersji beta.