W tym przewodniku opisano, jak przeprowadzić test XCTest lub Game Loop za pomocą interfejsu wiersza polecenia gcloud.
Krok 1 : skonfiguruj lokalne środowisko Google Cloud SDK
- Pobierz pakiet Google Cloud SDK.
- Upewnij się, że Twoja instalacja jest aktualna i zawiera polecenie
gcloud firebase
:gcloud components update
- Zaloguj się do gcloud CLI, używając swojego konta Google:
gcloud auth login
- Ustaw swój projekt Firebase w gcloud, gdzie PROJECT_ID to identyfikator twojego projektu Firebase:
gcloud config set project PROJECT_ID
Obejmuje to narzędzie gcloud CLI.
Krok 2 : Uruchom test
Przeprowadź XCTest
Prześlij plik .zip swojego testu, uruchamiając następujące polecenie (jeśli jeszcze nie spakowałeś swojej aplikacji, zobacz Pakowanie twojego 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 systemu iOS, urządzeniach, orientacjach ekranu i ustawieniach regionalnych. Te konfiguracje są znane jako wymiary testowe testu. Aby zobaczyć opcje dla każdego wymiaru (np. obsługiwane wersje Xcode dla wersji iOS urządzenia), zamień
models
,versions
lublocales
nadimension
w następującym poleceniu:gcloud firebase test ios dimension list
Orientacja ekranu jest nieco prostsza, ponieważ dostępne są tylko opcje
portrait
ilandscape
.Przejrzyj listę wymiarów testowych i wybierz kilka kombinacji, na których chcesz przeprowadzić test. Odwiedź Plany cenowe , aby zobaczyć maksymalną liczbę kombinacji, które możesz uruchomić dziennie.
Po wybraniu zestawu wymiarów testowych możesz zlecić Test Lab uruchomienie testów za pomocą polecenia
firebase test ios run
. Dla każdej kombinacji wymiarów testowych, które chcesz przetestować, dołącz oddzielną 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 Twój test zakończy się niepowodzeniem z powodu niezgodności między wersją Xcode, z którą został zbudowany test, a domyślną wersją Xcode używaną przez Test Lab. Aby określić obsługiwaną wersję Xcode dla twojego 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=11.3
Aby pomóc Ci zidentyfikować i zlokalizować swoje macierze testowe w konsoli Firebase, możesz opcjonalnie oznaczyć macierz testową za pomocą flagi
--client-details matrixLabel="<label>"
w poniższym 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"
Przetestuj specjalne uprawnienia
Aby przetestować uprawnienia, które wymagają wyraźnego identyfikatora aplikacji, możesz to zrobić, ustawiając flagę --test-special-entitlements
. Laboratorium testowe ponownie podpisuje aplikację nowym identyfikatorem pakietu w celu obsługi specjalnych uprawnień, więc upewnij się, że w pliku ZIP nie ma żadnych zasobów zawierających bezpośrednie odniesienia do identyfikatora pakietu aplikacji. Powiadomienia push
Aby autoryzować żądania powiadomień wypychanych, użytkownicy mogą tworzyć tokeny internetowe JSON przy użyciu prywatnego klucza podpisywania wraz z identyfikatorem klucza — C7FD9DJAA8 i identyfikatorem zespołu — 9CKCGNNUQN . Wygenerowane tokeny byłyby ważne przez godzinę i musiałyby być odświeżane co 60 minut. Przeczytaj więcej na temat nawiązywania połączenia opartego na tokenie do APN.
Grupy aplikacjiIdentyfikatory grup aplikacji są uniwersalne i unikatowe. Oznacza to, że kiedy ponownie podpisujemy aplikacje użytkownika, możemy używać tylko identyfikatora grupy aplikacji powiązanego z kontem programisty Test Lab. Jeśli Twój test opiera się na grupach aplikacji, zakończy się niepowodzeniem.
Uruchom test pętli gry
Uruchom polecenie gcloud beta firebase test ios run
i użyj następujących flag, aby skonfigurować uruchomienie:
Flagi do testów Game Loop | |
---|---|
--type | Wymagane : określa typ testu systemu iOS, który chcesz uruchomić. Możesz wprowadzić typy testów |
--app | Wymagane : bezwzględna ścieżka (GCS lub system plików) do pliku IPA Twojej aplikacji. Ta flaga jest ważna tylko podczas uruchamiania testów Game Loop. |
--scenario-numbers | Pętle (inaczej scenariusze), które chcesz uruchomić w swojej aplikacji. Możesz wprowadzić jedną pętlę, listę lub pętle albo zakres pętli. Domyślna pętla to 1. Na przykład |
--device-model | Fizyczne urządzenie, na którym chcesz uruchomić test (dowiedz się, z jakich dostępnych urządzeń możesz korzystać). |
--timeout | Maksymalny czas trwania testu. Możesz wprowadzić liczbę całkowitą, aby reprezentować czas trwania w sekundach, lub liczbę całkowitą i wyliczenie, aby reprezentować czas jako dłuższą jednostkę czasu. Na przykład:
|
Na przykład następujące polecenie uruchamia test Game Loop, który wykonuje pętle 1, 4, 6, 7 i 8 na telefonie iPhone 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 polecenia gcloud znajdziesz w dokumentacji referencyjnej .
Krok 3 (opcjonalnie) : zautomatyzuj przyszłe testy, które zbudujesz
Skryptowanie poleceń gcloud za pomocą Test Lab
Możesz użyć skryptów powłoki lub plików wsadowych, aby zautomatyzować polecenia testowania aplikacji mobilnych, które normalnie wykonywałbyś za pomocą wiersza poleceń gcloud. Ten przykładowy skrypt bash uruchamia XCTest z dwuminutowym limitem czasu i zgłasza, czy przebieg testu 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
Laboratorium testowe udostępnia kilka kodów wyjścia, których można użyć, aby lepiej zrozumieć wyniki testów uruchamianych przy użyciu skryptów lub plików wsadowych.
Kod wyjścia | Notatki |
---|---|
0 | Wszystkie wykonania testowe zakończone pomyślnie. |
1 | Wystąpiła ogólna awaria. Możliwe przyczyny to: nazwa pliku, która nie istnieje lub błąd HTTP/sieci. |
2 | Testowanie zostało zakończone, ponieważ podano nieznane polecenia lub argumenty. |
10 | Co najmniej jeden przypadek testowy (testowane klasy lub metody klas) w wykonaniu testu nie przeszedł pomyślnie. |
15 | Laboratorium testowe Firebase nie mogło określić, czy macierz testów zakończyła się powodzeniem, czy niepowodzeniem z powodu nieoczekiwanego błędu. |
19 | Macierz testowa została anulowana przez użytkownika. |
20 | Wystąpił błąd infrastruktury testowej. |
Krok 4 : Zbadaj wyniki testu
Po rozpoczęciu testu otrzymasz łącze do strony z wynikami testu . Uruchomienie testów może zająć kilka minut, w zależności od liczby wybranych konfiguracji i ustawionego limitu czasu testu. Po uruchomieniu testów możesz przejrzeć wyniki testów. Zobacz Analiza wyników laboratorium testowego Firebase, aby dowiedzieć się więcej o tym, jak interpretować wyniki testu.
Następny krok
Przeczytaj dokumentację Google Cloud SDK, aby poznać opcje testowania, które są ogólnie dostępne lub w wersji beta .