Panduan ini menjelaskan cara menjalankan XCTest iOS menggunakan gcloud beta
device-run CLI dan menemukan hasil di Google Cloud console. Panduan ini mengasumsikan bahwa Anda memiliki akun dan project Google Cloud .
Untuk menggunakan CLI device-run, Anda harus memberikan project ID Google Cloud
Anda. Lihat gcloud beta device-run untuk mengetahui ringkasan perintah.
Sebelum memulai
Langkah-langkah ini mengasumsikan bahwa Anda telah:
- Membuat Google Cloud project.
- Siapkan Developer Device Platform dengan mengikuti Panduan memulai cepat.
- Diautentikasi dengan
gclouddi terminal. - Meninjau Ringkasan eksekusi perangkat untuk mengetahui informasi umum.
- Mengompilasi pengujian dan mengemasnya ke dalam ZIP.
Langkah 1. Pilih jenis perangkat
Dengan menggunakan device-run CLI, pengujian iOS dapat dijalankan di seluruh perangkat fisik yang tersedia. Untuk melihat daftar lengkap perangkat yang tersedia, buka Katalog Perangkat interaktif atau jalankan:
gcloud beta device-run devices list
Contoh output:
ID MAKE NAME MODEL HARDWARE_TYPE OS_VERSION CAPACITY AVAILABILITY PRODUCTS
iphonese3-18-4 Apple iPhone SE 3 iphonese3 PHYSICAL 18.4 NONE NONE Automation
iphonese3-26-3 Apple iPhone SE 3 iphonese3 PHYSICAL 26.3 NONE NONE Automation
Lihat Katalog Perangkat untuk mempelajari cara memfilter daftar ini. Untuk menargetkan perangkat tertentu untuk eksekusi uji, gunakan
ID yang sesuai (mis. iphonese3-18-4) dalam perintah pengiriman.
Langkah 2. Menyiapkan dan mengemas XCTest
Sebelum menjalankan pengujian, Anda harus mengompilasinya, memastikan pengujian ditandatangani, memverifikasi tanda tangan kode, dan mengemas artefak yang dihasilkan ke dalam file ZIP yang berisi konfigurasi .xctestrun dan paket pengujian aplikasi.
1. Membangun pengujian untuk perangkat iOS fisik
Buka project Anda di Xcode, lalu bangun aplikasi dan target pengujian untuk pengujian:
- Pastikan penandatanganan kode dikonfigurasi dengan benar di Xcode (menentukan profil penyediaan dan identitas developer yang valid) untuk target aplikasi dan target pelaksana pengujian.
Bangun untuk pengujian menggunakan Xcode (Product > Build For > Testing) atau dengan
xcodebuild.Untuk ruang kerja:
xcodebuild build-for-testing \ -workspace YourProject.xcworkspace \ -scheme YourScheme \ -derivedDataPath ./build \ -destination "generic/platform=iOS"Untuk project mandiri:
xcodebuild build-for-testing \ -project YourProject.xcodeproj \ -scheme YourScheme \ -derivedDataPath ./build \ -destination "generic/platform=iOS"
Tindakan ini akan menghasilkan produk build di: ./build/Build/Products
2. Memverifikasi produk dan tanda tangan build
Setelah membangun, verifikasi bahwa aplikasi, runner, dan manifes .xctestrun
dibuat di ./build/Build/Products/. Jika ditandatangani secara lokal, Anda dapat memverifikasi tanda tangan bundle menggunakan codesign:
Verifikasi app bundle:
codesign --verify --deep --verbose ./build/Build/Products/Debug-iphoneos/YourApp.appOutput yang diharapkan:
YourApp.app: valid on diskJika menjalankan XCUITest, verifikasi juga paket runner pengujian:
codesign --verify --deep --verbose ./build/Build/Products/Debug-iphoneos/YourApp-Runner.appOutput yang diharapkan:
YourApp-Runner.app: valid on disk
3. Buat arsip ZIP
Kompresi direktori Debug-iphoneos dan file .xctestrun yang berada
di folder produk output build menjadi satu arsip ZIP.
Jalankan perintah berikut dari direktori produk build:
cd ./build/Build/Products
zip -r MyTests.zip Debug-iphoneos *.xctestrun
Tindakan ini akan membuat MyTests.zip yang dikemas dan siap digunakan dengan
flag --test.
Langkah 3. Menjalankan XCTest
Perhatikan bahwa flag ini diperlukan:
- Perangkat: Tentukan perangkat menggunakan
--device:--device iphonese3-18-4 - Test: Menentukan file ZIP pengujian menggunakan
--test:--test ./MyTests.zip
Untuk menjalankan XCTest, gunakan perintah gcloud beta device-run sessions submit xctest. Anda harus memberikan file zip pengujian (MyTests.zip) yang dikompilasi di
langkah sebelumnya.
Untuk menjalankan sesi pengujian dasar:
gcloud beta device-run sessions submit xctest \
--device iphonese3-18-4 \
--test ./MyTests.zip
Saat eksekusi dimulai, CLI akan menampilkan ID Sesi yang dibuat dan tujuan Cloud Storage tempat hasil akan disimpan:
Creating session [session-ee78b0ed] in location [global].
Result files will be stored at [https://console.cloud.google.com/storage/browser/BUCKET_NAME/automation/sessions/session-ee78b0ed/].
Waiting for session [session-ee78b0ed] to complete....
Langkah 4. Mengonfigurasi pengujian
Anda dapat menyesuaikan eksekusi uji menggunakan tanda opsional berikut
(meskipun setidaknya satu instance tanda --device diperlukan):
- Beberapa perangkat: Tentukan tanda
--devicebeberapa kali untuk menjalankan pengujian yang sama di beberapa perangkat secara bersamaan:--device iphonese3-18-4 --device iphonese3-26-3atau--device iphonese3-18-4,iphonese3-26-3 - Aplikasi tambahan: Instal satu atau beberapa paket
.ipatambahan sebelum meluncurkan pengujian menggunakan--additional-apps:--additional-apps=/path/to/AdditionalApp.ipa - File
.xctestrunkustom: Teruskan file konfigurasi kustom dengan--xctestrun-file:--xctestrun-file=/path/to/CustomTests.xctestrun - Waktu tunggu pengujian: Batasi durasi eksekusi:
--xctest-timeout=10m(Rentang yang valid adalah1mhingga1hdan defaultnya adalah5m). - Label: Lampirkan metadata yang ditentukan pengguna ke sesi:
--labels=env=staging,owner=my-team - Mendorong file ke perangkat: Mendorong file ke penampung data aplikasi sebelum eksekusi pengujian:
--other-files-to-push=/tmp/data.txt=com.example.app:/Documents/data.txt - Tarik file dari perangkat: Tarik file dari penampung data aplikasi setelah eksekusi
pengujian:
--paths-to-pull=com.example.app:/Documents/output.txt - Upaya coba ulang uji tidak stabil: Tetapkan jumlah maksimum upaya untuk menjalankan ulang uji tidak stabil:
--flaky-test-attempts=3(Defaultnya adalah 1 upaya). - Bucket Cloud Storage kustom: Tentukan bucket Cloud Storage kustom
untuk input dan output:
--bucket-name=my-custom-bucket(Secara defaultPROJECT_ID-devicerun). - Karena mengupload file ZIP atau IPA berukuran besar dapat memakan waktu, Anda dapat
merujuk langsung file menggunakan jalur
gs://Cloud Storage untuk menghemat waktu upload.
Langkah 5. Menjelajahi dan mengelola proses pengujian
Anda dapat melacak operasi aktif dan mengelola sesi historis menggunakan perintah berikut:
- Describe session: Buat kueri progres langsung atau hasil akhir sesi:
gcloud beta device-run sessions describe SESSION_IDTambahkan--fulluntuk melihat detail lengkap termasuk alokasi perangkat, ID eksekusi, dan jalur artefak Cloud Storage. - List sessions: Melihat proses terbaru Anda:
gcloud beta device-run sessions list --limit=10 - Batalkan sesi: Menghentikan sesi pengujian yang sedang berjalan:
gcloud beta device-run sessions cancel SESSION_ID - Membatalkan operasi: Menghentikan operasi yang tertunda atau aktif:
gcloud beta device-run operations cancel OPERATION_ID
Langkah berikutnya
Selanjutnya, temukan dan analisis log.