Test Uiautomator

  
Framework untuk pengujian UI fungsional lintas aplikasi
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.

Laporkan masalah baru

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 dan setKeyInjectionDelay 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 memanggil toString atau hashCode pada UiObject2 yang tidak berlaku. (I38ea1).
  • Peningkatan performa UiWatcher dengan melewati panggilan waitForIdle 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:
    • 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 petunjuk-nya (Idd345).
  • Kondisi kustom: Mengekspos antarmuka Condition untuk mendukung kondisi tunggu kustom, serta menambahkan metode UiDevice#wait, UiObject2#wait, dan UiObject2#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 menjadi setGestureMarginPercentage dan setGestureMarginsPercentage 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 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 menurut induknya (I93c36).
  • Menambahkan UiObject2#getHint untuk mengambil teks petunjuk objek, dan metode By.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) dan UiDevice#getDisplayWidth(int) untuk menemukan dimensi tampilan berdasarkan ID-nya (Ie6544).
  • Penambahan 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 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 pada Until, serta memperbarui metode UiDevice#wait dan UiObject2#wait untuk menerima antarmuka ini (27c0ea).
  • Menambahkan UiObject2#scrollUntil untuk mendukung scroll hingga kondisi terpenuhi dan mencapai paritas dengan UiScrollable (099d6e).
  • Menambahkan UiDevice#setOrientationPortrait dan setOrientationLandscape 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 dan clearText 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 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).