Test Uiautomator
Update Terbaru | Rilis Stabil | Kandidat Rilis | Rilis Beta | Rilis Alfa |
---|---|---|---|---|
26 Juni 2024 | 2.3.0 | - | - | 2.4.0-alpha01 |
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-alpha01" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha01") }
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.
Versi 2.4
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#getKeyInjectionDelay
dansetKeyInjectionDelay
tidak digunakan lagi sebagai parameter tidak digunakan sekarang karena teks selalu dimasukkan secara langsung, bukan dengan penekanan tombol. (I3bcc5).
Perbaikan Bug
- Memperbarui penundaan di antara peristiwa gerakan
UiObject2
untuk memperhitungkan kecepatan refresh dinamis (yaitu Smooth Display) (I43f12). - Mengurangi kegagalan karena penghentian node aksesibilitas pada UI tertentu dengan membatalkan validasi cache aksesibilitas secara berkala (I3be25).
- Memperbaiki
StaleObjectException
yang terjadi saat memanggiltoString
atauhashCode
padaUiObject2
yang tidak berlaku. (I38ea1). - Peningkatan performa
UiWatcher
dengan melewati panggilanwaitForIdle
yang tidak perlu. (I8c65e). - Memperbaiki ketidakakuratan javadoc, terutama untuk memperjelas ketika setiap parameter
Configurator
digunakan. (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 layar, dan metode
UiDevice
untuk mengelola tampilan sekunder (Ie6544, I912cd). - Pemilih baru:
- Kondisi kustom: Mengekspos antarmuka
Condition
untuk mendukung kondisi tunggu kustom, serta menambahkan metodeUiDevice#wait
,UiObject2#wait
, danUiObject2#scrollUntil
yang 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
MotionEvent
untuk meningkatkan akurasi (678ca3) dan mengemulasi 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
menjadisetGestureMarginPercentage
dansetGestureMarginsPercentage
agar konsisten (I24435)
Perbaikan Bug
- Memperbaiki 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, menyetel, membekukan, dan mencairkan rotasi tampilan sekunder. (I912cd).
Perbaikan Bug
- Menambahkan percobaan ulang ke
UiObject2#scrollUntil
saat akhir scroll tidak dapat dideteksi (Ibac6f). - Memperbaiki masalah saat
UiDevice
menggunakan instanceInstrumentation
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
danBy.hasAncestor
untuk mendukung penemuan objek menurut induknya (I93c36). - Menambahkan
UiObject2#getHint
untuk mengambil teks petunjuk objek, dan metodeBy.hint
untuk memilih objek sesuai dengan teks petunjuk-nya (Idd345). - Menambahkan
By.displayId
untuk mendukung pemilihan objek sesuai dengan tampilan objek tersebut (I1825b). - Menambahkan metode
UiDevice#getDisplayHeight(int)
danUiDevice#getDisplayWidth(int)
untuk menemukan dimensi tampilan berdasarkan ID-nya (Ie6544). - Penambahan kembali metode
wait(SearchCondition, long)
danwait(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 perekaman aktivitas ke metode resource yang berat untuk mengidentifikasi bottleneck performa (d17de3).
- Menambahkan mekanisme percobaan ulang saat memulai koneksi UiAutomation (048caf).
- NPE yang mungkin terjadi dari node null di
UiDevice#dumpWindowHierarchy
telah diperbaiki (b725eb). - Memperbaiki error tak terduga dari pembuatan kueri atau operasi di layar 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 padaUntil
, serta memperbarui metodeUiDevice#wait
danUiObject2#wait
untuk menerima antarmuka ini (27c0ea). - Menambahkan
UiObject2#scrollUntil
untuk mendukung scroll hingga kondisi terpenuhi dan mencapai paritas denganUiScrollable
(099d6e). - Menambahkan
UiDevice#setOrientationPortrait
dansetOrientationLandscape
untuk memfasilitasi rotasi di berbagai jenis perangkat (e13cb7). - Menambahkan
UiObject2#setGestureMarginPercent
untuk mendukung setelan 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). UiObject2#setText
danclearText
yang gagal mengubah teks di SDK 18 dan 19 telah diperbaiki (77e41d).- Memperbaiki
UiWatcher
yang tidak dieksekusi dalam urutan yang benar (c85f92). - Memperbaiki masalah rotasi perangkat yang mungkin belum selesai setelah orientasi
UiDevice
berubah (c6cea0). - Keandalan klik lama, tarik, dan cubit (49572b, 3c619a) telah ditingkatkan.
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 penggunaanUiDevice#setCompressedLayoutHeirarchy
untuk memperbaiki kesalahan ketik pada nama metode (4e2f65). - Menandai
UiAutomatorInstrumentationTestRunner
sebagai tidak digunakan lagi karena menanganiUiAutomatorTestCase
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
, danflingToEnd
yang menunjukkan apakah awal/akhir telah tercapai (d33e06). - Memperbaiki metode
UiScrollable#scrollForward
danscrollBackward
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
danpinchOut
(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 gesturUiObject2
yang lebih lancar. - Mengurangi interval polling saat menunggu dari 1000 md menjadi 100 md.
- Mengupdate
UiDevice#wakeUp
danUiDevice#sleep
agar menggunakanKEYCODE_WAKEUP
danKEYCODE_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
danUiObject2#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
danUiObject2#scroll
(I7b0595). - Memperbaiki peringatan mode ketat
IncorrectContextUseViolation
(Iffa6a0).