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 informacje o maksymalnej liczbie 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 testów w Firebasekonsoli, możesz opcjonalnie oznaczyć macierz testów 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 specjalnych uprawnień
Aby przetestować uprawnienia, które wymagają jawnego identyfikatora aplikacji, możesz to zrobić, ustawiając 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 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 na całym świecie. 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 ważny 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ówFirebase Test Lab.
Kolejny etap
Zapoznaj się z dokumentacją pakietu SDK Google Cloud, aby poznać opcje testowania, które są ogólnodostępne lub w wersji beta.