Google Cloud KSA ile test etme

Bu kılavuzda, gcloud KSA'yı kullanarak XCTest veya Oyun Döngüsü 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 komutunu içerdiğinden emin olun:
          gcloud components update
  4. Google Hesabınızı kullanarak gcloud KSA'ya giriş yapı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

XCTest çalıştırma

  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ümleri, cihazlar, ekran yönleri ve yerel ayarlarda testler çalıştırmanızı sağlar. Bu yapılandırmalar, testin test boyutları olarak bilinir. Her bir boyuta ilişkin seçenekleri (ör. cihazın iOS sürümü için desteklenen Xcode sürümleri) görmek amacıyla aşağıdaki komutta models, versions veya locales yerine dimension kullanın:

    gcloud firebase test ios dimension list

    Yalnızca portrait ve landscape seçenekleri olduğu için ekran yönü biraz daha basit.

    Test boyutları listesine göz atın ve testinizi çalıştırmak istediğiniz birkaç kombinasyon seçin. Günlük olarak çalıştırabileceğiniz maksimum kombinasyon sayısını görmek için Fiyatlandırma Planları sayfasını ziyaret edin.

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

    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 testiniz başarısız olabilir. 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

    Firebase konsolunda test matrislerinizi tanımlamanıza 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 Yararlanma Hakları'nı Test Etme

Açık bir uygulama kimliği gerektiren yararlanma haklarını test etmek için --test-special-entitlements işaretini ayarlayarak bunu yapabilirsiniz. Test Lab, özel yararlanma haklarını 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 herhangi bir kaynak bulunmadığından emin olun.

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

Kullanıcılar, push bildirimi isteklerini yetkilendirmek için özel imzalama anahtarını C7FD9DJAA8 Anahtar Kimliği ve 9CKCGNNUQN Ekip Kimliği ile birlikte kullanarak JSON web jetonları oluşturabilir. Oluşturulan jetonlar bir saat boyunca geçerli olur ve 60 dakikada bir yenilenmesi gerekir. Daha fazla bilgi için APN'lere 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şkilendirilmiş 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

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şaretleri
--type

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

--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ü, liste veya döngü ya da 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 kullanılabilir cihazları kullanabileceğinizi öğrenin).

--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 numaralandırma girebilirsiniz.

Örnek:

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

Örneğin, aşağıdaki komut, iPhone 8 Plus'ta 1, 4, 6, 7 ve 8 döngülerini 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 KSA hakkında daha fazla bilgi edinmek için referans belgelerine 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ı çalıştırma

Normalde gcloud komut satırını kullanarak çalıştırabileceğiniz mobil uygulama test komutlarını otomatikleştirmek için kabuk komut dosyalarını veya toplu dosyaları kullanabilirsiniz. Bu örnek bash komut dosyası, iki dakikalık zaman aşımıyla bir XCTest çalıştırır ve test çalıştırmanı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 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. Bunun olası nedenleri şunlardı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ütmesindeki bir veya daha fazla test durumu (test edilen sınıf 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 Test altyapısı hatası oluştu.

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

Test başladığında Test Sonuçları sayfasına bir bağlantı alırsınız. Testlerin çalıştırılması, seçtiğiniz farklı yapılandırmaların sayısına ve testleriniz için ayarladığınız 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. Test sonuçlarınızı nasıl yorumlayacağınız hakkında daha fazla bilgi edinmek için Firebase Test Lab Sonuçlarını Analiz Etme bölümüne bakın.

Sonraki adım

Genel kullanıma sunulan veya beta test seçeneklerini keşfetmek için Google Cloud SDK belgelerini okuyun.