Panduan ini menjelaskan cara menjalankan XCTest atau pengujian Game Loop menggunakan gcloud CLI.
Langkah 1: Konfigurasikan lingkungan Google Cloud SDK lokal
- Download Google Cloud SDK.
- Pastikan penginstalan Anda adalah yang terbaru dan menyertakan perintah
gcloud firebase
:gcloud components update
- Login ke CLI gcloud menggunakan Akun Google Anda:
gcloud auth login
- Tetapkan project Firebase Anda di gcloud, dengan PROJECT_ID sebagai ID project Firebase Anda:
gcloud config set project PROJECT_ID
Ini mencakup alat gcloud CLI.
Langkah 2: Jalankan pengujian Anda
Menjalankan XCTest
Upload file .zip pengujian Anda dengan menjalankan perintah berikut (jika Anda belum mengemas aplikasi, lihat Mengemas XCTest Anda):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Memilih dimensi uji Anda.
Dengan Test Lab, Anda dapat menjalankan pengujian pada berbagai versi iOS, perangkat, orientasi layar, dan lokal. Konfigurasi ini dikenal sebagai dimensi uji pengujian. Guna melihat opsi untuk setiap dimensi (misalnya, versi Xcode yang didukung untuk versi iOS perangkat), ganti
models
,versions
, ataulocales
untukdimension
dalam perintah berikut:gcloud firebase test ios dimension list
Orientasi layar agak lebih sederhana, karena satu-satunya pilihannya adalah
portrait
danlandscape
.Lihat daftar dimensi uji, dan pilih beberapa kombinasi yang ingin Anda gunakan untuk menjalankan pengujian. Buka Paket Harga untuk melihat jumlah kombinasi maksimum yang dapat Anda jalankan per hari.
Setelah memilih serangkaian dimensi uji, Anda dapat meminta Test Lab menjalankan pengujian menggunakan perintah
firebase test ios run
. Untuk setiap kombinasi dimensi uji yang ingin Anda uji, sertakan flag--device
yang terpisah: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...
Ada kemungkinan bahwa pengujian Anda akan gagal, karena versi Xcode yang digunakan untuk pengujian tidak kompatibel dengan versi Xcode default yang digunakan oleh Test Lab. Untuk menentukan versi Xcode yang didukung untuk pengujian Anda, gunakan flag
--xcode-version
: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
Untuk membantu mengidentifikasi dan menemukan matriks uji di Firebase console, Anda dapat memberi label pada matriks uji secara opsional menggunakan flag
--client-details matrixLabel="<label>"
di contoh berikut: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"
Menguji Hak Khusus
Untuk menguji hak yang memerlukan ID Aplikasi eksplisit, Anda dapat melakukannya dengan
menetapkan flag --test-special-entitlements
. Test Lab
menandatangani ulang aplikasi dengan ID paket baru untuk mendukung
hak khusus, jadi pastikan tidak ada resource di file ZIP Anda
yang berisi referensi langsung ke ID paket aplikasi.
apns-environment
Notifikasi Push- VPN Pribadi
com.apple.developer.networking.vpn.api
Untuk mengizinkan permintaan notifikasi push, pengguna dapat membuat token web JSON menggunakan kunci penandatanganan pribadi dengan ID Kunci - C7FD9DJAA8 dan ID Tim - 9CKCGNNUQN. Token yang dibuat akan valid selama satu jam dan perlu diperbarui setiap 60 menit. Baca selengkapnya di bagian Membuat Koneksi Berbasis Token ke APNs.
Grup aplikasiID grup aplikasi bersifat unik secara universal. Artinya, saat kami menandatangani ulang aplikasi pengguna, kami hanya dapat menggunakan ID grup aplikasi yang terkait dengan akun developer Test Lab. Jika pengujian Anda bergantung pada grup aplikasi, pengujian Anda akan gagal.
Menjalankan uji Game Loop
Jalankan perintah gcloud beta firebase test ios run
dan gunakan flag berikut untuk mengonfigurasi eksekusinya:
Flag untuk pengujian Game Loop | |
---|---|
--type
|
Wajib: Menentukan jenis pengujian iOS yang ingin dijalankan. Anda dapat memasukkan jenis pengujian |
--app
|
Wajib: Jalur absolut (GCS atau sistem file) ke file IPA aplikasi Anda. Flag ini hanya valid saat menjalankan uji Game Loop. |
--scenario-numbers
|
Loop (alias skenario) yang ingin dijalankan di aplikasi Anda. Anda dapat memasukkan satu loop, daftar atau beberapa loop, atau suatu rentang loop. Loop default adalah 1.
Misalnya, |
--device-model
|
Perangkat fisik tempat Anda ingin menjalankan pengujian (cari tahu perangkat yang tersedia yang dapat digunakan). |
--timeout
|
Durasi maksimum yang Anda inginkan untuk menjalankan pengujian. Anda dapat memasukkan bilangan bulat untuk mewakili durasi dalam detik, atau bilangan bulat dan enumerasi untuk mewakili durasi sebagai satuan waktu yang lebih lama. Contoh:
|
Misalnya, perintah berikut menjalankan pengujian Game Loop yang mengeksekusi loop 1, 4, 6, 7, dan 8 di iPhone 8 Plus:
gcloud beta firebase test ios run --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8 --device-model=iphone8plus
Untuk mengetahui informasi lebih lanjut terkait gcloud CLI, baca dokumentasi referensi.
Langkah 3 (Opsional): Otomatiskan pengujian mendatang yang Anda build
Membuat skrip perintah gcloud dengan Test Lab
Anda dapat menggunakan skrip shell atau file batch untuk mengotomatiskan perintah pengujian aplikasi seluler yang juga dapat Anda jalankan dengan command line gcloud. Contoh skrip bash ini menjalankan XCTest dengan waktu tunggu 2 menit dan melaporkan bahwa pengujian berjalan dengan sukses:
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
Membuat skrip exit code
Test Lab menyediakan beberapa exit code yang dapat Anda gunakan agar lebih memahami hasil pengujian yang dijalankan menggunakan skrip atau file batch.
Exit code | Catatan |
---|---|
0 | Semua eksekusi uji lulus. |
1 | Terjadi kesalahan umum. Kemungkinan penyebab: nama file tidak ada atau error pada HTTP/jaringan. |
2 | Keluar dari pengujian karena ada perintah atau argumen yang tidak dikenal. |
10 | Satu atau beberapa kasus pengujian (class atau metode class yang diuji) dalam eksekusi uji tidak lulus. |
15 | Firebase Test Lab tidak bisa menentukan apakah matriks uji lulus atau gagal, karena terjadi error yang tidak terduga. |
19 | Matriks uji dibatalkan oleh pengguna. |
20 | Terjadi error pada infrastruktur pengujian. |
Langkah 4: Selidiki hasil pengujian
Saat pengujian dimulai, Anda menerima link ke halaman Test Results. Pengujian dapat memakan waktu beberapa menit, tergantung pada jumlah konfigurasi yang berbeda yang telah Anda pilih dan durasi batas waktu pengujian yang ditetapkan. Setelah pengujian berjalan, Anda dapat meninjau hasil pengujian. Baca bagian Menganalisis Hasil Firebase Test Lab untuk mempelajari lebih lanjut cara menafsirkan hasil pengujian.
Langkah berikutnya
Baca dokumentasi Google Cloud SDK untuk mempelajari opsi pengujian yang tersedia secara umum atau dalam versi beta.