Test Uiautomator

  
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ü
7 Mayıs 2025 2.3.0 - - 2.4.0-alpha02

Bağımlılıkları beyan etme

test bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu inceleyin.

Uygulamanızın veya modülünüzün build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:

Eski

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

Kotlin

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

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ştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.

Yeni bir sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerine bakın.

Sürüm 2.4

Sürüm 2.4.0-alpha02

7 Mayıs 2025

androidx.test.uiautomator:uiautomator:2.4.0-alpha02 yayınlanır. 2.4.0-alpha02 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Yeni Uiautomator API'sinin ilk şekli. UiAutomatorTestScope, yeni onView API'lerine erişim sağlayan uiAutomator fabrikası aracılığıyla oluşturulabilir.
  • AccessibilityNodeInfo#getText kullanımıyla ilgili uyarı vermek ve textAsString kullanımını önermek için ilk lint kuralları.

API Değişiklikleri

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

Hata Düzeltmeleri

  • UiDevice#pressKeyCodes'teki 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ıyla ilgili sorun (I60dd3, If4edd) düzeltildi.
  • UiDevice#scrollUntil numarası aranırken nadiren görülen sonsuz döngü düzeltildi (I39989).

Sürüm 2.4.0-alpha01

26 Haziran 2024

androidx.test.uiautomator:uiautomator:2.4.0-alpha01 yayınlanır. 2.4.0-alpha01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Metin artık tuş basma yerine her zaman doğrudan eklendiğinden parametre kullanılmadığı için Configurator#getKeyInjectionDelay ve setKeyInjectionDelay 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üzlerindeki erişilebilirlik düğümünün eski olmasından kaynaklanan kararsızlığı azalttı (I3be25).
  • Eski bir UiObject2 üzerinde toString veya hashCode çağrısı yapılırken oluşan StaleObjectException hataları düzeltildi. (I38ea1).
  • Gereksiz waitForIdle çağrıları atlayarak UiWatcher performansı iyileştirildi. (I8c65e).
  • Özellikle her Configurator parametresinin ne zaman kullanıldığını açıklığa kavuşturmak için javadoc'daki yanlışlıklar düzeltildi. (Ie10b1, I71631).

Sürüm 2.3.0

Sürüm 2.3.0

21 Şubat 2024

androidx.test.uiautomator:uiautomator:2.3.0 yayınlanır. 2.3.0 sürümü bu taahhütleri 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 bunlar üzerinde işlem yapma desteği ve ikincil ekranları (Ie6544, I912cd) yönetmek için UiDevice yöntemleri eklendi.
  • Yeni seçiciler:
    • Nesneleri görünen kimliklerine (I1825b) göre seçmek için By.displayId eklendi.
    • Nesneleri ebeveynlerine göre seçmek için By.hasParent ve By.hasAncestor eklendi (I93c36).
    • Nesneleri ipucu metinlerine (Idd345) göre seçmek için By.hint yöntemleri eklendi.
  • Özel koşullar: Özel bekleme koşullarını desteklemek için bir Condition arayüzü kullanıma sundu ve ilgili UiDevice#wait, UiObject2#wait ve UiObject2#scrollUntil yöntemlerini ekledi (27c0ea, 099d6e).
  • Hata düzeltmeleri ve güvenilirlik
    • Ekran boyutu hesaplamalarının bazen yanlış olduğu ve ekranın bazı kısımlarını göz ardı edebileceği (Ifc016) sorun düzeltildi. Testlerde kullanılan koordinatların ve ofsetlerin ayarlanması gerekebilir.
    • Doğruluğu iyileştirmek (678ca3) ve kullanıcı hareketlerini daha iyi taklit etmek (454450) için MotionEvent enjeksiyonu güncellendi.
    • Kaydırma (I7b059), döndürme (c6cea0), uzun tıklama (49572b), yakınlaştırma/uzaklaş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ü bu taahhütleri içerir.

Sürüm 2.3.0-beta01

13 Aralık 2023

androidx.test.uiautomator:uiautomator:2.3.0-beta01 yayınlanır. 2.3.0-beta01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Tutarlılık için UiObject2 yüzdeye dayalı kenar boşluğu yöntemleri setGestureMarginPercentage ve setGestureMarginsPercentage olarak yeniden adlandırıldı (I24435)

Hata Düzeltmeleri

  • İkincil ekran bulunamadığında veya erişilemediğinde ortaya çıkan hata iyileştirildi (116b23)

Sürüm 2.3.0-alpha05

1 Kasım 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha05 yayınlanır. 2.3.0-alpha05 sürümü bu taahhütleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Kaydırma işleminin sonu algılanamadığında UiObject2#scrollUntil için yeniden deneme eklendi (Ibac6f).
  • Yeniden oluşturulursa UiDevice'ün eski bir Instrumentation örneği kullanmasına neden olan sorun düzeltildi (I18cae).
  • Nod'lar (Icafcb) dökülürken görüntüleme kimliği belirlenemiyorsa olası NPE düzeltildi.
  • Tıklanamayan/kaydırılabilir olmayan nesnelerde tıklama/kaydırma işlemi gerçekleştirirken 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 yayınlanır. 2.3.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Nesneleri ebeveynlerine göre bulma özelliğini desteklemek için By.hasParent ve By.hasAncestor eklendi (I93c36).
  • Nesnenin ipucu metnini almak için UiObject2#getHint ve By.hint yöntemlerini (Idd345) kullanarak nesneleri ipucu metinlerine göre seçmek için 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 olarak değiştirildi ancak önerilmez (Ic48a1).

Hata Düzeltmeleri

  • Hareket doğruluğuna hızdan daha fazla öncelik vererek kararsızlığı azaltmak için MotionEvent enjeksiyonu güncellendi (678ca3).
  • Performans darboğazlarını belirlemek için kaynak yoğun yöntemlere izleme eklendi (d17de3).
  • UiAutomation bağlantısı başlatırken yeniden deneme mekanizması eklendi (048caf).
  • UiDevice#dumpWindowHierarchy (b725eb) içindeki boş düğümlerden kaynaklanan olası bir NPE düzeltildi.
  • Gizli ekranlarda sorgu 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 yayınlanır. 2.3.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Yalnızca Until'daki yerleşik yöntemlere güvenmek yerine özel bekleme koşullarına izin vermek için bir Condition arayüzü kullanıma sundu ve UiDevice#wait ile UiObject2#wait yöntemlerini bu arayüzü kabul edecek şekilde güncelledi (27c0ea).
  • Bir koşul karşılanana kadar kaydırmayı desteklemek ve UiScrollable (099d6e) ile eşleşmeye ulaşmak için UiObject2#scrollUntil eklendi.
  • Cihaz türleri arasında rotasyonları kolaylaştırmak için UiDevice#setOrientationPortrait ve setOrientationLandscape eklendi (e13cb7).
  • Kenar boşluklarını nesne boyutuna göre ayarlama desteği için UiObject2#setGestureMarginPercent eklendi. (Ib8c77)

Hata Düzeltmeleri

  • 18 ila 22 arasındaki SDK'larda bazen geçersiz koordinatlar kullanan UiScrollable yöntemleri düzeltildi (b53ece).
  • 18 ve 19 SDK'larında UiObject2#setText ve clearText'nin metni değiştirmemesi sorunu düzeltildi (77e41d).
  • UiWatcher'lerin doğru sırada yürütülmemesi sorunu düzeltildi (c85f92).
  • UiDevice yön değişikliğinden sonra cihazın döndürülmesinin henüz tamamlanamaması sorunu düzeltildi (c6cea0).
  • Uzun tıklamalar, sürükleme ve yakınlaştırma/uzaklaştırma işlemlerinin 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 yayınlanır. 2.3.0-alpha02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Daha fazla bilgi sağlamak, olası sorunlar hakkında uyarıda bulunmak ve tutarlılığı artırmak için kitaplık genelinde günlük kaydı yeniden düzenlendi.
  • Ekran görüntüsü almak için GÜÇ ve SES_DÜŞÜR tuşlarına aynı anda basma gibi birden fazla tuşa aynı anda basmayı desteklemek üzere UiDevice#pressKeyCodes eklendi (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).
  • Desteği sonlandırılan UiAutomatorTestCase'leri işlediği ve artık gerekli olmadığı için UiAutomatorInstrumentationTestRunner kullanımdan kaldırıldı 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ına güncellendi (454450).
  • Çok satırlık metin ve açıklama eşleştirme desteği eklendi (1625e6, b/255787130).

Hata Düzeltmeleri

  • Nesneler sorgulanırken veya beklenirken zaman zaman StaleObjectException hatası oluşması düzeltildi (4cbcc0).
  • Başlangıç/sona ulaşılıp ulaşılmadığını belirtmeyen UiScrollable#scrollToBeginning, scrollToEnd, flingToBeginning ve flingToEnd dönüş değerleri düzeltildi (d33e06).
  • Yapılandırılmış zaman aşımını yoksayan UiScrollable#scrollForward ve scrollBackward yöntemleri düzeltildi (29e4f3).
  • BySelector kopyalama yapıcısının derinlik seçicileri işlememesi sorunu (6c7b91) düzeltildi.
  • UiObject#pinchIn ve pinchOut'teki geçersiz yüzde değerlerinin işlenmesi düzeltildi (01b973).
  • Temel UiAutomation bağlantısı sıfırlanırsa çoklu pencere desteğinin kaybedildiği nadir bir sorun düzeltildi (1bb956).

Sürüm 2.3.0-alpha01

7 Eylül 2022

androidx.test.uiautomator:uiautomator:2.3.0-alpha01 yayınlanır. 2.3.0-alpha01 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Tüm herkese açık yöntemlerin boşluğunu ek açıklamayla belirtti.
  • Daha akıcı UiObject2 hareketleri için MotionEvent ekleme işlemini kısa bir gecikmeyle eşzamansız olarak değiştirdik.
  • Beklemedeyken sorgu 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'yi KEYCODE_WAKEUP ve KEYCODE_SLEEP kullanacak şekilde güncellendi.
  • UiObject2#getDisplayId ve birden fazla ekranda nesneleri bulma ve yönetme desteği eklendi.
  • Bir noktayı koordinatlarını kullanarak tıklamak için UiObject#click ve UiObject2#clickAndWait yöntemleri eklendi.

Hata Düzeltmeleri

  • Ekran boyutu hesaplamalarının bazen yanlış olması ve özellikle çoklu pencere modunda (Ifc016c) ekranın bazı bölümlerinin göz ardı edilmesine neden olan sorun düzeltildi.
  • UiDevice#takeScreenshot (Id80ad6) sürümündeki ekran görüntülerinin ölçeklendirmesi düzeltildi.
  • Until.scrollFinished ve UiObject2#scroll (I7b0595) modellerinin güvenilirliği artırıldı.
  • Katı mod IncorrectContextUseViolation uyarıları düzeltildi (Iffa6a0).