Uiautomator'ı test etme

  
Uygulamalar arası işlevsel kullanıcı arayüzü testi için çerçeve
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta sürümü Alfa Sürümü
17 Haziran 2026 2.3.0 2.4.0-rc01 - -

Bağımlılıkları bildirme

Test için bağımlılık eklemek üzere Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.

Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:

Eski

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

Kotlin

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

Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.

Test Uiautomator Shell Sürümü 1.0

Sürüm 1.0.0-alpha03

3 Aralık 2025

androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha03 iptal edilir. 1.0.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Yeni pencereyi beklemek için startActivity bekleme süresi değiştirildi (I35da6, b/440021797)
  • screenSizePixel, RecorderCommands'te güncellendi (If558c, b/429173157)

Sürüm 1.0.0-alpha02

13 Ağustos 2025

androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02 iptal edilir. 1.0.0-alpha02 sürümü bu commit'leri içerir.

Sürüm 1.0.0-alpha01

18 Haziran 2025

androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01 iptal edilir. 1.0.0-alpha01 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Kabuk komutlarını kabuk kullanıcısı olarak yürütmek için ui-automator kabuk kitaplığının ilk alfa sürümü. Bu kitaplık, kabuk tarafından başlatılan bir sh sürecinin stdout, stderr'ını okumaya ve stdin'ine yazmaya olanak tanır. Fiilen, API 34'te kullanıma sunulan UiAutomation#executeShellCommandRwe geri taşınır.

Sürüm 2.4

Sürüm 2.4.0-rc01

17 Haziran 2026

androidx.test.uiautomator:uiautomator:2.4.0-rc01, androidx.test.uiautomator:uiautomator-shell:2.4.0-rc01 ve androidx.test.uiautomator:uiautomator-shell-android:2.4.0-rc01 yayınlandı. 2.4.0-rc01 sürümü bu commit'leri içerir.

Sürüm 2.4.0-beta02

11 Mart 2026

androidx.test.uiautomator:uiautomator:2.4.0-beta02 ve androidx.test.uiautomator:uiautomator-shell:2.4.0-beta02 yayınlandı. 2.4.0-beta02 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • null döndürmek yerine UiObject2#scrollToElementOrNull atma sorunu düzeltildi ve dönüş türü güncellendi (If0109, b/479892735)

Sürüm 2.4.0-beta01

11 Şubat 2026

androidx.test.uiautomator:uiautomator:2.4.0-beta01 ve androidx.test.uiautomator:uiautomator-shell:2.4.0-beta01 yayınlandı. 2.4.0-beta01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Durumsuz komutları tekil örnekler haline getirin. (I3394c, b/429173157)
  • RecorderCommands API'sini güncelleyin. (Ie09e8, b/429173157)
  • RecorderCommands API'nin yaşam döngüsünü iyi tanımlanmış hale getirmek için basitleştirin. (I30f89, b/444305673)

Sürüm 2.4.0-alpha07

3 Aralık 2025

androidx.test.uiautomator:uiautomator:2.4.0-alpha07 iptal edilir. 2.4.0-alpha07 sürümü bu commit'leri içerir.

API Değişiklikleri

  • startActivity bekleme süresi, yeni pencereyi bekleyecek şekilde değiştirildi. Bu, başlatma işlemini genel olarak senkron hale getirir ve Macrobenchmark'ın gelecekteki sürümlerinin başlatma işleminin tamamlanma algılamasını yapılandırmasına olanak tanır. (I35da6, Id6e6f, b/440021797)
  • UiAutomatorTestScope içinde açık paket adı olmayan API kaldırıldı. (I8c285, b/413417205)

Sürüm 2.4.0-alpha06

13 Ağustos 2025

androidx.test.uiautomator:uiautomator:2.4.0-alpha06 iptal edilir. 2.4.0-alpha06 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Geliştirilmiş çok pencereli test için pencere tabanlı API'ler eklendi. Örneğin, UiDevice#findWindow artık By.Window fabrika yöntemleriyle oluşturulan bir ByWindowSelector'ye göre belirli bir UiWindow'yi bulmak için kullanılabiliyor. (I359c4, I40528, I8c963)

Sürüm 2.4.0-alpha05

18 Haziran 2025

androidx.test.uiautomator:uiautomator:2.4.0-alpha05 iptal edilir. 2.4.0-alpha05 sürümü bu commit'leri içerir.

API Değişiklikleri

  • UiObject2#waitForStable, UiObject2#accessibilityNodeInfo#waitForStable() için kısayol olarak eklendi

Sürüm 2.4.0-alpha04

4 Haziran 2025

androidx.test.uiautomator:uiautomator:2.4.0-alpha04 iptal edilir. 2.4.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Yazma özelliğiyle çalıştığını netleştirmek için onView, onElement olarak yeniden adlandırıldı (I53a3b, b/419006806)

Hata Düzeltmeleri

Sürüm 2.4.0-alpha03

20 Mayıs 2025

androidx.test.uiautomator:uiautomator:2.4.0-alpha03 iptal edilir. 2.4.0-alpha03 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • Bazı durumlarda waitForStableInActiveWindow'nın NPE oluşturması sorunu düzeltildi (Ibf50f, b/417046391).

Sürüm 2.4.0-alpha02

7 Mayıs 2025

androidx.test.uiautomator:uiautomator:2.4.0-alpha02 iptal edilir. 2.4.0-alpha02 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Yeni Uiautomator API'nin ilk şekli. UiAutomatorTestScope, yeni onView API'lerine erişim sağlayan fabrika uiAutomator aracılığıyla oluşturulabilir.
  • AccessibilityNodeInfo#getText kullanımına ilişkin uyarı veren ve textAsString kullanımını öneren ilk Lint kuralları.

API Değişiklikleri

  • Tüm aramaları (Icdf17) ile sınırlamak için bir görüntüleme kimliği ayarlamak üzere Configurator#setDefaultDisplayId eklendi.
  • Kolaylık sağlamak için Searchable (UiDevice ve UiObject2 tarafından paylaşılan arayüz) herkese açık olarak değiştirildi (I67f18).

Hata Düzeltmeleri

  • UiDevice#pressKeyCodes'da meta anahtarların işlenmesi düzeltildi. (I73f80).
  • UiDevice#getWindowRoots, kökleri her zaman Z sırasına göre döndürecek şekilde güncellendi (I87426).
  • Belirli hareketlerin eksik olmasına neden olan sorun düzeltildi (I60dd3, If4edd).
  • UiDevice#scrollUntil (I39989) aranırken nadiren oluşan sonsuz döngü hatası düzeltildi.

Sürüm 2.4.0-alpha01

26 Haziran 2024

androidx.test.uiautomator:uiautomator:2.4.0-alpha01 iptal edilir. 2.4.0-alpha01 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Metin artık her zaman doğrudan eklenip tuş basılarak eklenmediğinden parametre kullanılmadığı için Configurator#getKeyInjectionDelay ve setKeyInjectionDelay parametrelerinin desteği sonlandırıldı. (I3bcc5).

Hata Düzeltmeleri

  • Dinamik yenileme hızlarını (ör. Smooth Display) hesaba katmak için UiObject2 hareket etkinlikleri arasındaki gecikme güncellendi (I43f12).
  • Erişilebilirlik önbelleğini düzenli olarak geçersiz kılarak belirli kullanıcı arayüzlerinde erişilebilirlik düğümünün eski olmasından kaynaklanan kararsızlık azaltıldı (I3be25).
  • Eski bir UiObject2 üzerinde toString veya hashCode çağrılırken oluşan StaleObjectException'lar düzeltildi. (I38ea1).
  • Gereksiz waitForIdle çağrıları atlanarak UiWatcher performansı iyileştirildi. (I8c65e).
  • Javadoc'daki yanlışlıklar düzeltildi. Özellikle her Configurator parametresinin ne zaman kullanıldığını netleştirmek için değişiklikler yapıldı. (Ie10b1, I71631).

Sürüm 2.3.0

Sürüm 2.3.0

21 Şubat 2024

androidx.test.uiautomator:uiautomator:2.3.0 iptal edilir. 2.3.0 sürümü şu commit'leri içerir.

2.2.0 sürümünden beri yapılan önemli değişiklikler

  • Çoklu ekran desteği: Birden fazla ekrandaki nesneleri bulma ve bu nesneler üzerinde işlem yapma desteği ile ikincil ekranları yönetme yöntemleri (Ie6544, I912cd) eklendi.UiDevice
  • Yeni seçiciler:
    • Nesneleri görüntüleme kimliklerine (I1825b) göre seçmek için By.displayId eklendi.
    • Nesneleri üst öğelerine göre seçmek için By.hasParent ve By.hasAncestor eklendi (I93c36).
    • Nesneleri ipucu metinlerine göre seçmek için By.hint yöntemleri eklendi (Idd345).
  • Özel koşullar: Özel bekleme koşullarını desteklemek için Condition arayüzü kullanıma sunuldu ve ilgili UiDevice#wait, UiObject2#wait ve UiObject2#scrollUntil yöntemleri eklendi (27c0ea, 099d6e).
  • Hata düzeltmeleri ve güvenilirlik
    • Ekran boyutu hesaplamalarının bazen yanlış olmasına ve ekranın bazı bölümlerinin göz ardı edilmesine neden olan sorun düzeltildi (Ifc016). Testlerde kullanılan koordinatların ve ofsetlerin ayarlanması gerekebilir.
    • Doğruluğu artırmak (678ca3) ve kullanıcı hareketlerini daha iyi taklit etmek (454450) için MotionEvent ekleme özelliği güncellendi.
    • Kaydırma (I7b059), döndürme (c6cea0), uzun tıklama (49572b), sıkıştırma (3c619a) ve diğer işlemlerin güvenilirliği artırıldı.

Sürüm 2.3.0-rc01

7 Şubat 2024

androidx.test.uiautomator:uiautomator:2.3.0-rc01, herhangi bir değişiklik yapılmadan yayınlanır. 2.3.0-rc01 sürümü şu commit'leri içerir.

Sürüm 2.3.0-beta01

13 Aralık 2023

androidx.test.uiautomator:uiautomator:2.3.0-beta01 iptal edilir. 2.3.0-beta01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Tutarlılık için UiObject2 yüzdelik tabanlı marj yöntemleri setGestureMarginPercentage ve setGestureMarginsPercentage olarak yeniden adlandırıldı (I24435).

Hata Düzeltmeleri

  • İkincil ekran bulunamadığında veya erişilemediğinde oluşan hata iyileştirildi (116b23).

Sürüm 2.3.0-alpha05

1 Kasım 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha05 iptal edilir. 2.3.0-alpha05 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Çizim sırası (z-index) bilgilerini göstermek için UiObject2#getDrawingOrder eklendi. (I5dfa4).
  • İkincil ekranların dönüşünü almak, ayarlamak, dondurmak ve çözmek için UiDevice yöntemleri eklendi. (I912cd).

Hata Düzeltmeleri

  • Kaydırmanın sonu algılanamadığında UiObject2#scrollUntil için yeniden deneme özelliği eklendi (Ibac6f).
  • UiDevice yeniden oluşturulursa eski bir Instrumentation örneğini kullanmasıyla ilgili sorun düzeltildi (I18cae).
  • Düğümler dökülürken ekran kimliği belirlenemezse olası NPE düzeltildi (Icafcb).
  • Tıklanabilir/kaydırılabilir olmayan nesnelerde tıklama/kaydırma işlemi yapıldığında uyarı eklendi (I4a5d9).
  • Güvenilirliği artırmak için varsayılan UiObject2 kaydırma hızı düşürüldü (I5e071).

Sürüm 2.3.0-alpha04

26 Temmuz 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha04 iptal edilir. 2.3.0-alpha04 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Nesnelerin üst öğelerine göre bulunmasını desteklemek için By.hasParent ve By.hasAncestor eklendi (I93c36).
  • Nesnenin ipucu metnini almak için UiObject2#getHint, nesneleri ipucu metinlerine göre seçmek için By.hint yöntemleri (Idd345) eklendi.
  • Nesnelerin bulundukları ekrana göre seçilmesini desteklemek için By.displayId eklendi (I1825b).
  • Bir ekranın boyutlarını kimliğine (Ie6544) göre bulmak için UiDevice#getDisplayHeight(int) ve UiDevice#getDisplayWidth(int) yöntemleri eklendi.
  • Geriye dönük uyumluluk için wait(SearchCondition, long) ve wait(UiObject2Condition, long) yöntemleri yeniden eklendi (Iebfda).
  • UiDevice#executeShellCommand, gizli yerine herkese açık ancak devre dışı olarak değiştirildi (Ic48a1).

Hata Düzeltmeleri

  • Hızı değil, hareket doğruluğunu önceliklendirerek kararsızlığı azaltmak için MotionEvent ekleme işlemi güncellendi (678ca3).
  • Performans sorunlarını belirlemek için kaynak açısından yoğun yöntemlere izleme eklendi (d17de3).
  • UiAutomation bağlantısı başlatılırken yeniden deneme mekanizması eklendi (048caf).
  • UiDevice#dumpWindowHierarchy içindeki boş düğümlerden kaynaklanan olası bir NPE düzeltildi (b725eb).
  • Özel ekranlarda sorgulama veya işlem yapmayla ilgili beklenmedik hatalar düzeltildi (985db6,7053d4).

Sürüm 2.3.0-alpha03

19 Nisan 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha03 iptal edilir. 2.3.0-alpha03 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Yalnızca Until içindeki yerleşiklere güvenmek yerine özel bekleme koşullarına izin vermek için bir Condition arayüzü kullanıma sunuldu ve UiDevice#wait ile UiObject2#wait yöntemleri bu arayüzü kabul edecek şekilde güncellendi (27c0ea).
  • Bir koşul karşılanana kadar kaydırmayı desteklemek ve UiScrollable ile eşitliği sağlamak için UiObject2#scrollUntil eklendi (099d6e).
  • Cihaz türleri arasında rotasyonları kolaylaştırmak için UiDevice#setOrientationPortrait ve setOrientationLandscape eklendi (e13cb7).
  • Nesne boyutuna göre kenar boşlukları ayarlamayı desteklemek için UiObject2#setGestureMarginPercent eklendi. (Ib8c77)

Hata Düzeltmeleri

  • 18-22 numaralı SDK'larda UiScrollable yöntemlerinin zaman zaman geçersiz koordinatlar kullanması sorunu düzeltildi (b53ece).
  • UiObject2#setText ve clearText'nin 18 ve 19 numaralı SDK'larda metni değiştirememesi sorunu düzeltildi (77e41d).
  • UiWatcherların doğru sırada yürütülmemesi sorunu düzeltildi (c85f92).
  • UiDevice yön değişikliğinden sonra cihaz döndürme işleminin henüz tamamlanmamış olabileceği sorun düzeltildi (c6cea0).
  • Uzun tıklamalar, sürüklemeler ve parmakla yakınlaştırmaların güvenilirliği artırıldı (49572b, 3c619a).

Sürüm 2.3.0-alpha02

11 Ocak 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha02 iptal edilir. 2.3.0-alpha02 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Daha fazla bilgi sağlamak, olası sorunlar hakkında uyarmak ve tutarlılığı artırmak için kitaplık genelinde günlük kaydı yeniden düzenlendi.
  • Aynı anda birden fazla tuşa basmayı desteklemek için UiDevice#pressKeyCodes eklendi. Örneğin, ekran görüntüsü almak için GÜÇ ve SESİ_AZALTMA düğmelerine basma (22e525).
  • Yöntem adındaki yazım hatasını düzeltmek için UiDevice#setCompressedLayoutHierarchy eklendi ve UiDevice#setCompressedLayoutHeirarchy desteği sonlandırıldı (4e2f65).
  • Kullanımdan kaldırılmış UiAutomatorTestCase'leri işlediği ve artık gerekli olmadığı için UiAutomatorInstrumentationTestRunner, kullanımdan kaldırılmış olarak işaretlendi (be6c85).
  • Kullanıcı hareketlerini daha iyi taklit etmek için UiObject2 MotionEvent arasındaki gecikme, ekran yenileme hızının iki katı olacak şekilde güncellendi (454450).
  • Çok satırlı metin ve açıklama eşleştirme desteği eklendi (1625e6, b/255787130).

Hata Düzeltmeleri

  • Nesneler sorgulanırken veya beklenirken zaman zaman StaleObjectExceptions hatası verilmesi sorunu düzeltildi (4cbcc0).
  • Başlangıca/sona ulaşılıp ulaşılmadığını belirtmeyen UiScrollable#scrollToBeginning, scrollToEnd, flingToBeginning ve flingToEnd döndürülen değerleri düzeltildi (d33e06).
  • Yapılandırılan zaman aşımını yoksayan UiScrollable#scrollForward ve scrollBackward yöntemleri düzeltildi (29e4f3).
  • BySelector kopyalama oluşturucusunun derinlik seçicileri işlememesi (6c7b91) sorunu düzeltildi.
  • UiObject#pinchIn ve pinchOut içinde geçersiz yüzde değerlerinin işlenmesi düzeltildi (01b973).
  • Altta yatan UiAutomation bağlantı sıfırlandığında (1bb956) çoklu pencere desteğinin kaybolduğu nadir bir sorun düzeltildi.

Sürüm 2.3.0-alpha01

7 Eylül 2022

androidx.test.uiautomator:uiautomator:2.3.0-alpha01 iptal edilir. 2.3.0-alpha01 sürümü şu commit'leri içerir.

API Değişiklikleri

  • Tüm genel yöntemlerin boşluk durumunu açıklama olarak ekledi.
  • Daha akıcı UiObject2 hareketleri için kısa bir gecikmeyle MotionEvent yerleştirme işlemi eşzamansız olarak değiştirildi.
  • Bekleme sırasında yoklama aralığı 1.000 ms'den 100 ms'ye düşürüldü.
  • Güç düğmesini geçersiz kılan cihazları desteklemek için UiDevice#wakeUp ve UiDevice#sleep, KEYCODE_WAKEUP ve KEYCODE_SLEEP kullanacak şekilde güncellendi.
  • UiObject2#getDisplayId simgesi ve birden fazla ekranda nesne bulma ve yönetme desteği eklendi.
  • Koordinatlarını kullanarak bir noktayı tıklamak için UiObject#click ve UiObject2#clickAndWait yöntemleri eklendi.

Hata Düzeltmeleri

  • Ekran boyutu hesaplamalarının bazen yanlış olmasına ve ekranın bazı bölümlerinin (özellikle çok pencereli modda) yoksayılmasına neden olan sorun düzeltildi (Ifc016c).
  • UiDevice#takeScreenshot'daki ekran görüntülerinin ölçeklendirilmesi düzeltildi (Id80ad6).
  • Until.scrollFinished ve UiObject2#scroll güvenilirliği iyileştirildi (I7b0595).
  • Yüksek düzey modundaki IncorrectContextUseViolation uyarıları düzeltildi (Iffa6a0).