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 SDK Google Cloud
  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.

    Laboratorium pozwala przeprowadzać testy na różnych wersjach iOS, urządzeniach i 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 testowych i wybierz kilka kombinacji, które chcesz przetestować przeprowadź test. Otwórz Abonamenty, aby zobaczyć maksymalną liczbę kombinacji, które możesz uruchomić dziennie.

  3. Po wybraniu zestawu wymiarów testowych możesz uruchomić Laboratorium, do testów 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 stworzono test, oraz domyślną wersją Xcode używaną przez Laboratorium. 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 w konsoli Firebase, możesz opcjonalnie oznaczyć tablicę testową za pomocą atrybutu flaga --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. Laboratorium 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ą uniwersalnie unikalne. 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 Laboratorium. 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

Wymagany: określa typ testu na 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. Ta flaga jest stosowana tylko podczas testów pętli gry.

--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 gcloud CLI znajdziesz w dokumentacji referencyjnej.

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

Tworzenie skryptów poleceń gcloud w Laboratorium

Możesz użyć skryptów powłoki lub plików wsadowych, aby zautomatyzować polecenia testowania aplikacji mobilnych które można by uruchomić przy użyciu wiersza 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

Laboratorium udostępnia kilka kodów wyjścia, które mogą pomóc w lepszym zrozumieniu 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 Laboratorium Firebase nie mogło określić, czy tablica testów zaliczona, czy 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ą i może potrwać kilka minut w zależności od liczby różnych w wybranych konfiguracjach oraz czasie oczekiwania na sprawdzenie testów. Po zakończeniu testów możesz przejrzeć ich wyniki. Zobacz Analizowanie wyników Laboratorium Firebase, by dowiedzieć się więcej jak interpretować wyniki testu.

Następny krok

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