Testowanie za pomocą Google Cloud CLI

Z tego przewodnika dowiesz się, jak przeprowadzić test XCTest lub pętli gry za pomocą gcloud. interfejs wiersza poleceń.

Krok 1. Skonfiguruj lokalne środowisko pakietu SDK Google Cloud

  1. Pobierz pakiet Google Cloud SDK.
  2. Obejmuje to gcloud CLI.

  3. Sprawdź, czy Twoja instalacja jest aktualna i zawiera polecenie gcloud firebase:
          gcloud components update
  4. Zaloguj się w interfejsie wiersza poleceń gcloud za pomocą konta Google:
          gcloud auth login
  5. Ustaw projekt Firebase w gcloud, gdzie PROJECT_ID to identyfikator projektu Firebase:
         gcloud config set project PROJECT_ID

Krok 2. Przeprowadź test

Przeprowadź XCTest

  1. Prześlij plik ZIP z testem, uruchamiając następujące polecenie (jeśli nie masz jeszcze aplikacji w pakiecie, zobacz SPakowanie XCTest):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. Wybierz wymiary testowe.

    Test Lab umożliwia przeprowadzanie testów na różnych wersjach iOS, urządzeniach i na różnych urządzeniach orientacji i regionów. Są to tzw. konfiguracje testowe wymiarów testowych. Aby wyświetlić opcje każdego wymiaru (np. obsługiwane wersje Xcode dla wersji iOS na urządzeniu), zastąp models, versions lub locales w przypadku dimension w tym poleceniu:

    gcloud firebase test ios dimension list

    Orientacja ekranu jest nieco prostsza, ponieważ dostępne są tylko opcje portrait i landscape

    Przejrzyj listę wymiarów testu i wybierz kilka kombinacji, które chcesz przetestować. Aby poznać maksymalną liczbę kombinacji, które możesz uruchamiać dziennie, otwórz Plany cenowe.

  3. Po wybraniu zestawu wymiarów testu możesz uruchomić Test Lab testy za pomocą polecenia firebase test ios run. Dla każdej wartości kombinację wymiarów testowych, które 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órym skompilowano test i 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 pomóc w zidentyfikowaniu i zlokalizowaniu macierzy testów w Firebase, możesz opcjonalnie oznaczyć tablicę testową za pomocą atrybutu --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ą wyraźnego identyfikatora aplikacji, możesz to zrobić: ustawienie flagi --test-special-entitlements. Test Lab ponownie podpisuje aplikację nowym identyfikatorem pakietu, aby obsługiwać specjalne uprawnień, więc upewnij się, że plik ZIP nie zawiera żadnych zasobów które zawierają bezpośrednie odwołania do identyfikatora pakietu aplikacji.

Obsługiwane uprawnienia:
  1. Powiadomienia push apns-environment
  2. Osobista sieć VPN com.apple.developer.networking.vpn.api
Powiadomienia push

Na potrzeby autoryzacji żądań powiadomień push użytkownicy mogą tworzyć internetowe pliki JSON tokeny prywatne klucz podpisywania razem z identyfikatorem klucza C7FD9DJAA8 oraz identyfikatorem zespołu – 9CKCGNNUQN Wygenerowane tokeny będą ważne dla jednego musi być odświeżana co 60 minut; Przeczytaj więcej na: Nawiązywanie połączenia opartego na tokenach z APNs.

Grupy aplikacji

Identyfikatory grup aplikacji są unikalne globalnie. Oznacza to, że gdy ponownie podpisać aplikacje użytkowników, możemy użyć tylko identyfikatora grupy aplikacji, który jest powiązane z kontem dewelopera w usłudze Test Lab. Jeśli test wymaga na grupach aplikacji, test się nie powiedzie.

Przeprowadź test pętli gry

Uruchom polecenie gcloud beta firebase test ios run i użyj tego flagi w celu skonfigurowania uruchomienia:

Flagi testów pętli gry
--type

Wymagane: określa typ testu iOS, który chcesz przeprowadzić. Możesz wpisać typy testowe xctest (domyślny) lub game-loop.

--app

Wymagane: ścieżka bezwzględna (GCS lub system plików) do pliku IPA aplikacji. Ten parametr jest prawidłowy 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ętlę albo zakres pętli. Domyślna pętla to 1.

Na przykład --scenario-numbers=1-3,5 uruchamia pętle 1, 2, 3 i 5.

--device-model

fizyczne urządzenie, na którym chcesz przeprowadzić test; (sprawdź, które dostępne urządzenia których możesz użyć).

--timeout

Maksymalny czas trwania testu. Możesz wpisać liczbę całkowitą, aby przedstawiają czas trwania w sekundach lub liczbę całkowitą i wyliczenie reprezentujące jako dłuższej jednostki czasu.

Przykład:

  • --timeout=200 wymusza zakończenie testu, gdy osiągnie wartość 200 sek.
  • --timeout=1h wymusza zakończenie testu po upływie maksymalnie godziny.

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 interfejsie wiersza poleceń gcloud znajdziesz w dokumentacji.

Krok 3 (opcjonalny) Zautomatyzuj tworzone w przyszłości testy

Pisanie skryptów poleceń gcloud za pomocą Test Lab

Możesz użyć skryptów powłoki lub plików wsadowych, aby zautomatyzować polecenia testowania aplikacji mobilnej, które w przeciwnym razie musiałbyś uruchomić w wierszu poleceń gcloud. Ta przykładowa bash uruchamia XCTest z dwuminutowym czasem oczekiwania i zgłasza, czy dany test ukończono 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

Skrypty wyjścia

Test Lab udostępnia kilka kodów wyjścia, które mogą Ci pomóc lepiej zrozumieć wyniki testów przeprowadzonych za pomocą skryptów lub plików wsadowych.

Kod wyjścia Uwagi
0 Wszystkie wykonania testu zaliczone.
1 Wystąpił błąd ogólny. Możliwe przyczyny: nazwa pliku, w którym występuje nie istnieje albo występuje błąd HTTP/sieciowy.
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 testu nie udało się wykonać.
15 Funkcja Firebase Test Lab nie mogła określić, czy tablica testów zaliczona lub niepowodzenie 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. Testy mogą jego bieg może potrwać kilka minut, w zależności w wybranych konfiguracjach oraz czasie oczekiwania na sprawdzenie testów. Po zakończeniu testów możesz sprawdzić ich wyniki. Więcej informacji o interpretowaniu wyników testu znajdziesz w artykule Analiza wyników Firebase Test Lab.

Następny krok

Przeczytaj dokumentację pakietu SDK Google Cloud, aby poznać dostępne opcje testowania. powszechnie dostępne lub beta.