Google Cloud CLI ile test edin

Bu kılavuzda, gcloud CLI kullanılarak bir 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. Buna gcloud CLI aracı da dahildir.

  3. Kurulumunuzun güncel olduğundan ve gcloud firebase komutunu içerdiğinden emin olun:
          gcloud components update
  4. Google hesabınızı kullanarak gcloud KSA'sında oturum açın:
          gcloud auth login
  5. Firebase projenizi gcloud'da ayarlayın; burada PROJECT_ID , Firebase projenizin kimliğidir:
         gcloud config set project PROJECT_ID

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

Bir XCTest çalıştırın

  1. Aşağıdaki komutu çalıştırarak testinizin .zip dosyasını yükleyin (uygulamanızı 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ümleri, cihazlar, ekran yönleri ve yerel ayarlar üzerinde testler çalıştırmanıza olanak tanır. Bu konfigürasyonlar testin test boyutları olarak bilinir. Her bir boyuta ilişkin seçenekleri görmek için (örneğin, cihazın iOS sürümü için desteklenen Xcode sürümleri), aşağıdaki komutta dimension yerine models , versions veya locales yazın:

    gcloud firebase test ios dimension list

    Tek seçenekleri portrait ve landscape olduğundan ekran yönü biraz daha basittir.

    Test boyutları listesine göz atın ve testinizi gerçekleştirmek istediğiniz birkaç kombinasyonu seçin. Günde çalıştırabileceğiniz maksimum kombinasyon sayısını görmek için Fiyatlandırma Planlarını ziyaret edin.

  3. Bir dizi test boyutu seçtikten sonra, firebase test ios run komutunu kullanarak Test Lab'in testlerinizi çalıştırmasını sağlayabilirsiniz. Test etmek istediğiniz her test boyutu kombinasyonu için ayrı bir --device bayrağı 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...

    Testin oluşturulduğu Xcode sürümü ile Test Lab tarafından kullanılan varsayılan Xcode sürümü arasındaki uyumsuzluk nedeniyle testinizin başarısız olması mümkündür. Testiniz için desteklenen bir Xcode sürümü belirtmek üzere --xcode-version bayrağını 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

    Firebase konsolunda test matrislerinizi tanımlamanıza ve bulmanıza yardımcı olması için aşağıdaki örnekte isteğe bağlı olarak test matrisinizi --client-details matrixLabel="<label>" bayrağını kullanarak etiketleyebilirsiniz:

    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 Yetkileri Test Edin

Açık bir Uygulama Kimliği gerektiren yetkilendirmeleri test etmek için --test-special-entitlements bayrağını ayarlayarak bunu yapabilirsiniz. Test Lab, özel yetkilendirmeleri desteklemek için uygulamayı yeni bir paket tanımlayıcıyla yeniden imzalar; bu nedenle zip dosyanızda, uygulamanın paket tanımlayıcısına doğrudan referanslar içeren hiçbir kaynak olmadığından emin olun.

Desteklenen yetkiler:
  1. Anında Bildirimler apns-environment
  2. Kişisel VPN com.apple.developer.networking.vpn.api
Push bildirimleri

Anında bildirim isteklerini yetkilendirmek için kullanıcılar, Anahtar Kimliği - C7FD9DJAA8 ve Ekip Kimliği - 9CKCGNNUQN ile birlikte özel imzalama anahtarını kullanarak JSON web belirteçleri oluşturabilir. Oluşturulan tokenlar bir saat süreyle geçerli olacak ve her 60 dakikada bir yenilenmeleri gerekecek. APN'lere Token Tabanlı Bağlantı Kurma hakkında daha fazlasını okuyun.

Uygulama grupları

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

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

gcloud beta firebase test ios run komutunu çalıştırın ve çalıştırmayı yapılandırmak için aşağıdaki işaretleri kullanın:

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

Gerekli : Çalıştırmak istediğiniz iOS testinin türünü belirtir. Test türlerini xctest (varsayılan) veya game-loop girebilirsiniz.

--app

Gerekli : Uygulamanızın IPA dosyasının mutlak yolu (GCS veya dosya sistemi). Bu işaret yalnızca Game Loop 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üler 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 numaralı döngüleri çalıştırır.

--device-model

Testinizi çalıştırmak istediğiniz fiziksel cihaz (hangi mevcut cihazları kullanabileceğinizi öğrenin).

--timeout

Testinizin çalışması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 numaralandırma girebilirsiniz.

Örneğin:

  • --timeout=200 testinizi 200 saniyeye kadar çalıştığında sonlandırılmaya zorlar.
  • --timeout=1h testinizi bir saate kadar çalıştığında sonlandırılmaya zorlar.

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

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 belgelere bakın.

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

Test Lab ile gcloud komutlarını komut dosyası oluşturma

Normalde gcloud komut satırını kullanarak çalıştıracağınız mobil uygulama testi komutlarını otomatikleştirmek için kabuk komut dosyalarını veya toplu dosyaları kullanabilirsiniz. Bu örnek bash betiği, iki dakikalık zaman aşımına sahip bir XCTest çalıştırır ve test çalıştırmasının başarıyla tamamlanıp tamamlanmadığını bildirir:

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ını veya toplu iş dosyalarını 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 uygulamaları başarıyla geçti.
1 Genel bir arıza meydana geldi. Olası nedenler arasında şunlar yer alır: mevcut olmayan bir dosya adı veya bir HTTP/ağ hatası.
2 Bilinmeyen komutlar veya bağımsız değişkenler sağlandığı için testten çıkıldı.
10 Bir test yürütmesinde bir veya daha fazla test durumu (test edilen sınıflar veya sınıf yöntemleri) geçemedi.
15 Firebase Test Lab, beklenmeyen bir hata nedeniyle test matrisinin başarılı mı yoksa başarısız mı olduğunu belirleyemedi.
19 Test matrisi kullanıcı tarafından iptal edildi.
20 Bir test altyapısı hatası oluştu.

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

Test başladığında Test Sonuçları sayfasına giden bir bağlantı alırsınız. 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 testlerin yürütülmesi birkaç dakika sürebilir. Testleriniz çalıştırıldıktan sonra test sonuçlarını inceleyebilirsiniz. Test sonuçlarınızı nasıl yorumlayacağınız hakkında daha fazla bilgi edinmek için Firebase Test Laboratuvarı Sonuçlarını Analiz Etme bölümüne bakın.

Sonraki adım

Genel olarak kullanılabilen veya beta sürümdeki test seçeneklerini keşfetmek için Google Cloud SDK belgelerini okuyun.