Z tego przewodnika dowiesz się, jak przeprowadzić test XCTest lub test pętli gry za pomocą gcloud CLI.
Krok 1. Skonfiguruj lokalne środowisko (pakietu) SDK Google Cloud
- pobrać pakiet SDK Google Cloud,
- Upewnij się, że instalacja jest aktualna i zawiera polecenie
gcloud firebase:gcloud components update - Zaloguj się w gcloud CLI przy użyciu konta Google:
gcloud auth login - Ustaw projekt w Firebase w gcloud, gdzie PROJECT_ID to identyfikator projektu w Firebase:
gcloud config set project PROJECT_ID
Obejmuje to narzędzie gcloud CLI.
Krok 2. Przeprowadź test
Uruchamianie testu XCTest
Prześlij plik .zip testu, uruchamiając to polecenie (jeśli aplikacja nie została jeszcze spakowana, zobacz Pakowanie testu 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 ustawieniach językowych. Te konfiguracje są nazywane wymiarami testu. Aby zobaczyć opcje dla każdego wymiaru (np. obsługiwane wersje Xcode dla wersji iOS urządzenia), zastąp
models,versionslublocalesprzezdimensionw tym poleceniu:gcloud firebase test ios dimension list
Orientacja ekranu jest nieco prostsza, ponieważ jedyne opcje to
portraitilandscape.Przejrzyj listę wymiarów testowych i wybierz kilka kombinacji, które chcesz przetestować. Aby sprawdzić maksymalną liczbę kombinacji, które możesz uruchomić dziennie, wejdź na stronę Abonamenty.
Po wybraniu zestawu wymiarów testowych możesz uruchomić testy w Test Lab za pomocą polecenia
firebase test ios run. W przypadku każdej kombinacji wymiarów testowych, 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...
Możliwe, że test się nie powiedzie 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 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=15
Aby ułatwić sobie identyfikowanie i lokalizowanie zestawów testów w konsoli Firebase, możesz opcjonalnie oznaczyć zestaw testów etykietą, używając 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ą podania identyfikatora aplikacji, możesz ustawić flagę --test-special-entitlements. Test Lab ponownie podpisuje aplikację nowym identyfikatorem pakietu, aby obsługiwać specjalne uprawnienia, więc 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 internetowe JSON, używając prywatnego klucza podpisywania wraz z identyfikatorem klucza – C7FD9DJAA8 i identyfikatorem zespołu – 9CKCGNNUQN. Wygenerowane tokeny będą ważne przez godzinę i będą musiały być odświeżane co 60 minut. Więcej informacji znajdziesz w artykule na temat nawiązywania połączenia z APNs na podstawie tokena
Grupy aplikacjiIdentyfikatory grup aplikacji są unikalne uniwersalnie. Oznacza to, że gdy ponownie podpisujemy aplikacje użytkowników, możemy używać tylko identyfikatora grupy aplikacji powiązanego z kontem dewelopera Test Lab. Jeśli test opiera się na grupach aplikacji, nie powiedzie się.
Uruchamianie testu 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 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 znacznik jest prawidłowy tylko podczas 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ź, z których dostępnych urządzeń możesz korzystać); |
--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 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 gcloud CLI znajdziesz w dokumentacji referencyjnej.
Krok 3 (opcjonalny): zautomatyzuj przyszłe testy, które utworzysz
Tworzenie skryptów poleceń gcloud za pomocą Test Lab
Możesz używać skryptów powłoki lub plików wsadowych do automatyzacji poleceń testowania aplikacji mobilnych, które w przeciwnym razie byłyby uruchamiane za pomocą wiersza poleceń gcloud. Ten przykładowy skrypt bash uruchamia test XCTest z 2-minutowym limitem czasu i raportuje, czy test został ukończony 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 wyjścia, które pomogą Ci lepiej zrozumieć wyniki testów przeprowadzanych za pomocą skryptów lub plików wsadowych.
| Kod wyjścia | Uwagi |
|---|---|
| 0 | Wszystkie wykonania testu zakończyły się powodzeniem. |
| 1 | Wystąpił błąd ogólny. Możliwe przyczyny: nazwa pliku nie istnieje lub wystąpił błąd HTTP/sieci. |
| 2 | Testowanie zostało zakończone, ponieważ podano nieznane polecenia lub argumenty. |
| 10 | Co najmniej 1 element testowania (testowane klasy lub metody klas) w ramach wykonania testu nie został zaliczony. |
| 15 | Z powodu nieoczekiwanego błędu usługa Firebase Test Lab nie mogła określić, czy zestaw testów zakończył się powodzeniem czy niepowodzeniem. |
| 19 | Zestaw testów został anulowany przez użytkownika. |
| 20 | Wystąpił błąd infrastruktury testowej. |
Krok 4. Przeanalizuj wyniki testu
Po rozpoczęciu testu otrzymasz link do strony Wyniki testu. Testy mogą potrwać kilka minut, w zależności od liczby wybranych konfiguracji i ustawionego limitu czasu testu. Po zakończeniu testów możesz sprawdzić ich wyniki. Aby dowiedzieć się więcej o interpretowaniu wyników testów, przeczytaj artykuł Analizowanie wyników Firebase Test Lab.
Następny krok
Zapoznaj się z dokumentacją pakietu Google Cloud SDK, aby poznać opcje testowania, które są ogólnie dostępne lub w wersji beta.