Z tego przewodnika dowiesz się, jak uruchomić test XCTest lub test pętli gry za pomocą gcloud CLI.
Krok 1. Skonfiguruj lokalne środowisko pakietu SDK Google Cloud
- Pobierz 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
- 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. Przeprowadź test
Przeprowadź XCTest
Prześlij plik ZIP z testem, uruchamiając to polecenie (jeśli nie masz jeszcze spakowanej aplikacji, zapoznaj się z sekcją Pakowanie XCTest):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Wybierz wymiary testu.
Test Lab umożliwia przeprowadzanie testów na różnych wersjach iOS, urządzeniach, orientacjach ekranu i językach. Te konfiguracje są nazywane wymiarami testu. Aby wyświetlić opcje każdego wymiaru (np. obsługiwane wersje Xcode dla wersji iOS urządzenia), w tym poleceniu zastąp
models
,versions
lublocales
znakiemdimension
:gcloud firebase test ios dimension list
Orientacja ekranu jest nieco prostsza, ponieważ ma tylko 2 opcje:
portrait
ilandscape
.Przejrzyj listę wymiarów testu i wybierz kilka kombinacji, w których chcesz przeprowadzić test. Na stronie Plany cenowe znajdziesz maksymalną liczbę kombinacji, które możesz uruchamiać dziennie.
Po wybraniu zestawu wymiarów testu możesz uruchomić testy za pomocą polecenia
firebase test ios run
.Test Lab W przypadku każdej kombinacji wymiarów testu, którą chcesz przetestować, dodaj osobne oznaczenie--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 powieść z powodu niezgodności między wersją Xcode, w której został utworzony, a domyślną wersją Xcode używaną przez Test Lab. Aby określić obsługiwaną wersję Xcode na potrzeby 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 ułatwić identyfikowanie i lokalizowanie macierzy testowych w konsoli Firebase, możesz opcjonalnie oznaczyć macierz testową za pomocą flagi
--client-details matrixLabel="<label>"
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, możesz ustawić flagę --test-special-entitlements
. Test Lab
ponownie podpisuje aplikację nowym identyfikatorem pakietu, aby obsługiwać specjalne uprawnienia. Upewnij się, że w pliku ZIP nie ma zasobów zawierających bezpośrednie odwołania do identyfikatora pakietu aplikacji.
- Powiadomienia push
apns-environment
- Osobista sieć VPN
com.apple.developer.networking.vpn.api
Aby autoryzować żądania powiadomień push, użytkownicy mogą tworzyć tokeny sieciowe JSON za pomocą prywatnego klucza podpisywania oraz identyfikatora klucza – C7FD9DJAA8 i identyfikatora zespołu – 9CKCGNNUQN. Wygenerowane tokeny będą ważne przez godzinę i trzeba je odświeżać co 60 minut. Więcej informacji znajdziesz w artykule Nawiązywanie połączenia z APNs na podstawie tokena.
Grupy aplikacjiIdentyfikatory grup aplikacji są unikalne w skali globalnej. Oznacza to, że podczas ponownego podpisywania aplikacji użytkowników możemy używać tylko identyfikatora grupy aplikacji powiązanego z Test Lab kontem dewelopera. Jeśli test opiera się na grupach aplikacji, zakończy się niepowodzeniem.
Przeprowadź test pętli gry
Uruchom polecenie gcloud beta firebase test ios run
i skonfiguruj uruchomienie za pomocą tych flag:
Flagi testów pętli gry | |
---|---|
--type
|
Wymagany: określa typ testu na iOS, który chcesz przeprowadzić. Możesz wpisać typy testów |
--app
|
Wymagane: ścieżka bezwzględna (GCS lub system plików) do pliku IPA aplikacji. Ten flag jest prawidłowy tylko podczas przeprowadzania testów pętli gry. |
--scenario-numbers
|
Pętle (czyli scenariusze), które chcesz uruchomić w aplikacji. Możesz wpisać jedną pętlę, listę pętli lub zakres pętli. Domyślna liczba pętli to 1.
Na przykład |
--device-model
|
Urządzenie fizyczne, na którym chcesz przeprowadzić test (sprawdź, które dostępne urządzenia możesz wykorzystać). |
--timeout
|
Maksymalny czas trwania testu. Możesz wpisać liczbę całkowitą, która będzie oznaczać czas trwania w sekundach, lub liczbę całkowitą i wyliczenie, które będą oznaczać czas trwania w dłuższej jednostce czasu. Przykład:
|
Na przykład to polecenie przeprowadza 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. (Opcjonalnie) Zautomatyzuj przyszłe testy
Tworzenie skryptów poleceń gcloud za pomocą Test Lab
Możesz używać skryptów powłoki lub plików wsadowych do automatyzowania poleceń testowania aplikacji mobilnych, które w inny sposób uruchamiasz za pomocą wiersza poleceń gcloud. Ten przykładowy skrypt bash uruchamia test XCTest z 2-minutowym czasem oczekiwania i informuje, czy test 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
Test Lab udostępnia kilka kodów zakończenia, które pomagają lepiej zrozumieć wyniki testów przeprowadzanych za pomocą skryptów lub plików wsadowych.
Kod wyjścia | Uwagi |
---|---|
0 | Wszystkie wykonania testu zostały zaliczone. |
1 | Wystąpił błąd ogólny. 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 1 przypadek testowy (testowane klasy lub metody klas) w ramach wykonania testu nie został zaliczony. |
15 | Nie udało się ustalić, czy macierz testowa została zaliczona, czy nie, z powodu nieoczekiwanego błędu.Firebase Test Lab |
19 | Użytkownik anulował macierz testową. |
20 | Wystąpił błąd infrastruktury testowej. |
Krok 4. Sprawdź wyniki testu
Po rozpoczęciu testu otrzymasz link do strony Wyniki testu. Przeprowadzenie testów może zająć kilka minut w zależności od liczby wybranych konfiguracji i czasu oczekiwania na wynik testu. Po przeprowadzeniu testów możesz sprawdzić ich wyniki. Więcej informacji o interpretowaniu wyników testu znajdziesz w sekcji Analizowanie wyników.Firebase Test Lab
Następny krok
Zapoznaj się z dokumentacją pakietu SDK Google Cloud, aby poznać opcje testowania, które są ogólnodostępne lub w wersji beta.