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
- Pobierz pakiet SDK Google Cloud.
- 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 w Firebase w gcloud, gdzie PROJECT_ID to identyfikator Twojego projektu w Firebase:
gcloud config set project PROJECT_ID
Obejmuje on 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, przeczytaj artykuł 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 w różnych wersjach iOS, na różnych urządzeniach, w różnych orientacjach ekranu i w różnych ustawieniach regionalnych. Te konfiguracje są nazywane wymiarami testu. Aby zobaczyć opcje każdego wymiaru (np. obsługiwane wersje Xcode dla wersji iOS urządzenia), zastąp
models,versionslublocalesw tym poleceniu słowemdimension:gcloud firebase test ios dimension list
Orientacja ekranu jest nieco prostsza, ponieważ ma tylko 2 opcje:
portraitilandscape.Przejrzyj listę wymiarów testu i wybierz kilka kombinacji, w których chcesz przeprowadzić test. Aby sprawdzić maksymalną liczbę kombinacji, które możesz uruchomić dziennie, otwórz stronę Plany cenowe.
Po wybraniu zestawu wymiarów testu możesz uruchomić Test Lab testy za pomocą polecenia
firebase test ios run. Dla każdej kombinacji wymiarów testu, którą chcesz przetestować, dodaj osobny parametr--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 z a domyślną wersją Xcode używaną przez Test Lab. Aby określić obsługiwaną wersję Xcode dla testu, użyj parametru
--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 znajdowanie zestawów testów w Firebase konsoli, możesz opcjonalnie oznaczyć zestaw testów za pomocą
--client-details matrixLabel="<label>"flagi 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"
Specjalne uprawnienia testowe
Aby przetestować uprawnienia, które wymagają wyraźnego identyfikatora aplikacji, możesz to zrobić, ustawiając parametr --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 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 kontem dewelopera Test Lab. 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 użyj tych parametrów, aby skonfigurować uruchomienie:
| Parametry testów pętli gry | |
|---|---|
--type
|
Wymagany: określa typ testu iOS, który chcesz przeprowadzić. Możesz wpisać typy testów |
--app
|
Wymagany: ścieżka bezwzględna (GCS lub system plików) do pliku IPA aplikacji. Ten parametr 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ć 1 pętlę, listę pętli lub zakres pętli. Domyślna pętla 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 reprezentować czas trwania w sekundach, lub liczbę całkowitą i wyliczenie, które będą reprezentować 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.
Krok 3 (opcjonalny): zautomatyzuj przyszłe testy
Skryptowanie 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 przeciwnym razie uruchamiałbyś za pomocą wiersza poleceń gcloud. Ten przykładowy skrypt powłoki bash uruchamia XCTest z 2-minutowym limitem czasu 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 wyjścia, które pomagają lepiej zrozumieć wyniki testów przeprowadzanych za pomocą skryptów lub plików wsadowych.
| Kod wyjścia | Uwagi |
|---|---|
| 0 | Wszystkie wykonania testów zakończyły się pomyślnie. |
| 1 | Wystąpił ogólny błąd. Możliwe przyczyny to m.in. 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 (testowana klasa lub metoda klasy) w ramach wykonania testu nie został zaliczony. |
| 15 | Firebase Test Lab nie mógł określić, czy zestaw testów został zaliczony, czy nie, z powodu nieoczekiwanego błędu. |
| 19 | Zestaw testów został anulowany przez użytkownika. |
| 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 potrwać kilka minut w zależności od liczby wybranych konfiguracji i czasu oczekiwania na test. Po zakończeniu testów możesz sprawdzić ich wyniki. Więcej informacji o interpretowaniu wyników testów znajdziesz w artykule Analyzing Firebase Test Lab Results.
Następny krok
Przeczytaj dokumentację pakietu SDK Google Cloud, aby poznać opcje testowania, które są ogólnodostępne lub w wersji beta.