Test Uiautomator

  
Framework untuk pengujian UI fungsional lintas aplikasi
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
21 Februari 2024 2.3.0 - - -

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada pengujian, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

Groovy

dependencies {
    // Use to implement UIAutomator tests
    androidTestImplementation "androidx.test.uiautomator:uiautomator:2.3.0"
}

Kotlin

dependencies {
    // Use to implement UIAutomator tests
    androidTestImplementation("androidx.test.uiautomator:uiautomator:2.3.0")
}

Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 2.3.0

Versi 2.3.0

21 Februari 2024

androidx.test.uiautomator:uiautomator:2.3.0 dirilis. Versi 2.3.0 berisi commit ini.

Perubahan penting sejak versi 2.2.0

  • Dukungan multi-tampilan: Menambahkan dukungan untuk menemukan dan mengoperasikan objek di beberapa tampilan, dan metode UiDevice untuk mengelola tampilan sekunder (Ie6544, I912cd).
  • Pemilih baru:
    • Menambahkan By.displayId untuk memilih objek berdasarkan ID tampilannya (I1825b).
    • Menambahkan By.hasParent dan By.hasAncestor untuk memilih objek sesuai dengan induknya (I93c36).
    • Menambahkan metode By.hint untuk memilih objek berdasarkan teks petunjuknya (Idd345).
  • Kondisi kustom: Mengekspos antarmuka Condition untuk mendukung kondisi tunggu kustom, dan menambahkan metode UiDevice#wait, UiObject2#wait, dan UiObject2#scrollUntil yang sesuai (27c0ea, 099d6e).
  • Perbaikan bug dan keandalan
    • Memperbaiki masalah penghitungan ukuran layar yang terkadang salah dan mungkin mengabaikan bagian layar (Ifc016). Koordinat dan offset yang digunakan dalam pengujian mungkin perlu disesuaikan.
    • Memperbarui injeksi MotionEvent untuk meningkatkan akurasi (678ca3) dan mengemulasikan gestur pengguna dengan lebih baik (454450).
    • Meningkatkan keandalan scroll (I7b059), rotasi (c6cea0), klik lama (49572b), cubit (3c619a), dan lainnya.

Versi 2.3.0-rc01

7 Februari 2024

androidx.test.uiautomator:uiautomator:2.3.0-rc01 dirilis tanpa perubahan. Versi 2.3.0-rc01 berisi commit ini.

Versi 2.3.0-beta01

13 Desember 2023

androidx.test.uiautomator:uiautomator:2.3.0-beta01 dirilis. Versi 2.3.0-beta01 berisi commit ini.

Perubahan API

  • Mengganti nama metode margin berbasis persentase UiObject2 menjadi setGestureMarginPercentage dan setGestureMarginsPercentage agar konsisten (I24435)

Perbaikan Bug

  • Meningkatkan error yang ditampilkan saat tampilan sekunder tidak ditemukan atau tidak dapat diakses (116b23)

Versi 2.3.0-alpha05

1 November 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha05 dirilis. Versi 2.3.0-alpha05 berisi commit ini.

Perubahan API

  • Menambahkan UiObject2#getDrawingOrder untuk menampilkan informasi urutan gambar (indeks z). (I5dfa4).
  • Menambahkan metode UiDevice untuk mendapatkan, menetapkan, membekukan, dan mencairkan rotasi tampilan sekunder. (I912cd).

Perbaikan Bug

  • Menambahkan coba lagi ke UiObject2#scrollUntil saat akhir scroll tidak dapat dideteksi (Ibac6f).
  • Memperbaiki masalah saat UiDevice menggunakan instance Instrumentation yang tidak berlaku jika dibuat ulang (I18cae).
  • Memperbaiki kemungkinan NPE jika ID tampilan tidak dapat ditentukan saat membuang node (Icafcb).
  • Menambahkan peringatan saat melakukan klik/scroll pada objek yang tidak dapat diklik/dapat di-scroll (I4a5d9).
  • Mengurangi kecepatan scroll UiObject2 default untuk meningkatkan keandalan (I5e071).

Versi 2.3.0-alpha04

26 Juli 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha04 dirilis. Versi 2.3.0-alpha04 berisi commit ini.

Perubahan API

  • Menambahkan By.hasParent dan By.hasAncestor untuk mendukung penemuan objek sesuai dengan induknya (I93c36).
  • Menambahkan UiObject2#getHint untuk mengambil teks petunjuk objek, dan metode By.hint untuk memilih objek sesuai dengan teks petunjuknya (Idd345).
  • Menambahkan By.displayId untuk mendukung pemilihan objek sesuai dengan tampilan tempatnya berada (I1825b).
  • Menambahkan metode UiDevice#getDisplayHeight(int) dan UiDevice#getDisplayWidth(int) untuk menemukan dimensi tampilan berdasarkan ID-nya (Ie6544).
  • Menambahkan kembali metode wait(SearchCondition, long) dan wait(UiObject2Condition, long) untuk kompatibilitas mundur (Iebfda).
  • Mengubah UiDevice#executeShellCommand menjadi publik tetapi tidak disarankan, bukan disembunyikan (Ic48a1).

Perbaikan Bug

  • Memperbarui injeksi MotionEvent untuk mengurangi kegagalan dengan memprioritaskan akurasi gestur daripada kecepatan (678ca3).
  • Menambahkan pelacakan ke metode yang berat resource untuk mengidentifikasi bottleneck performa (d17de3).
  • Menambahkan mekanisme coba lagi saat memulai koneksi UiAutomation (048caf).
  • Memperbaiki kemungkinan NPE dari node null di UiDevice#dumpWindowHierarchy (b725eb).
  • Memperbaiki error tak terduga saat membuat kueri atau beroperasi pada tampilan pribadi (985db6, 7053d4).

Versi 2.3.0-alpha03

19 April 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha03 dirilis. Versi 2.3.0-alpha03 berisi commit ini.

Perubahan API

  • Mengekspos antarmuka Condition untuk memungkinkan kondisi tunggu kustom, bukan hanya mengandalkan bawaan di Until, serta memperbarui metode UiDevice#wait dan UiObject2#wait untuk menerima antarmuka ini (27c0ea).
  • Menambahkan UiObject2#scrollUntil untuk mendukung scroll hingga suatu kondisi terpenuhi dan untuk mencapai paritas dengan UiScrollable (099d6e).
  • Menambahkan UiDevice#setOrientationPortrait dan setOrientationLandscape untuk memfasilitasi rotasi di seluruh jenis perangkat (e13cb7).
  • Menambahkan UiObject2#setGestureMarginPercent untuk mendukung penyetelan margin yang relatif terhadap ukuran objek. (Ib8c77)

Perbaikan Bug

  • Memperbaiki metode UiScrollable yang terkadang menggunakan koordinat yang tidak valid di SDK 18 hingga 22 (b53ece).
  • Memperbaiki UiObject2#setText dan clearText yang gagal memodifikasi teks pada SDK 18 dan 19 (77e41d).
  • Memperbaiki UiWatcher yang tidak dieksekusi dalam urutan yang benar (c85f92).
  • Memperbaiki masalah saat rotasi perangkat mungkin belum selesai setelah perubahan orientasi UiDevice (c6cea0).
  • Meningkatkan keandalan klik lama, tarik, dan cubit (49572b, 3c619a).

Versi 2.3.0-alpha02

11 Januari 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha02 dirilis. Versi 2.3.0-alpha02 berisi commit ini.

Perubahan API

  • Mengerjakan ulang logging di seluruh library untuk memberikan lebih banyak informasi, memperingatkan tentang kemungkinan masalah, dan meningkatkan konsistensi.
  • Menambahkan UiDevice#pressKeyCodes untuk mendukung penekanan beberapa tombol secara bersamaan, misalnya menekan POWER (daya) dan VOLUME_DOWN (turunkan volume) untuk mengambil screenshot (22e525).
  • Menambahkan UiDevice#setCompressedLayoutHierarchy dan menghentikan penggunaan UiDevice#setCompressedLayoutHeirarchy untuk memperbaiki kesalahan ketik pada nama metode (4e2f65).
  • Menandai UiAutomatorInstrumentationTestRunner sebagai tidak digunakan lagi karena menangani UiAutomatorTestCase yang tidak digunakan lagi dan tidak lagi diperlukan (be6c85).
  • Memperbarui penundaan antara UiObject2 MotionEvent menjadi dua kali kecepatan refresh tampilan untuk mengemulasikan gestur pengguna dengan lebih baik (454450).
  • Menambahkan dukungan untuk pencocokan deskripsi dan teks multibaris (1625e6, b/255787130).

Perbaikan Bug

  • Memperbaiki StaleObjectException yang terkadang ditampilkan saat membuat kueri atau menunggu objek (4cbcc0).
  • Memperbaiki nilai return UiScrollable#scrollToBeginning, scrollToEnd, flingToBeginning, dan flingToEnd yang menunjukkan apakah awal/akhir telah tercapai (d33e06).
  • Memperbaiki metode UiScrollable#scrollForward dan scrollBackward yang mengabaikan waktu tunggu yang telah diatur (29e4f3).
  • Memperbaiki konstruktor salinan BySelector yang tidak menangani pemilih kedalaman (6c7b91).
  • Memperbaiki penanganan nilai persen yang tidak valid di UiObject#pinchIn dan pinchOut (01b973).
  • Memperbaiki masalah langka saat dukungan multi-aplikasi hilang jika koneksi UiAutomation yang mendasarinya direset (1bb956).

Versi 2.3.0-alpha01

7 September 2022

androidx.test.uiautomator:uiautomator:2.3.0-alpha01 dirilis. Versi 2.3.0-alpha01 berisi commit ini.

Perubahan API

  • Menganotasi nullness semua metode publik.
  • Mengalihkan injeksi MotionEvent ke asinkron dengan penundaan singkat untuk gestur UiObject2 yang lebih lancar.
  • Mengurangi interval polling saat menunggu dari 1000 md menjadi 100 md.
  • Mengupdate UiDevice#wakeUp dan UiDevice#sleep agar menggunakan KEYCODE_WAKEUP dan KEYCODE_SLEEP untuk mendukung perangkat yang mengganti tombol daya.
  • Menambahkan UiObject2#getDisplayId dan dukungan untuk menemukan dan mengelola objek di beberapa tampilan.
  • Menambahkan metode UiObject#click dan UiObject2#clickAndWait untuk mengklik titik menggunakan koordinatnya.

Perbaikan Bug

  • Memperbaiki masalah penghitungan ukuran layar yang terkadang salah dan mungkin mengabaikan bagian layar, terutama dalam mode multi-aplikasi (Ifc016c).
  • Memperbaiki penskalaan screenshot di UiDevice#takeScreenshot (Id80ad6).
  • Meningkatkan keandalan Until.scrollFinished dan UiObject2#scroll (I7b0595).
  • Memperbaiki peringatan mode ketat IncorrectContextUseViolation (Iffa6a0).