Test Uiautomator
| Update Terbaru | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa |
|---|---|---|---|---|
| 13 Agustus 2025 | 2.3.0 | - | - | 2.4.0-alpha06 |
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.4.0-alpha06" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha06") }
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.
Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.
Test Uiautomator Shell Versi 1.0
Versi 1.0.0-alpha02
13 Agustus 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.
Versi 1.0.0-alpha01
18 Juni 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit ini.
Fitur Baru
- Versi alfa pertama library shell ui-automator untuk menjalankan perintah shell sebagai pengguna shell. Library ini memungkinkan pembacaan stdout, stderr, dan penulisan di stdin dari proses sh yang diluncurkan oleh shell. De facto, ini mem-backport
UiAutomation#executeShellCommandRweyang diperkenalkan di API 34.
Versi 2.4
Versi 2.4.0-alpha06
13 Agustus 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha06 dirilis. Versi 2.4.0-alpha06 berisi commit ini.
Fitur Baru
- Menambahkan API berbasis window untuk pengujian multi-aplikasi yang lebih baik, yaitu
UiDevice#findWindowkini dapat digunakan untuk menemukanUiWindowtertentu sesuai denganByWindowSelectoryang dibuat dengan metode factoryBy.Window. (I359c4, I40528, I8c963)
Versi 2.4.0-alpha05
18 Juni 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha05 dirilis. Versi 2.4.0-alpha05 berisi commit ini.
Perubahan API
- Menambahkan
UiObject2#waitForStablesebagai pintasan untukUiObject2#accessibilityNodeInfo#waitForStable()
Versi 2.4.0-alpha04
4 Juni 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha04 dirilis. Versi 2.4.0-alpha04 berisi commit ini.
Perubahan API
- Mengganti nama
onViewmenjadionElementuntuk memperjelas bahwa fungsi ini kompatibel dengan Compose (I53a3b, b/419006806)
Perbaikan Bug
- Memperbaiki
waitForStableInActiveWindow(290457f1, b/420349130)
Versi 2.4.0-alpha03
20 Mei 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha03 dirilis. Versi 2.4.0-alpha03 berisi commit ini.
Perbaikan Bug
- Memperbaiki
waitForStableInActiveWindowyang memunculkan NPE dalam beberapa kasus (Ibf50f, b/417046391)
Versi 2.4.0-alpha02
7 Mei 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha02 dirilis. Versi 2.4.0-alpha02 berisi commit ini.
Fitur Baru
- Bentuk awal
UiautomatorApi baru.UiAutomatorTestScopedapat dibuat melaluiuiAutomatorfactory yang memberikan akses keonViewapi baru. - Aturan Lint Awal untuk memperingatkan penggunaan
AccessibilityNodeInfo#getTextdan menyarankan penggunaantextAsString.
Perubahan API
- Menambahkan
Configurator#setDefaultDisplayIduntuk menetapkan ID tampilan guna membatasi semua penelusuran ke (Icdf17). - Mengubah
Searchable(antarmuka yang digunakan bersama olehUiDevicedanUiObject2) menjadi publik untuk mempermudah (I67f18).
Perbaikan Bug
- Memperbaiki penanganan tombol meta di
UiDevice#pressKeyCodes. (I73f80). - Memperbarui
UiDevice#getWindowRootsagar selalu menampilkan root dalam urutan Z (I87426). - Memperbaiki masalah saat gestur tertentu tidak lengkap (I60dd3, If4edd).
- Memperbaiki loop tak terbatas yang jarang terjadi saat memanggil
UiDevice#scrollUntil(I39989).
Versi 2.4.0-alpha01
26 Juni 2024
androidx.test.uiautomator:uiautomator:2.4.0-alpha01 dirilis. Versi 2.4.0-alpha01 berisi commit ini.
Perubahan API
Configurator#getKeyInjectionDelaydansetKeyInjectionDelaytidak digunakan lagi karena parameter tidak digunakan lagi karena teks selalu dimasukkan secara langsung, bukan dengan penekanan tombol. (I3bcc5).
Perbaikan Bug
- Memperbarui penundaan antara peristiwa gerakan
UiObject2untuk memperhitungkan kecepatan refresh dinamis (yaitu, Smooth Display) (I43f12). - Mengurangi ketidakstabilan dari keusangan node aksesibilitas pada UI tertentu dengan membatalkan validasi cache aksesibilitas secara berkala (I3be25).
- Memperbaiki
StaleObjectExceptionyang terjadi saat memanggiltoStringatauhashCodepadaUiObject2yang tidak berlaku. (I38ea1). - Meningkatkan performa
UiWatcherdengan melewati panggilanwaitForIdleyang tidak perlu. (I8c65e). - Memperbaiki ketidakakuratan javadoc, terutama untuk mengklarifikasi kapan setiap parameter
Configuratordigunakan. (Ie10b1, I71631).
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, serta metode
UiDeviceuntuk mengelola tampilan sekunder (Ie6544, I912cd). - Pemilih baru:
- Kondisi kustom: Menampilkan antarmuka
Conditionuntuk mendukung kondisi tunggu kustom, dan menambahkan metodeUiDevice#wait,UiObject2#wait, danUiObject2#scrollUntilyang sesuai (27c0ea, 099d6e). - Perbaikan bug dan keandalan
- Memperbaiki masalah penghitungan ukuran tampilan yang terkadang salah dan mungkin mengabaikan bagian layar (Ifc016). Koordinat dan offset yang digunakan dalam pengujian mungkin perlu disesuaikan.
- Memperbarui injeksi
MotionEventuntuk meningkatkan akurasi (678ca3) dan mengemulasikan gestur pengguna dengan lebih baik (454450). - Meningkatkan keandalan scroll (I7b059), rotasi (c6cea0), klik panjang (49572b), pencubitan (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
UiObject2menjadisetGestureMarginPercentagedansetGestureMarginsPercentageuntuk konsistensi (I24435)
Perbaikan Bug
- Meningkatkan kualitas error yang ditampilkan saat layar 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#getDrawingOrderuntuk mengekspos informasi urutan gambar (z-index). (I5dfa4). - Menambahkan metode
UiDeviceuntuk mendapatkan, menyetel, membekukan, dan mencairkan rotasi tampilan sekunder. (I912cd).
Perbaikan Bug
- Menambahkan percobaan ulang ke
UiObject2#scrollUntiljika akhir scrolling tidak dapat dideteksi (Ibac6f). - Memperbaiki masalah saat
UiDeviceakan menggunakan instanceInstrumentationyang tidak berlaku lagi jika dibuat ulang (I18cae). - Memperbaiki kemungkinan NPE jika ID tampilan tidak dapat ditentukan saat melakukan dumping node (Icafcb).
- Menambahkan peringatan saat melakukan klik/scroll pada objek yang tidak dapat diklik/di-scroll (I4a5d9).
- Mengurangi kecepatan scroll
UiObject2default 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.hasParentdanBy.hasAncestoruntuk mendukung penemuan objek sesuai dengan induknya (I93c36). - Menambahkan
UiObject2#getHintuntuk mengambil teks petunjuk objek, dan metodeBy.hintuntuk memilih objek sesuai dengan teks petunjuknya (Idd345). - Menambahkan
By.displayIduntuk mendukung pemilihan objek sesuai dengan tampilan tempat objek berada (I1825b). - Menambahkan metode
UiDevice#getDisplayHeight(int)danUiDevice#getDisplayWidth(int)untuk menemukan dimensi layar berdasarkan ID-nya (Ie6544). - Menambahkan kembali metode
wait(SearchCondition, long)danwait(UiObject2Condition, long)untuk kompatibilitas mundur (Iebfda). - Mengubah
UiDevice#executeShellCommandmenjadi publik, tetapi tidak disarankan, bukan tersembunyi (Ic48a1).
Perbaikan Bug
- Memperbarui injeksi
MotionEventuntuk mengurangi ketidakstabilan dengan memprioritaskan akurasi gestur daripada kecepatan (678ca3). - Menambahkan rekaman aktivitas ke metode yang menggunakan banyak resource untuk mengidentifikasi bottleneck performa (d17de3).
- Menambahkan mekanisme percobaan ulang saat memulai koneksi UiAutomation (048caf).
- Memperbaiki kemungkinan NPE dari node null di
UiDevice#dumpWindowHierarchy(b725eb). - Memperbaiki error tak terduga dari kueri atau pengoperasian 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
- Menampilkan antarmuka
Conditionuntuk memungkinkan kondisi tunggu kustom, bukan hanya mengandalkan bawaan diUntil, dan memperbarui metodeUiDevice#waitdanUiObject2#waituntuk menerima antarmuka ini (27c0ea). - Menambahkan
UiObject2#scrollUntiluntuk mendukung scrolling hingga kondisi terpenuhi dan untuk mencapai paritas denganUiScrollable(099d6e). - Menambahkan
UiDevice#setOrientationPortraitdansetOrientationLandscapeuntuk memfasilitasi rotasi di berbagai jenis perangkat (e13cb7). - Menambahkan
UiObject2#setGestureMarginPercentuntuk mendukung setelan margin relatif terhadap ukuran objek. (Ib8c77)
Perbaikan Bug
- Memperbaiki metode
UiScrollableyang terkadang menggunakan koordinat yang tidak valid di SDK 18 hingga 22 (b53ece). - Memperbaiki kegagalan
UiObject2#setTextdanclearTextdalam mengubah teks di SDK 18 dan 19 (77e41d). - Memperbaiki
UiWatcheryang tidak dijalankan dalam urutan yang benar (c85f92). - Memperbaiki masalah saat rotasi perangkat mungkin belum selesai setelah perubahan orientasi
UiDevice(c6cea0). - Meningkatkan keandalan klik panjang, penarikan, dan pencubitan (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#pressKeyCodesuntuk mendukung penekanan beberapa tombol secara bersamaan, misalnya menekan POWER (daya) dan VOLUME_DOWN (turunkan volume) untuk mengambil screenshot (22e525). - Menambahkan
UiDevice#setCompressedLayoutHierarchydan menghentikan penggunaanUiDevice#setCompressedLayoutHeirarchyuntuk memperbaiki kesalahan ketik pada nama metode (4e2f65). - Menandai
UiAutomatorInstrumentationTestRunnersebagai tidak digunakan lagi karena menanganiUiAutomatorTestCaseyang tidak digunakan lagi dan tidak lagi diperlukan (be6c85). - Memperbarui penundaan antara
UiObject2MotionEventmenjadi 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
StaleObjectExceptionyang terkadang ditampilkan saat membuat kueri atau menunggu objek (4cbcc0). - Memperbaiki nilai return
UiScrollable#scrollToBeginning,scrollToEnd,flingToBeginning, danflingToEndyang menunjukkan apakah awal/akhir telah tercapai (d33e06). - Memperbaiki metode
UiScrollable#scrollForwarddanscrollBackwardyang mengabaikan waktu tunggu yang telah diatur (29e4f3). - Memperbaiki konstruktor salinan
BySelectoryang tidak menangani pemilih kedalaman (6c7b91). - Memperbaiki penanganan nilai persen yang tidak valid di
UiObject#pinchIndanpinchOut(01b973). - Memperbaiki masalah langka saat dukungan multi-aplikasi hilang jika koneksi
UiAutomationyang 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
MotionEventke asinkron dengan penundaan singkat untuk gesturUiObject2yang lebih lancar. - Mengurangi interval polling saat menunggu dari 1000 md menjadi 100 md.
- Mengupdate
UiDevice#wakeUpdanUiDevice#sleepagar menggunakanKEYCODE_WAKEUPdanKEYCODE_SLEEPuntuk mendukung perangkat yang mengganti tombol daya. - Menambahkan
UiObject2#getDisplayIddan dukungan untuk menemukan dan mengelola objek di beberapa tampilan. - Menambahkan metode
UiObject#clickdanUiObject2#clickAndWaituntuk mengklik titik menggunakan koordinatnya.
Perbaikan Bug
- Memperbaiki masalah penghitungan ukuran tampilan yang terkadang salah dan mungkin mengabaikan bagian layar, terutama dalam mode multi-aplikasi (Ifc016c).
- Memperbaiki penskalaan screenshot di
UiDevice#takeScreenshot(Id80ad6). - Meningkatkan keandalan
Until.scrollFinisheddanUiObject2#scroll(I7b0595). - Memperbaiki peringatan mode ketat
IncorrectContextUseViolation(Iffa6a0).