Google Cloud KSA ile test etme

Bu kılavuzda, gcloud CLI kullanılarak XCTest veya Game Loop testinin nasıl çalıştırılacağı açıklanmaktadır.

1. Adım: Yerel Google Cloud SDK ortamınızı yapılandırın

  1. Google Cloud SDK'yı indirin
  2. gcloud KSA aracı da buna dahildir.

  3. Yüklemenizin güncel olduğundan ve gcloud firebase komutu:
          gcloud components update
  4. Google Hesabınızı kullanarak gcloud CLI'ye giriş yapın:
          gcloud auth login
  5. PROJECT_ID, Firebase projenizin kimliğidir:
         gcloud config set project PROJECT_ID

2. Adım: Testinizi çalıştırın

XCTest çalıştırma

  1. Aşağıdaki komutu çalıştırarak testinizin .zip dosyasını yükleyin ( henüz paketlemediyseniz bkz. XCTest'inizi paketleme):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. Test boyutlarınızı seçin.

    Test Lab, çeşitli iOS sürümlerinde, cihazlarda, ekranlarda testler çalıştırmanızı sağlar ve yerel ayarlar. Bu yapılandırmalar testin test boyutlarını kullanın. Her boyutla ilgili seçenekleri görmek için (ör. cihazın iOS sürümü için desteklenen Xcode sürümleri), Şunun için models, versions veya locales: dimension komutunu girin:

    gcloud firebase test ios dimension list

    Ekran yönü biraz daha basit, çünkü yalnızca portrait ve landscape.

    Test boyutları listesine göz atın ve istediğiniz birkaç kombinasyonu seçin testinizi çalıştırın. Aşağıdaki bilgileri görmek için Fiyatlandırma Planları'nı ziyaret edin: günlük maksimum kombinasyon sayısı.

  3. Bir dizi test boyutu seçtikten sonra Test Lab öğesinin çalıştırılmasını sağlayabilirsiniz test etmek için firebase test ios run komutunu kullanın. Her bir kombinasyonuna ayrı bir --device işareti ekleyin:

    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...

    Testiniz, testin oluşturulduğu ve Test Lab tarafından kullanılan varsayılan Xcode sürümü. Testinizde desteklenen bir Xcode sürümü belirtmek için --xcode-version işaretini kullanın:

    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

    Test matrislerinizi Firebase konsolunu kullanarak, isteğe bağlı olarak Aşağıdaki örnekte --client-details matrixLabel="<label>" işareti:

    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"

Özel Yararlanma Hakları'nı Test Etme

Belirli bir uygulama kimliği gerektiren izinleri test etmek için --test-special-entitlements işaretini ayarlayarak bunu yapabilirsiniz. Test Lab özel desteği desteklemek için uygulamayı yeni bir paket tanımlayıcıyla yeniden imzalar bu nedenle, ZIP dosyanızda hiç kaynak olmadığından emin olun uygulamanın paket tanımlayıcısına doğrudan referanslar içeren.

Desteklenen hak talepleri:
  1. Push Bildirimleri apns-environment
  2. Kişisel VPN com.apple.developer.networking.vpn.api
Push Bildirimleri

Push bildirimi isteklerini yetkilendirmek için kullanıcılar JSON web oluşturabilir özel kodu kullanarak imzalama anahtarı C7FD9DJAA8 Anahtar Kimliği ve Ekip Kimliği ile birlikte 9CKCGNNUQN. Oluşturulan jetonlar tek bir ve 60 dakikada bir yenilenmesi gerekir. Devamını okuyun APN'ler için Jeton Tabanlı Bağlantı Kurma.

Uygulama grupları

Uygulama grubu kimlikleri evrensel olarak benzersizdir. Bu, kullanıcı uygulamalarını yeniden imzalarken yalnızca Test Lab geliştirici hesabıyla ilişkili uygulama grubu kimliğini kullanabileceğimiz anlamına gelir. Testiniz kullanıyorsanız testiniz başarısız olur.

Oyun Döngüsü testi çalıştır

gcloud beta firebase test ios run komutunu çalıştırıp aşağıdaki komutu kullanın: işaretleri kullanın:

Oyun Döngüsü testleri için işaretler
--type

Zorunlu: Çalıştırmak istediğiniz iOS testi türünü belirtir. Giriş xctest (varsayılan) veya game-loop test türlerini deneyin.

--app

Zorunlu: Uygulamanızın IPA dosyasının mutlak yolu (GCS veya dosya sistemi). Bu işaret yalnızca Oyun Döngüsü testleri çalıştırılırken geçerlidir.

--scenario-numbers

Uygulamanızda çalıştırmak istediğiniz döngüler (diğer adıyla senaryolar). Bir döngü, bir liste veya döngü ya da bir döngü aralığı girebilirsiniz. Varsayılan döngü 1'dir.

Örneğin --scenario-numbers=1-3,5; 1, 2, 3 ve 5. döngüleri çalıştırır.

--device-model

Testinizi çalıştırmak istediğiniz fiziksel cihaz (hangi cihazların kullanılabilir olduğunu kullanabilirsiniz).

--timeout

Testinizin çalıştırılmasını istediğiniz maksimum süre. Süreyi saniye cinsinden temsil etmek için bir tam sayı veya süreyi daha uzun bir zaman birimi olarak temsil etmek için bir tam sayı ve bir liste girebilirsiniz.

Örneğin:

  • --timeout=200, testinizi 200 koda kadar çıktığında sonlanmaya zorlar saniye.
  • --timeout=1h, testinizi bir saat kadar çalıştırdığında sonlandırılmaya zorlar.

Örneğin, aşağıdaki komut döngüleri yürüten bir Oyun Döngüsü testi çalıştırır iPhone 8 Plus'ta 1, 4, 6, 7 ve 8:

gcloud beta firebase test ios run
 --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8
 --device-model=iphone8plus

gcloud CLI hakkında daha fazla bilgi için referans dokümanlarını inceleyin.

3. Adım (İsteğe bağlı): Gelecekte oluşturacağınız testleri otomatikleştirin

Test Lab ile gcloud komutlarını komut dosyası çalıştırma

Mobil uygulama test komutlarını otomatikleştirmek için kabuk komut dosyalarını veya toplu dosyaları kullanabilirsiniz komut satırını kullanın. Bu örnek bash komut dosyası, iki dakikalık zaman aşımıyla bir XCTest çalıştırır ve testin çalıştırılıp çalıştırılmadığını bildirir başarıyla tamamlandı:

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

Komut dosyası çıkış kodları

Test Lab, komut dosyaları veya toplu dosyalar kullanarak çalıştırdığınız testlerin sonuçlarını daha iyi anlamak için kullanabileceğiniz çeşitli çıkış kodları sağlar.

Çıkış kodu Notlar
0 Tüm test işlemleri başarılı oldu.
1 Genel bir hata oluştu. Olası nedenler şunları içerir: veya HTTP/ağ hatası oluştu.
2 Bilinmeyen komutlar veya bağımsız değişkenler sağlandığı için testten çıkıldı.
10 Bir test içindeki bir veya daha fazla test durumu (test edilmiş sınıflar veya sınıf yöntemleri) başarısız oldu.
15 Firebase Test Lab, test matrisinin başarılı olup olmadığını veya beklenmedik bir hatadan dolayı tamamlanamadı.
19 Test matrisi kullanıcı tarafından iptal edildi.
20 Test altyapısı hatası oluştu.

4. adım: Test sonuçlarını inceleyin

Test başladığında Test Sonuçları sayfasının bağlantısını alırsınız. Testlerin çalıştırılması, seçtiğiniz farklı yapılandırmaların sayısına ve testleriniz için ayarlanan test zaman aşımı süresine bağlı olarak birkaç dakika sürebilir. Testleriniz çalıştırıldıktan sonra test sonuçlarını inceleyebilirsiniz. Görüntüleyin Daha fazla bilgi için Firebase Test Lab Sonuçları analiz ediliyor nasıl yorumlayacağınızı anlatacağım.

Sonraki adım

Size uygun test seçeneklerini keşfetmek için Google Cloud SDK'sı belgelerini okuyun genel kullanıma sunuldu veya beta sürümündedir.