Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengintegrasikan UI XCTest untuk iOS dengan Device Farm
Device Farm menyediakan dukungan untuk kerangka pengujian UI XCTest. Secara khusus, Device Farm mendukung pengujian UI XCTest yang ditulis dalam keduanya Objective-C dan Swift
Kerangka kerja UI XCTest memungkinkan pengujian UI dalam pengembangan iOS, dibangun di atas XCTest. Untuk informasi selengkapnya, lihat Pengujian Antarmuka
Untuk informasi umum tentang pengujian di Device Farm, lihatMenguji kerangka kerja dan pengujian bawaan di AWS Device Farm.
Gunakan petunjuk berikut untuk mengintegrasikan Device Farm dengan kerangka pengujian UI XCTest untuk iOS.
Topik
Siapkan tes UI iOS XCTest Anda
Anda dapat mengunggah .ipa file atau .zip file untuk paket pengujian XCTEST_UI Anda.
.ipaFile adalah arsip aplikasi yang berisi aplikasi iOS Runner dalam format bundel. File tambahan tidak dapat disertakan di dalam .ipa file.
Jika Anda mengunggah .zip file, itu dapat berisi aplikasi iOS Runner secara langsung atau .ipa file. Anda juga dapat menyertakan file lain dalam .zip file jika Anda ingin menggunakannya selama pengujian. Misalnya Anda dapat menyertakan file seperti.xctestrun, .xcworkspace atau .xcodeproj di dalam .zip file untuk menjalankan Rencana Uji XCUI di farm perangkat. Instruksi terperinci tentang cara menjalankan Rencana Uji tersedia dalam file spesifikasi pengujian default untuk jenis Uji XCUI.
Opsi 1: Membuat paket XCTest UI .ipa
AppNameUITest-Runner.app Bundel Anda diproduksi oleh Xcode ketika Anda membangun proyek Anda untuk pengujian. Hal ini dapat ditemukan di direktori Produk untuk proyek Anda.
Untuk membuat file.ipa:
-
Buat direktori bernama
Payload. -
Tambahkan direktori aplikasi Anda ke direktori Payload.
-
Arsipkan direktori Payload ke dalam
.zipfile dan kemudian ubah ekstensi file menjadi.ipa.
Struktur folder berikut menunjukkan bagaimana contoh aplikasi bernama my-project-nameUITest-Runner.app akan dikemas sebagai .ipa file:
. └── my-project-nameUITest.ipa └── Payload (directory) └── my-project-nameUITest-Runner.app
Opsi 2: Membuat paket XCTest UI .zip
Device Farm secara otomatis menghasilkan .xctestrun file untuk Anda untuk menjalankan rangkaian pengujian UI XCTest lengkap Anda. Jika Anda ingin menggunakan .xctestrun file Anda sendiri di Device Farm, Anda dapat mengompres .xctestrun file dan direktori aplikasi Anda menjadi .zip file. Jika Anda sudah memiliki .ipa file untuk paket pengujian Anda, Anda dapat memasukkannya di sini sebagai gantinya*-Runner.app.
. └── swift-sample-UI.zip (directory) ├── my-project-nameUITest-Runner.app [OR] my-project-nameUITest.ipa ├── SampleTestPlan_2.xctestrun ├── SampleTestPlan_1.xctestrun └── (any other files)
Jika Anda ingin menjalankan rencana pengujian Xcode untuk pengujian XCUI Anda di Device Farm, Anda dapat membuat zip yang berisi file my-project-name UITest-Runner.app atau my-project-name dan UITest.ipa file kode sumber xcode yang diperlukan untuk menjalankan XCTEST_UI dengan rencana pengujian, termasuk file atau. .xcworkspace .xcodeproj
Berikut adalah contoh zip menggunakan .xcodeproj file:
. └── swift-sample-UI.zip (directory) ├── my-project-nameUITest-Runner.app [OR] my-project-nameUITest.ipa ├── (any directory) └──SampleXcodeProject.xcodeproj├── Testplan_1.xctestplan ├── Testplan_2.xctestplan └── (any other source code files created by xcode with .xcodeproj)
Berikut adalah contoh zip menggunakan .xcworkspace file:
. └──swift-sample-UI.zip (directory) ├── my-project-nameUITest-Runner.app [OR] my-project-nameUITest.ipa └── (any directory) │ ├── SampleXcodeProject.xcodeproj │ ├── Testplan_1.xctestplan │ ├── Testplan_2.xctestplan | └── (any other source code files created by xcode with .xcodeproj) └──SampleWorkspace.xcworkspace└── contents.xcworkspacedata
catatan
Harap pastikan bahwa Anda tidak memiliki direktori bernama “Payload” di dalam paket XCTest UI .zip Anda.
Jalankan pengujian UI iOS XCTest (konsol)
Gunakan konsol Device Farm untuk mengunggah pengujian Anda.
Masuk ke konsol Device Farm di https://console.aws.amazon.com/devicefarm
. -
Di panel navigasi, pilih Pengujian Perangkat Sel uler, lalu pilih Proyek.
-
Dalam daftar proyek, pilih proyek yang ingin Anda unggah pengujian.
Tip
Anda dapat menggunakan bilah pencarian untuk memfilter daftar proyek berdasarkan nama.
Untuk membuat proyek, ikuti instruksi di Membuat proyek di AWS Device Farm
-
Pilih Buat lari.
-
Di bawah Pilih aplikasi dan jenis jalankan, di bagian Jalankan jenis, pilih aplikasi iOS.
-
Di bagian Pilih aplikasi, di Opsi pemilihan aplikasi, pilih Unggah aplikasi sendiri. Kemudian, pilih Pilih file di bawah Unggah aplikasi.
-
Jelajahi dan pilih file aplikasi iOS Anda. File harus berkas.ipa.
catatan
Pastikan file.ipa dibuat untuk perangkat iOS dan bukan untuk simulator.
-
Di bawah Konfigurasi pengujian, di bagian Pilih kerangka pengujian, pilih XCTest UI. Kemudian, pilih Pilih file di bawah Unggah aplikasi.
-
Jelajahi dan pilih file.ipa atau.zip yang berisi pelari uji UI iOS XCTest Anda.
-
(Opsional) Untuk mengkonfigurasi properti run-level, perbarui bagian J alankan pengaturan:
-
Agar Device Farm membuat laporan Wawasan Pengujian setelah proses selesai, aktifkan Buat laporan pengujian. Opsi ini hanya tersedia di lingkungan pengujian khusus.
Prasyarat berikut berlaku:
-
Pengujian Anda harus menghasilkan
.xcresultbundel Xcode dan menuliskannya ke$DEVICEFARM_DERIVED_DATA_PATH. Misalnya, lewati-derivedDataPath $DEVICEFARM_DERIVED_DATA_PATHkexcodebuild. Spesifikasi pengujian UI XCTest default menghasilkan dan menyimpan bundel ini secara otomatis jika Anda mempertahankan konfigurasi default.
Untuk informasi selengkapnya tentang melihat laporan Anda, lihatMelihat laporan pengujian (konsol).
-
-
-
Selesaikan langkah-langkah yang tersisa dalam proses pembuatan jalankan. Pilih perangkat yang ingin Anda uji dan tentukan konfigurasi tambahan secara opsional.
-
Pilih Buat lari. Device Farm menjalankan pengujian Anda dan menunjukkan hasilnya di konsol.
Melihat laporan pengujian (konsol)
Masuk ke konsol Device Farm di https://console.aws.amazon.com/devicefarm
. -
Di panel navigasi, pilih Pengujian Perangkat Sel uler, lalu pilih Proyek.
-
Pilih proyek yang berisi proses yang ingin Anda periksa.
-
Pilih proses yang telah selesai untuk membuka detailnya.
-
Pilih salah satu pekerjaan yang telah selesai untuk membuka hasil untuk perangkat tersebut.
Dengan wawasan pengujian diaktifkan
Hasil pekerjaan termasuk tab Laporan uji. Pilih untuk melihat ringkasan hasil pengujian, termasuk jumlah total tes, berapa banyak yang lulus dan gagal, total waktu eksekusi pengujian, dan waktu eksekusi pengujian median. Di bawah ringkasan, tabel Tes menunjukkan rincian per tes.
Setiap baris dalam tabel Tes mencakup kolom berikut:
-
Hasil — apakah tes lulus, gagal, atau dilewati.
-
Kelas uji — kelas tempat tes tersebut berada.
-
Nama uji — nama metode pengujian.
-
Trace tumpukan — untuk pengujian yang gagal, tautan ke jejak tumpukan kegagalan.
-
Durasi — berapa lama waktu yang dibutuhkan tes untuk dijalankan.
-
Waktu mulai dan Waktu akhir - saat tes dimulai dan berakhir.
-
Hasil kerangka kerja — string hasil yang dilaporkan kerangka kerja XCTest untuk pengujian.
-
Paket uji — bundel uji yang dimiliki pengujian.
-
Pengidentifikasi simpul — pengenal simpul xcresult untuk kasus uji.
Anda dapat mencari tes berdasarkan nama, kelas, atau status. Untuk memilih kolom mana yang muncul, pilih ikon Pengaturan. Dalam pengaturan, Anda dapat memilih kolom untuk ditampilkan dan mengaktifkan atau menonaktifkan Grup berdasarkan kelas. Kelompokkan berdasarkan kelas aktif secara default, yang mengelompokkan tes berdasarkan kelas pengujian mereka. Perluas kelas untuk melihat pengujian individualnya, seperti yang ditunjukkan pada tangkapan layar berikut.
Untuk mengunduh laporan pengujian lengkap sebagai file JSON, pilih Unduh ringkasan lengkap di bagian atas detail pekerjaan.
Tanpa wawasan pengujian diaktifkan
Hasil pekerjaan menunjukkan output pengujian standar dan artefak, seperti tab Suite, Log, dan Screenshot, tetapi tidak ada tab Laporan pengujian. Untuk membuat laporan pengujian, jadwalkan proses baru dengan wawasan pengujian diaktifkan.
Lihat laporan pengujian (AWS CLI)
Jalan get-job kan dan tentukan pekerjaan ARN:
aws devicefarm get-job --arnarn:aws:devicefarm:us-west-2:123456789012:job:PROJECT_ID/RUN_ID/00000
Tanpa wawasan pengujian diaktifkan
Jika Anda tidak mengaktifkan wawasan pengujian, respons berisi bidang pekerjaan standar, seperti status pekerjaan, hasil, penghitung, dan perangkat:
{ "job": { "arn": "arn:aws:devicefarm:us-west-2:123456789012:job:EXAMPLE-PROJECT/EXAMPLE-RUN/00000", "name": "Example Apple iPhone", "created": "2026-08-05T14:26:56.959000-07:00", "status": "COMPLETED", "result": "PASSED", "counters": { "total": 3, "passed": 3, "failed": 0, "warned": 0, "errored": 0, "stopped": 0, "skipped": 0 }, "message": "Successful test lifecycle of Setup Test", "device": { "arn": "arn:aws:devicefarm:us-west-2::device:EXAMPLEDEVICEID", "name": "Example Apple iPhone", "platform": "IOS", "os": "18", "formFactor": "PHONE", "fleetType": "PUBLIC" }, "deviceMinutes": { "total": 1.38, "metered": 0.0, "unmetered": 1.13 }, "videoCapture": true } }
Dengan wawasan pengujian diaktifkan
Jika Anda mengaktifkan wawasan pengujian, respons juga menyertakan insights objek yang berisi status laporan pengujian, metrik tingkat tinggi, dan URL yang telah ditandatangani sebelumnya ke laporan terperinci:
{ "job": { "arn": "arn:aws:devicefarm:us-west-2:123456789012:job:EXAMPLE-PROJECT/EXAMPLE-RUN/00000", "status": "COMPLETED", "result": "PASSED", "counters": { ... }, "device": { ... }, "deviceMinutes": { ... }, "videoCapture": true, "insights": { "status": "COMPLETED", "testReport": { "message": "Results: 2 Executed | 2 passed, Median test duration: 3.214 seconds.", "metrics": { "testsTotal": 2, "testsPassed": 2, "testsFailed": 0, "testsSkipped": 0, "testsErrored": 0, "testsOther": 0, "testsPassedPercentage": 100.0 }, "testDetailsUrl": "https://EXAMPLE-PRESIGNED-URL" } } } }
testDetailsUrlBidang ini adalah URL yang telah ditandatangani sebelumnya ke laporan pengujian lengkap JSON. Unduh untuk mendapatkan rincian per tes:
curl -o test-report.json "PRESIGNED_URL"
Berikut ini adalah contoh laporan pengujian untuk pekerjaan UI XCTest:
{ "version": "1.0", "jobArn": "arn:aws:devicefarm:us-west-2:123456789012:job:5e01a8c7-c861-4c0a-b1d5-12345EXAMPLE/a1b2c3d4-e5f6-4a7b-8c9d-67890EXAMPLE/00000", "deviceName": "Apple iPhone 15", "deviceArn": "arn:aws:devicefarm:us-west-2::device:A1B2C3D4E5F60718293A4B5C6D7E8F90", "deviceOsVersion": "17.5", "metrics": { "testsTotal": 3, "testsPassed": 2, "testsFailed": 1, "testsSkipped": 0, "testsErrored": 0, "testsOther": 0, "testsPassedPercentage": 66.67, "totalTestExecutionDurationSeconds": 6.914, "medianTestExecutionDurationSeconds": 2.062 }, "testDetails": [ { "testName": "test_execute()", "testClass": "AlertsTest", "frameworkResult": "Passed", "result": "PASSED", "durationSeconds": 2.062, "startTimestamp": "2026-07-31T16:58:26.646000Z", "endTimestamp": "2026-07-31T16:58:28.708000Z", "testBundle": "AWSDeviceFarmiOSReferenceAppSwiftUITests", "nodeIdentifier": "AlertsTest/test_execute()" }, { "testName": "test_login()", "testClass": "LoginTest", "frameworkResult": "Failed", "result": "FAILED", "durationSeconds": 3.541, "startTimestamp": "2026-07-31T16:58:29.000000Z", "endTimestamp": "2026-07-31T16:58:32.541000Z", "stackTrace": "LoginTest.swift:88: XCTAssertEqual failed: (\"Welcome\") is not equal to (\"Error\")\nLoginTest.swift:91: XCTAssertTrue failed", "testBundle": "AWSDeviceFarmiOSReferenceAppSwiftUITests", "nodeIdentifier": "LoginTest/test_login()" }, { "testName": "test_themeRendering()", "testClass": "ThemeTest", "frameworkResult": "Passed", "result": "PASSED", "durationSeconds": 1.311, "testBundle": "AWSDeviceFarmiOSReferenceAppSwiftUITests", "nodeIdentifier": "ThemeTest/test_themeRendering()", "testArguments": "Dark Appearance, Portrait" } ] }
Laporan berisi bidang tingkat atas berikut:
version,jobArnVersi skema laporan dan ARN pekerjaan.
deviceName,deviceArn,deviceOsVersionNama dan ARN perangkat yang menjalankan pekerjaan, dan versi sistem operasinya.
metricsHasil agregat untuk pekerjaan: jumlah total tes (
testsTotal) dan berapa banyak yang lulus (testsPassed), gagal (testsFailed), dilewati (testsSkipped), kesalahan (), atau memiliki hasil lain (testsErroredtestsOther), bersama dengan tingkat kelulusan (testsPassedPercentage), total durasi tes (totalTestExecutionDurationSeconds), dan durasi tes median ().medianTestExecutionDurationSeconds
Setiap entri testDetails berisi bidang berikut:
testName,testClassNama metode pengujian dan kelas pengujiannya.
result,frameworkResultHasil Device Farm untuk pengujian, dan string hasil yang dilaporkan kerangka kerja XCTest. Device Farm memet
frameworkResultakan keresultbidang yang dinormalisasi.durationSeconds,startTimestamp,endTimestampDurasi tes dalam hitungan detik, dan waktu ketika itu dimulai dan berakhir.
testBundle,nodeIdentifierBundel pengujian yang dimiliki pengujian, dan pengidentifikasi simpul xcresult untuk kasus uji.
testArgumentsUntuk pemanggilan pengujian berparameter, label argumen untuk pemanggilan.
stackTraceUntuk pengujian yang gagal, tumpukan jejak kegagalan.