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
- Google Cloud SDK'yı indirin.
- Yüklemenizin güncel olduğundan ve
gcloud firebase
komutunu içerdiğinden emin olun:gcloud components update
- Google Hesabınızı kullanarak gcloud CLI'ye giriş yapın:
gcloud auth login
- Firebase projenizi gcloud'da ayarlayın. Burada PROJECT_ID, Firebase projenizin kimliğidir:
gcloud config set project PROJECT_ID
Buna gcloud CLI aracı 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 başlıklı makaleye 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ümlerinde, cihazlarda, ekran yönlerinde ve yerel ayarlarda testler çalıştırmanıza olanak tanır. Bu yapılandırmalar, testin test boyutları olarak bilinir. Her bir boyutla ilgili seçenekleri (ör. cihazın iOS sürümü için desteklenen Xcode sürümleri) görmek üzere aşağıdaki komutta
models
,versions
veyalocales
yerinedimension
yazın:gcloud firebase test ios dimension list
Ekran yönü biraz daha basittir. Yalnızca
portrait
velandscape
seçenekleri vardır.Test boyutları listesine göz atın ve testinizi çalıştırmak istediğiniz birkaç kombinasyonu 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.
Bir dizi test boyutu seçtikten sonra Test Lab komutunu kullanarak testlerinizi
firebase test ios run
çalıştırabilirsiniz. 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...
Testinizin, testi oluşturmak için kullanılan Xcode sürümü ile Test Lab tarafından kullanılan varsayılan Xcode sürümü arasındaki uyumsuzluk nedeniyle 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=15
Test matrislerinizi Firebase konsolunda tanımlayıp bulmanıza yardımcı olmak için test matrisinizi aşağıdaki örnekteki
--client-details matrixLabel="<label>"
işaretini kullanarak 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 Hakları Test Etme
Açık bir uygulama kimliği gerektiren hakları test etmek için --test-special-entitlements
işaretini ayarlayabilirsiniz. Test Lab
Uygulamayı, özel hakları desteklemek için yeni bir paket kimliğiyle yeniden imzalar. Bu nedenle, zip dosyanızda uygulamanın paket kimliğine doğrudan referans veren kaynaklar olmadığından emin olun.
- Push Bildirimleri
apns-environment
- Kişisel VPN
com.apple.developer.networking.vpn.api
Kullanıcılar, anlık bildirim isteklerini yetkilendirmek için özel imzalama anahtarı, anahtar kimliği (C7FD9DJAA8) ve takım kimliği (9CKCGNNUQN) ile birlikte JSON web jetonları oluşturabilir. Oluşturulan jetonlar bir saat boyunca geçerli olur ve her 60 dakikada bir yenilenmesi gerekir. APNs ile 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 bağlıysa testiniz 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ırmayı yapılandırmak için aşağıdaki işaretleri kullanın:
Oyun Döngüsü testleriyle ilgili işaretler | |
---|---|
--type
|
Zorunlu: Çalıştırmak istediğiniz iOS testi türünü belirtir. |
--app
|
Zorunlu: Uygulamanızın IPA dosyasına giden mutlak yol (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). Tek bir döngü, döngü listesi veya döngü aralığı girebilirsiniz. Varsayılan döngü sayısı 1'dir.
Örneğin, |
--device-model
|
Testinizi üzerinde çalıştırmak istediğiniz fiziksel cihaz (kullanabileceğiniz mevcut cihazları öğrenin). |
--timeout
|
Testinizin çalıştırılmasını istediğiniz maksimum süre. Süreyi saniye cinsinden ifade etmek için bir tam sayı veya süreyi daha uzun bir zaman birimi olarak ifade etmek için bir tam sayı ve numaralandırma girebilirsiniz. Örneğin:
|
Örneğin, aşağıdaki komut bir 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 CLI hakkında daha fazla bilgi için referans belgelerine bakın.
3. adım (isteğe bağlı): Gelecekte oluşturacağınız testleri otomatikleştirin
Test Lab ile gcloud komutlarını komut dosyasından çalıştırma
Aksi takdirde 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 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 yürütme işlemindeki bir veya daha fazla test durumu (test edilen sınıflar veya sınıf yöntemleri) başarılı olmadı. |
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. Testlerin çalışması, 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. 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 aşamasındaki test seçeneklerini keşfetmek için Google Cloud SDK belgelerini okuyun.