Test Uiautomator

  
Uygulamalar arası işlevsel kullanıcı arayüzü testi için çerçeve
Son Güncelleme Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
21 Şubat 2024 2.3.0 - - -

Bağımlılıkları bildirme

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

Uygulamanızın veya modülünüz için build.gradle dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:

Modern

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

Kotlin

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

Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme bağımlılıkları ekleme konusuna bakın.

Geri bildirim

Geri bildiriminiz Jetpack'i daha iyi hale getirmemize yardımcı oluyor. Yeni sorunlar keşfederseniz veya bu kitaplığı nasıl geliştirebileceğimizle ilgili fikirleriniz varsa 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 sayı oluşturma

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

Sürüm 2.3.0

Sürüm 2.3.0

21 Şubat 2024

androidx.test.uiautomator:uiautomator:2.3.0 yayınlandı. 2.3.0 sürümü bu kayıtları içerir.

2.2.0'dan sonraki önemli değişiklikler

  • Çoklu ekran desteği: Birden çok ekrandaki nesneleri bulma ve bunlar üzerinde çalışma desteği, ikincil ekranları yönetmek için UiDevice yöntemleri (Ie6544, I912cd) eklendi.
  • Yeni seçiciler:
    • Nesneleri görüntüleme kimliklerine (I1825b) göre seçmek için By.displayId eklendi.
    • Nesneleri üstlerine göre seçmek için By.hasParent ve By.hasAncestor eklendi (I93c36).
    • Nesneleri ipucu metnine (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 sunuldu ve ilgili UiDevice#wait, UiObject2#wait ve UiObject2#scrollUntil yöntemleri (27c0ea, 099d6e) eklendi.
  • Hata düzeltmeleri ve güvenilirlik
    • Görüntü boyutu hesaplamalarının zaman zaman yanlış olmasına ve ekranın bazı bölümlerinin yoksayılmasına (Ifc016) neden olan sorun düzeltildi. Testlerde kullanılan koordinatların ve ofsetlerin ayarlanması gerekebilir.
    • Doğruluğu artırmak (678ca3) ve kullanıcı hareketlerinin daha iyi emülasyonunu (454450) iyileştirmek için MotionEvent yerleştirme güncellendi.
    • Kaydırma (I7b059), döndürme (c6cea0), uzun tıklamalar (49572b), sıkıştırma (3c619a) ve diğer özelliklerin güvenilirliği geliştirildi.

Sürüm 2.3.0-rc01

7 Şubat 2024

androidx.test.uiautomator:uiautomator:2.3.0-rc01, hiçbir değişiklik yapılmadan serbest bırakıldı. 2.3.0-rc01 sürümü bu kayıtları içerir.

Sürüm 2.3.0-beta01

13 Aralık 2023

androidx.test.uiautomator:uiautomator:2.3.0-beta01 yayınlandı. 2.3.0-beta01 sürümü bu kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • İkincil ekran bulunamadığında veya erişilebilir olmadığında görüntülenen hata mesajı düzeltildi (116b23)

Sürüm 2.3.0-alpha05

1 Kasım 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha05 yayınlandı. 2.3.0-alpha05 sürümü bu kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Kaydırma sonu algılanamadığında UiObject2#scrollUntil öğesine yeniden deneme eklendi (Ibac6f).
  • UiDevice ürününün yeniden oluşturulması durumunda eski bir Instrumentation örneği kullanmasıyla ilgili sorun düzeltildi (I18cae).
  • Düğümler dökümü yapılırken görüntü kimliği belirlenemiyorsa (Icafcb) olası NPE düzeltildi.
  • Tıklanamayan/kaydırılabilir nesnelerde tıklama/kaydırma işlemi gerçekleştirilirken gösterilen 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ınlandı. 2.3.0-alpha04 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Nesneleri üstlerine göre bulmayı desteklemek için By.hasParent ve By.hasAncestor eklendi (I93c36).
  • Bir nesnenin ipucu metnini almak için UiObject2#getHint ve nesneleri ipucu metnine (Idd345) göre seçmek için By.hint yöntemleri eklendi.
  • Nesneleri, bulundukları ekrana göre seçmeyi desteklemek için By.displayId eklendi (I1825b).
  • Bir görüntülü reklamın boyutlarının kimliğine göre bulmak için UiDevice#getDisplayHeight(int) ve UiDevice#getDisplayWidth(int) yöntemleri eklendi (Ie6544).
  • Geriye dönük uyumluluk için wait(SearchCondition, long) ve wait(UiObject2Condition, long) yöntemleri yeniden eklendi (Iebfda).
  • UiDevice#executeShellCommand öğesi herkese açık olarak değiştirildi ancak gizli (Ic48a1) yerine kullanılması önerilmez.

Hata Düzeltmeleri

  • MotionEvent yerleştirme, hareket doğruluğu hıza (678ca3) göre önceliklendirilerek gevşekliği azaltmak için güncellendi.
  • Performans sorunlarını belirlemek için kaynakları yoğun olarak kullanan yöntemlere izleme özelliği eklendi (d17de3).
  • UiAutomation bağlantısı başlatılırken yeniden deneme mekanizması eklendi (048caf).
  • UiDevice#dumpWindowHierarchy içindeki (b725eb) boş düğümlerden olası NPE sorunu düzeltildi.
  • Özel ekranlarda sorgulama veya çalışma sırasında karşılaşılan 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ınlandı. 2.3.0-alpha03 sürümü bu kayıtları içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • SDK 18-22'de (b53ece) zaman zaman geçersiz koordinatlar kullanan UiScrollable yöntemleri düzeltildi.
  • SDK 18 ve 19'daki (77e41d) metni değiştiremeyen UiObject2#setText ve clearText düzeltildi.
  • UiWatcher öğelerinin doğru sırada (c85f92) uygulanmaması sorunu düzeltildi.
  • UiDevice yön değişikliğinden (c6cea0) sonra cihaz döndürmesinin henüz tamamlanmamış olabileceği sorun düzeltildi.
  • Uzun tıklama, sürükleme ve sıkıştırma işlemlerinin (49572b, 3c619a) güvenilirliği iyileştirildi.

Sürüm 2.3.0-alpha02

11 Ocak 2023

androidx.test.uiautomator:uiautomator:2.3.0-alpha02 yayınlandı. 2.3.0-alpha02 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Daha fazla bilgi sağlamak, olası sorunlar hakkında uyarıda bulunmak ve tutarlılığı iyileştirmek için kitaplık genelinde günlük kaydı yeniden düzenlendi.
  • UiDevice#pressKeyCodes tuşu, aynı anda birden fazla tuşa basmayı desteklemek için eklendi (örneğin, ekran görüntüsü almak için POWER ve VOLUME_DOWN tuşlarına basma). (22e525).
  • Yöntem adındaki (4e2f65) bir yazım hatasını düzeltmek için UiDevice#setCompressedLayoutHierarchy eklendi ve UiDevice#setCompressedLayoutHeirarchy kullanımdan kaldırıldı.
  • UiAutomatorInstrumentationTestRunner, desteği sonlandırılmış UiAutomatorTestCase'ları işlediği ve artık gerekli olmadığı için desteği sonlandırıldı olarak işaretlendi (be6c85).
  • Kullanıcı hareketlerinin daha iyi emülasyonunu sağlamak için UiObject2 MotionEvent sn. arasındaki gecikme, ekran yenileme hızının iki katı olarak güncellendi (454450).
  • Çok satırlı metin ve açıklama eşleşmesi için destek eklendi (1625e6, b/255787130).

Hata Düzeltmeleri

  • Nesneleri sorgularken veya beklerken zaman zaman StaleObjectException öğelerinin gönderilmesi düzeltildi (4cbcc0).
  • Başa/sona ulaşılıp ulaşılmadığını belirtmeyen UiScrollable#scrollToBeginning, scrollToEnd, flingToBeginning ve flingToEnd değerleri düzeltildi (d33e06).
  • Yapılandırılmış zaman aşımını (29e4f3) yok sayan UiScrollable#scrollForward ve scrollBackward yöntemleri düzeltildi.
  • Derinlik seçicileri işlemeyen BySelector kopyası oluşturucusu düzeltildi (6c7b91).
  • UiObject#pinchIn ve pinchOut (01b973) değerlerinde geçersiz yüzde değerlerinin işlenmesi düzeltildi.
  • Temel UiAutomation bağlantısı sıfırlandığında çoklu pencere desteğinin kaybolmasına neden olan nadir görülen 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ınlandı. 2.3.0-alpha01 sürümü bu kayıtları içerir.

API Değişiklikleri

  • Herkese açık tüm yöntemlerin geçersiz olduğu belirtildi.
  • Daha düzgün UiObject2 hareketleri için MotionEvent yerleştirme işlemi, kısa bir gecikmeyle eşzamansız olarak değiştirildi.
  • Beklerken yoklama aralığı 1000 ms'den 100 ms'ye düşürüldü.
  • UiDevice#wakeUp ve UiDevice#sleep, güç düğmesini geçersiz kılan cihazları desteklemek için KEYCODE_WAKEUP ve KEYCODE_SLEEP kullanılacak şekilde güncellendi.
  • Birden fazla ekranda nesneleri bulma ve yönetme desteği ile UiObject2#getDisplayId eklendi.
  • Koordinatlarını kullanarak bir noktayı tıklamak için UiObject#click ve UiObject2#clickAndWait yöntemleri eklendi.

Hata Düzeltmeleri

  • Görüntü boyutu hesaplamalarının zaman zaman yanlış olmasına ve özellikle çoklu pencere modunda (Ifc016c) ekranın bazı bölümlerinin yoksayılmasına neden olan sorun düzeltildi.
  • UiDevice#takeScreenshot öğesinde (Id80ad6) ekran görüntülerinin ölçeklenmesi düzeltildi.
  • Until.scrollFinished ve UiObject2#scroll güvenilirliği iyileştirildi (I7b0595).
  • Yüksek düzey modu IncorrectContextUseViolation uyarıları (Iffa6a0) düzeltildi.