View a markdown version of this page

Mengintegrasikan Instrumentasi Android dengan Device Farm - Device Farm AWS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengintegrasikan Instrumentasi Android dengan Device Farm

catatan

Gunakan petunjuk berikut untuk mengintegrasikan pengujian instrumentasi Android dengan AWS Device Farm. Untuk informasi selengkapnya tentang menggunakan pengujian instrumentasi di Device Farm, lihatInstrumentasi untuk Android dan AWS Device Farm.

Jalankan pengujian Instrumentasi Android (konsol)

Gunakan konsol Device Farm untuk mengunggah pengujian Anda.

  1. Masuk ke konsol Device Farm di https://console.aws.amazon.com/devicefarm.

  2. Di panel navigasi, pilih Pengujian Perangkat Sel uler, lalu pilih Proyek.

  3. 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 diMembuat proyek di AWS Device Farm.

  4. Pilih Buat lari.

  5. Di bawah Pilih aplikasi dan jenis jalankan, di bagian Jalankan jenis, pilih aplikasi Android.

  6. Di bawah Pilih aplikasi, di bagian Opsi pemilihan aplikasi, pilih Pilih contoh aplikasi yang disediakan oleh Dev ice Farm jika Anda tidak memiliki aplikasi. Jika Anda membawa aplikasi sendiri, pilih Unggah aplikasi sendiri, lalu pilih APK Anda (format file.apk).

  7. Di bawah Konfigurasi pengujian, di bagian Pilih kerangka pengujian, pilih Instrumentasi, lalu pilih Pilih File. Jelajahi dan pilih file APK (format file.apk) yang berisi pengujian Anda.

  8. Di bawah Pilih lingkungan eksekusi Anda, pilih Jalankan pengujian Anda di lingkungan khusus atau J alankan pengujian Anda di lingkungan standar kami. Untuk informasi selengkapnya, lihat Menguji lingkungan di AWS Device Farm.

  9. Jika Anda memilih lingkungan khusus, Anda dapat menggunakan spesifikasi pengujian default yang diisi untuk pengujian instrumentasi, atau pilih Unggah spesifikasi pengujian sendiri untuk menyediakan spesifikasi pengujian Anda sendiri.

  10. Di bawah Pilih perangkat, pilih metode pemilihan perangkat. Pilih Gunakan Kumpulan Perangkat untuk memilih dari koleksi perangkat yang dikuratori atau kumpulan perangkat khusus yang Anda buat. Pilih Pilih perangkat secara manual untuk memilih perangkat individual untuk menjalankan pengujian Anda. Bagian Kompatibilitas perangkat menunjukkan berapa banyak perangkat di kumpulan yang dipilih yang kompatibel dengan aplikasi Anda. Untuk informasi selengkapnya, lihat Dukungan perangkat di AWS Device Farm.

  11. Untuk mengkonfigurasi properti run-level, perbarui bagian J alankan pengaturan. Di sini Anda dapat melakukan hal berikut:

    1. (Opsional) Agar Device Farm membuat laporan pengujian setelah proses selesai, pilih Buat laporan pengujian. Opsi ini hanya tersedia di lingkungan pengujian khusus. Device Farm menghasilkan laporan dari hasil instrumentasi yang disertakan dalam output spesifikasi pengujian Anda. Jika Anda mengunggah spesifikasi pengujian Anda sendiri, pastikan itu mengeluarkan hasil instrumentasi ke output spesifikasi pengujian Anda.

  12. Selesaikan langkah-langkah yang tersisa, dan kemudian mulai menjalankan.

Melihat laporan pengujian (konsol)

  1. Masuk ke konsol Device Farm di https://console.aws.amazon.com/devicefarm.

  2. Di panel navigasi, pilih Pengujian Perangkat Sel uler, lalu pilih Proyek.

  3. Pilih proyek yang berisi proses yang ingin Anda periksa.

  4. Pilih proses yang telah selesai untuk membuka detailnya.

  5. 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 rincian per tes. Screenshot berikut menunjukkan tab Laporan uji dengan semua kolom terlihat.

Kumpulan kolom pertama pada tab Laporan uji untuk pekerjaan instrumentasi yang selesai.
Kolom yang tersisa pada tab Laporan uji untuk pekerjaan instrumentasi yang telah selesai.

Tab menunjukkan bidang berikut untuk setiap tes:

testName

Nama metode pengujian.

testClass

Nama kelas tes.

result

Hasil Device Farm untuk pengujian.

frameworkResult

Hasil yang dilaporkan oleh kerangka instrumentasi. Device Farm memetakan nilai ini ke result bidang yang dinormalisasi.

durationSeconds

Durasi tes, dalam hitungan detik.

startTimestamp

Waktu ketika tes dimulai.

endTimestamp

Waktu ketika tes berakhir.

current

Posisi tes dalam lari.

numTests

Jumlah total tes dalam proses.

statusCode

Kode status instrumentasi yang dilaporkan pengujian.

stream

Versi output instrumentasi yang dapat dibaca manusia untuk pengujian.

stackTrace

Untuk pengujian yang gagal, tumpukan jejak kegagalan.

Untuk mengunduh laporan pengujian lengkap sebagai file JSON, pilih Unduh ringkasan lengkap di bagian atas detail pekerjaan.

Untuk memilih kolom mana yang muncul, pilih ikon roda gigi. 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. Matikan untuk melihat daftar datar semua tes, seperti yang ditunjukkan pada tangkapan layar berikut.

Tab Laporan uji dengan Grup berdasarkan kelas dimatikan, menampilkan daftar pengujian datar.

Tanpa wawasan pengujian diaktifkan

Hasil pekerjaan menunjukkan output pengujian standar dan artefak, tetapi tidak ada tab Laporan pengujian. Untuk membuat laporan pengujian, jadwalkan proses baru dengan wawasan pengujian diaktifkan.

Hasil pekerjaan untuk pekerjaan instrumentasi yang diselesaikan tanpa wawasan pengujian diaktifkan.

Lihat laporan pengujian (AWS CLI)

Jalan get-job kan dan tentukan pekerjaan ARN:

aws devicefarm get-job --arn arn: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 Android Phone", "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 Android Phone", "platform": "ANDROID", "os": "16", "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. Objek ini 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: 28.926 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 instrumentasi:

{ "version": "1.0", "jobArn": "arn:aws:devicefarm:us-west-2:123456789012:job:EXAMPLE-PROJECT/EXAMPLE-RUN/00000", "metrics": { "testsTotal": 3, "testsPassed": 2, "testsFailed": 1, "testsSkipped": 0, "testsErrored": 0, "testsOther": 0, "testsPassedPercentage": 66.67, "totalTestExecutionDurationSeconds": 26.004, "medianTestExecutionDurationSeconds": 1.598 }, "testDetails": [ { "testName": "testConnect", "testClass": "com.example.myapp.GpsConnectInstrumentedTest", "frameworkResult": "PASSED", "result": "PASSED", "durationSeconds": 24.399, "startTimestamp": "2026-08-05T20:38:30.131514Z", "endTimestamp": "2026-08-05T20:38:54.530369Z", "statusCode": 0, "current": 1, "numTests": 3 }, { "testName": "testHistoryOff", "testClass": "com.example.myapp.NotificationHistoryInstrumentedTest", "frameworkResult": "PASSED", "result": "PASSED", "durationSeconds": 1.598, "startTimestamp": "2026-08-05T20:38:54.531765Z", "endTimestamp": "2026-08-05T20:38:56.130032Z", "statusCode": 0, "current": 2, "numTests": 3 }, { "testName": "testConnect", "testClass": "com.example.myapp.WifiConnectInstrumentedTest", "frameworkResult": "FAILED", "result": "FAILED", "durationSeconds": 0.002, "startTimestamp": "2026-08-05T20:38:56.131857Z", "endTimestamp": "2026-08-05T20:38:56.133770Z", "stackTrace": "java.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.test.uiautomator.UiDevice.pressHome()' on a null object reference\n\tat com.example.myapp.WifiConnectInstrumentedTest.testConnect(WifiConnectInstrumentedTest.java:93)\n\t...", "stream": "\nError in testConnect(com.example.myapp.WifiConnectInstrumentedTest):\njava.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.test.uiautomator.UiDevice.pressHome()' on a null object reference\n\t...", "statusCode": -2, "current": 3, "numTests": 3 } ], "errorMessage": "There was 1 failure:\n1) testConnect(com.example.myapp.WifiConnectInstrumentedTest)\njava.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.test.uiautomator.UiDevice.pressHome()' on a null object reference\n\t...\nFAILURES!!!\nTests run: 3, Failures: 1", "instrumentationCode": -1 }

Laporan berisi bidang tingkat atas berikut:

version

Versi skema laporan.

jobArn

ARN pekerjaan itu.

metrics

Hasil agregat untuk pekerjaan tersebut. Objek metrics berisi kolom-kolom berikut:

testsTotal

Jumlah total tes dalam pekerjaan.

testsPassed

Jumlah tes yang lulus.

testsFailed

Jumlah tes yang gagal.

testsSkipped

Jumlah tes yang dilewati.

testsErrored

Jumlah tes yang salah.

testsOther

Jumlah tes dengan hasil lain.

testsPassedPercentage

Persentase tes yang lulus.

totalTestExecutionDurationSeconds

Total durasi semua tes, dalam hitungan detik.

medianTestExecutionDurationSeconds

Durasi rata-rata tes, dalam detik.

errorMessage

Jika proses mengalami kegagalan, pesan kesalahan yang merangkumnya.

instrumentationCode

Kode keluar instrumentasi keseluruhan untuk pekerjaan tersebut.

testDetails

Daftar hasil per tes. Setiap entri testDetails berisi bidang berikut:

testName

Nama metode pengujian.

testClass

Nama kelas tes.

result

Hasil Device Farm untuk pengujian.

frameworkResult

Hasil yang dilaporkan oleh kerangka instrumentasi. Device Farm memetakan nilai ini ke result bidang yang dinormalisasi.

durationSeconds

Durasi tes, dalam hitungan detik.

startTimestamp

Waktu ketika tes dimulai.

endTimestamp

Waktu ketika tes berakhir.

current

Posisi tes dalam lari.

numTests

Jumlah total tes dalam proses.

statusCode

Kode status instrumentasi yang dilaporkan pengujian.

stream

Versi output instrumentasi yang dapat dibaca manusia untuk pengujian.

stackTrace

Untuk pengujian yang gagal, tumpukan jejak kegagalan.

(Opsional) Ambil tangkapan layar dalam tes instrumentasi Android

Anda dapat mengambil tangkapan layar sebagai bagian dari tes Instrumentasi Android Anda.

Untuk mengambil tangkapan layar, panggil salah satu metode berikut:

  • Untuk Robotium, panggil takeScreenShot metode (misalnya,solo.takeScreenShot();).

  • Untuk Spoon, panggil screenshot metode, misalnya:

    Spoon.screenshot(activity, "initial_state"); /* Normal test code... */ Spoon.screenshot(activity, "after_login");

Selama uji coba, Device Farm mendapatkan tangkapan layar dari lokasi berikut di perangkat, jika ada, dan kemudian menambahkannya ke laporan pengujian:

  • /sdcard/robotium-screenshots

  • /sdcard/test-screenshots

  • /sdcard/Download/spoon-screenshots/test-class-name/test-method-name

  • /data/data/application-package-name/app_spoon-screenshots/test-class-name/test-method-name