Bu kılavuzda, gcloud CLI 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
- Google Cloud SDK'yı indirin.
- Yüklemenizin güncel olduğundan ve
gcloud firebasekomutunu içerdiğinden emin olun:gcloud components update - Google Hesabınızı kullanarak gcloud CLI'ya giriş yapın:
gcloud auth login - gcloud'da Firebase projenizi ayarlayın. PROJECT_ID, Firebase projenizin kimliğidir:
gcloud config set project PROJECT_ID
gcloud CLI aracı da buna dahildir.
2. adım: Testinizi çalıştırın
XCTest çalıştırma
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
Test boyutlarınızı seçin.
Test Lab, çeşitli iOS sürümleri, cihazlar, ekran yönleri ve yerel ayarlarda test çalıştırmanıza olanak tanır. Bu yapılandırmalar, testin test boyutları olarak bilinir. Her bir boyutun seçeneklerini (ör. cihazın iOS sürümü için desteklenen Xcode sürümleri) görmek istiyorsanız aşağıdaki komutta
dimensionyerinemodels,versionsveyalocalesyazın:gcloud firebase test ios dimension list
Ekran yönlendirme, yalnızca
portraitvelandscapeseçenekleri olduğu için biraz daha basittir.Test boyutları listesine göz atın ve testinizi ç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.
Bir test boyutları grubu seçtikten sonra Test Lab aracının
firebase test ios runkomutunu kullanarak testlerinizi çalıştırmasını sağlayabilirsiniz. Test etmek istediğiniz her test boyutu kombinasyonu için ayrı bir--deviceiş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. Testiniz için desteklenen bir Xcode sürümü belirtmek istiyorsanız
--xcode-versioniş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 aşağıdaki örnekte yer alan
--client-details matrixLabel="<label>"işaretini kullanarak test matrisinizi isteğe bağlı olarak 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 yetkileri test etmek için --test-special-entitlements işaretini ayarlayabilirsiniz. Test Lab
özel yetkileri desteklemek için uygulamayı yeni bir paket kimliğiyle yeniden imzalar. Bu nedenle, ZIP dosyanızda uygulamanın paket kimliğine doğrudan referans veren kaynaklar bulunmadığından emin olun.
- Push bildirimleri
apns-environment - Kişisel VPN
com.apple.developer.networking.vpn.api
Kullanıcılar, push bildirimi isteklerini yetkilendirmek için özel imzalama anahtarını, anahtar kimliği (C7FD9DJAA8) ve ekip kimliği (9CKCGNNUQN) ile birlikte kullanarak JSON web jetonları oluşturabilir. Oluşturulan jetonlar bir saat boyunca geçerli olur ve her 60 dakikada bir yenilenmesi gerekir. APN'lere Jeton Tabanlı Bağlantı Oluşturma hakkında daha fazla bilgi edinin.
Uygulama gruplarıUygulama grubu kimlikleri evrensel olarak benzersizdir. Bu nedenle, kullanıcı uygulamalarını yeniden imzalarken yalnızca Test Lab geliştirici hesabıyla ilişkili uygulama grubu kimliğini kullanabiliriz. Testiniz uygulama gruplarına dayanıyorsa başarısız olur.
Oyun Döngüsü testi çalıştırma
gcloud beta firebase test ios run komutunu çalıştırın ve çalıştırma işlemini yapılandırmak için aşağıdaki işaretleri kullanın:
| Oyun Döngüsü testleri için işaretler | |
|---|---|
--type
|
Zorunlu: Çalıştırmak istediğiniz iOS testinin türünü belirtir. |
--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 (senaryolar). Bir döngü, döngü listesi veya döngü aralığı girebilirsiniz. Varsayılan döngü sayısı 1'dir.
Örneğin, |
--device-model
|
Testinizi çalıştırmak istediğiniz fiziksel cihaz (kullanabileceğiniz cihazları öğ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 sıralama girebilirsiniz. Örneğin:
|
Örneğin, aşağıdaki komut bir iPhone 8 Plus'ta 1, 4, 6, 7 ve 8 numaralı döngüleri çalıştıran bir Oyun Döngüsü testi yürütü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 belgelerine bakın.
3. adım (isteğe bağlı): Oluşturacağınız gelecekteki testleri otomatikleştirin
Test Lab ile gcloud komutları için komut dosyası oluşturma
Normalde gcloud komut satırını kullanarak çalıştıracağınız mobil uygulama test komutlarını otomatikleştirmek için kabuk komut dosyalarını veya toplu iş dosyalarını kullanabilirsiniz. Bu örnek bash komut dosyası, iki dakikalık zaman aşımıyla 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ı veya toplu iş 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 arasında mevcut olmayan bir dosya adı veya HTTP/ağ hatası yer alır. |
| 2 | Bilinmeyen komutlar veya bağımsız değişkenler sağlandığı için testten çıkıldı. |
| 10 | Bir test işlemi içindeki bir veya daha fazla test durumu (test edilen sınıflar veya sınıf yöntemleri) başarısız oldu. |
| 15 | Beklenmeyen bir hata nedeniyle Firebase Test Lab, test matrisinin başarılı olup olmadığını 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ının bağlantısını 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 ç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 Lab Sonuçlarını Analiz Etme bölümüne bakın.
Sonraki adım
Genel kullanıma sunulan veya beta sürümündeki test seçeneklerini incelemek için Google Cloud SDK belgelerini okuyun.