了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Google Cloud CLI ile test edin

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

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

  1. Google Cloud SDK'yı indirin.
  2. Bu, gcloud CLI aracını içerir.

  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 CLI'da 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 XCTest'inizi Paketleme bölümüne bakın):

    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, ekran yönlerinde ve yerel ayarlarda testler yapmanıza olanak tanır. Bu yapılandırmalar, testin test boyutları olarak bilinir. Her boyutun seçeneklerini görmek için (örneğin, aygıtın iOS sürümü için desteklenen Xcode sürümleri), aşağıdaki komutta dimension yerine models , versions veya locales değiştirin:

    gcloud firebase test ios dimension list

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

    Test boyutları listesine bakın ve testinizi üzerinde çalıştırmak istediğiniz birkaç kombinasyon 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 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=11.3

    Test matrislerinizi Firebase konsolunda belirlemenize ve bulmanıza yardımcı olması için, isteğe bağlı olarak aşağıdaki örnekte --client-details matrixLabel="<label>" işaretini kullanarak test matrisinizi 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 kimliğine doğrudan referanslar içeren hiçbir kaynak olmadığından lütfen emin olun.

Push bildirimleri

Push 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. Üretilen jetonlar bir saat boyunca geçerli olacak ve her 60 dakikada bir yenilenmesi gerekecek. APN'lere Belirteç Tabanlı Bağlantı Kurma hakkında daha fazla bilgi edinin.

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.

Game Loop 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:

Game Loop testleri için işaretler
--type

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

--app

Gerekli : Uygulamanızın IPA dosyasına giden mutlak yol (GCS veya dosya sistemi). Bu işaret yalnızca Game Loop testleri yapılırken geçerlidir.

--scenario-numbers

Uygulamanızda çalıştırmak istediğiniz döngüler (aka senaryolar). Bir döngü, bir liste veya döngüler ya da bir dizi döngü 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 kullanılabilir cihazları kullanabileceğinizi öğrenin).

--timeout

Testinizin çalışmasını istediğiniz maksimum süre. Süreyi saniye cinsinden temsil etmek için bir tamsayı veya süreyi daha uzun bir zaman birimi olarak temsil etmek için bir tamsayı ve numaralandırma girebilirsiniz.

Örneğin:

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

Örneğin, aşağıdaki komut bir 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ı) : Oluşturduğunuz gelecekteki testleri otomatikleştirin

Test Lab ile gcloud komutları oluşturma

Normalde gcloud komut satırını kullanarak çalıştıracağınız mobil uygulama testi komutlarını otomatikleştirmek için kabuk betiklerini veya toplu iş dosyalarını kullanabilirsiniz. Bu örnek bash betiği, iki dakikalık bir zaman aşımı ile bir XCTest çalıştırır ve test çalışması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, betikleri veya toplu iş dosyalarını kullanarak çalıştırdığınız testlerin sonuçlarını daha iyi anlamak için kullanabileceğiniz birkaç çıkış kodu sağlar.

Çıkış kodu notlar
0 Tüm test yürütmeleri geçti.
1 Genel bir arıza oluştu. Olası nedenler şunlardır: var 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ütmesindeki 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ı olup olmadığını belirleyemedi.
19 Test matrisi kullanıcı tarafından iptal edildi.
20 Bir test altyapısı hatası oluştu.

Adım 4 : Test sonuçlarını araştırın

Test başladığında, Test Sonuçları sayfasına bir bağlantı alırsınız. Seçtiğiniz farklı konfigürasyonların sayısına ve testleriniz için ayarlanan test zaman aşımı süresine bağlı olarak testlerin çalıştırılması 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 kullanıma sunulan veya beta sürümünde olan test seçeneklerini keşfetmek için Google Cloud SDK belgelerini okuyun.