Menguji dengan Google Cloud CLI

Panduan ini menjelaskan cara menjalankan XCTest atau pengujian Game Loop menggunakan gcloud CLI.

Langkah 1: Konfigurasikan lingkungan Google Cloud SDK lokal

  1. Download Google Cloud SDK.
  2. Ini mencakup alat CLI gcloud.

  3. Pastikan penginstalan Anda adalah yang terbaru dan menyertakan perintah gcloud firebase:
          gcloud components update
  4. Login ke gcloud CLI menggunakan Akun Google Anda:
          gcloud auth login
  5. Tetapkan project Firebase Anda di gcloud, dengan PROJECT_ID sebagai ID project Firebase Anda:
         gcloud config set project PROJECT_ID

Langkah 2: Jalankan pengujian Anda

Menjalankan XCTest

  1. 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
  2. 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, atau locales untuk dimension dalam perintah berikut:

    gcloud firebase test ios dimension list

    Orientasi layar agak lebih sederhana, karena satu-satunya pilihannya adalah portrait dan landscape.

    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.

  3. 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.

Hak yang didukung:
  1. apns-environment Notifikasi Push
  2. VPN Pribadi com.apple.developer.networking.vpn.api
Notifikasi Push

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 aplikasi

ID 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 xctest (default) atau game-loop.

--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, --scenario-numbers=1-3,5 menjalankan loop 1, 2, 3, dan 5.

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

  • --timeout=200 memaksa pengujian Anda berakhir setelah berjalan selama 200 detik.
  • --timeout=1h memaksa pengujian Anda berakhir setelah berjalan selama satu jam.

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.