Jalankan Perangkat Developer Device Platform untuk iOS

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:

  1. Membuat Google Cloud project.
  2. Siapkan Developer Device Platform dengan mengikuti Panduan memulai cepat.
  3. Diautentikasi dengan gcloud di terminal.
  4. Meninjau Ringkasan eksekusi perangkat untuk mengetahui informasi umum.
  5. 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:

  1. Pastikan penandatanganan kode dikonfigurasi dengan benar di Xcode (menentukan profil penyediaan dan identitas developer yang valid) untuk target aplikasi dan target pelaksana pengujian.
  2. 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:

  1. Verifikasi app bundle:

    codesign --verify --deep --verbose ./build/Build/Products/Debug-iphoneos/YourApp.app
    

    Output yang diharapkan: YourApp.app: valid on disk

  2. Jika menjalankan XCUITest, verifikasi juga paket runner pengujian:

    codesign --verify --deep --verbose ./build/Build/Products/Debug-iphoneos/YourApp-Runner.app
    

    Output 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 --device beberapa kali untuk menjalankan pengujian yang sama di beberapa perangkat secara bersamaan: --device iphonese3-18-4 --device iphonese3-26-3 atau --device iphonese3-18-4,iphonese3-26-3
  • Aplikasi tambahan: Instal satu atau beberapa paket .ipa tambahan sebelum meluncurkan pengujian menggunakan --additional-apps: --additional-apps=/path/to/AdditionalApp.ipa
  • File .xctestrun kustom: 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 adalah 1m hingga 1h dan defaultnya adalah 5m).
  • 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 default PROJECT_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_ID Tambahkan --full untuk 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.