Test Uiautomator

  
Uygulamalar arası işlevsel kullanıcı arayüzü testi için çerçeve
Son Güncelleme Kararlı Sürüm Yayın Adayı Beta Sürümü Alfa Sürümü
26 Haziran 2024 2.3.0 - - 2.4.0-alfa01

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 veya modülünün build.gradle dosyasına ihtiyaç duyduğunuz yapılar için bağımlılıkları ekleyin:

Eski

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")
}

Bağımlılıklar hakkında daha fazla bilgi edinmek için Derleme bağımlılıkları ekleme bölümüne bakın.

Geri bildirim

Geri bildiriminiz Jetpack'i iyileştirmemize yardımcı olacaktır. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz varsa 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 ekleyebilirsiniz.

Yeni sayı oluştur

Daha fazla bilgi için Sorun İzleyici dokümanlarına bakın.

Sürüm 2.4

Sürüm 2.4.0-alpha01

26 Haziran 2024

androidx.test.uiautomator:uiautomator:2.4.0-alpha01 yayınlandı. Sürüm 2.4.0-alpha01 bu kaydetmeleri içerir.

API Değişiklikleri

  • Metin, tuşlara basmak yerine her zaman doğrudan yerleştirildiği için artık kullanılmadığından Configurator#getKeyInjectionDelay ve setKeyInjectionDelay kullanımdan kaldırıldı. (I3bcc5).

Hata Düzeltmeleri

  • UiObject2 hareket etkinlikleri arasındaki gecikme, dinamik yenileme hızlarını (ör. Smooth Display) hesaba katacak şekilde güncellendi (I43f12).
  • Erişilebilirlik önbelleğini (I3be25) düzenli olarak geçersiz kılarak belirli kullanıcı arayüzlerindeki erişilebilirlik düğümü eskiliğinden kaynaklanan stabilite azaltıldı.
  • Eski bir UiObject2 cihazda toString veya hashCode çağrılırken görülen StaleObjectException sorunları düzeltildi. (I38ea1).
  • Gereksiz waitForIdle çağrıları atlanarak UiWatcher performansı iyileştirildi. (I8c65e).
  • Özellikle her Configurator parametresinin ne zaman kullanıldığını netleştirmek için javadoc hataları 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ınlandı. 2.3.0 sürümü bu kaydetmeleri içerir.

2.2.0'dan bu yana önemli değişiklikler

  • Çoklu ekran desteği: Birden fazla ekranda nesneleri bulma ve üzerinde çalıştırma desteği ve ikincil ekranları yönetmek için UiDevice yöntemleri (Ie6544, I912cd) eklendi.
  • Yeni seçiciler:
    • Nesneleri görünen kimliklerine (I1825b) göre seçmek için By.displayId eklendi.
    • By.hasParent ve By.hasAncestor, nesneleri üst öğelerine (I93c36) göre seçmek için eklendi.
    • 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 bir Condition arayüzü gösterildi ve bunlara karşılık gelen UiDevice#wait, UiObject2#wait ve UiObject2#scrollUntil yöntemleri eklendi (27c0ea, 099d6e).
  • Hata düzeltmeleri ve güvenilirlik
    • Görüntü boyutu hesaplamalarının zaman zaman yanlış olmasına ve ekranın bazı bölümlerini (Ifc016) yoksaymasına neden olan sorun düzeltildi. Testlerde kullanılan koordinatların ve ofsetlerin ayarlanması gerekebilir.
    • Doğruluğu artırmak (678ca3) ve kullanıcı hareketlerini (454450) daha iyi emüle etmek 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 öğelerin güvenilirliği artırıldı.

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 yayınlandı. Sürüm 2.3.0-rc01 bu kaydetmeleri içerir.

Sürüm 2.3.0-beta01

13 Aralık 2023

androidx.test.uiautomator:uiautomator:2.3.0-beta01 yayınlandı. Sürüm 2.3.0-beta01 bu kaydetmeleri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • İkincil ekran bulunamadığında veya erişilebilir olmadığında bildirilen hata 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 kaydetmeleri 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 özelliği eklendi (Ibac6f).
  • UiDevice ürününün yeniden oluşturulması halinde eski bir Instrumentation örneğini kullanmasıyla ilgili sorun (I18cae) düzeltildi.
  • Düğümler (Icafcb) dökümü sırasında görünen kimlik belirlenemediğinde olası NPE (NPE) düzeltildi.
  • Tıklanamayan/kaydırılabilir nesnelerde tıklama/kaydırma gerçekleştirilirken uyarı eklendi (I4a5d9).
  • Güvenilirliği iyileştirmek 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 kaydetmeleri içerir.

API Değişiklikleri

  • Ebeveynlerine göre nesne bulmayı desteklemek için By.hasParent ve By.hasAncestor eklendi (I93c36).
  • Nesnenin ipucu metnini almak için UiObject2#getHint ve nesneleri ipucu metinlerine (Idd345) göre seçmek için By.hint yöntem 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, herkese açık olarak değiştirildi ancak gizli yerine önerilmedi (Ic48a1).

Hata Düzeltmeleri

  • Hız yerine hareket doğruluğuna öncelik vererek gevşekliği azaltmak için MotionEvent yerleştirme güncellendi (678ca3).
  • Performans sorunlarını belirlemek için yoğun kaynak yöntemlerine izleme eklendi (d17de3).
  • UiAutomation bağlantısı başlatılırken yeniden deneme mekanizması (048caf) eklendi.
  • UiDevice#dumpWindowHierarchy içindeki boş düğümlerde olası bir NPE (b725eb) sorunu düzeltildi.
  • Özel ekranlarda sorgulama veya çalışmayla ilgili beklenmeyen 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 kaydetmeleri içerir.

API Değişiklikleri

  • Yalnızca Until ürününde yerleşik olarak bulunan uygulamalardan yararlanmak yerine özel bekleme koşullarına olanak tanımak için bir Condition arayüzü kullanıma sunuldu ve bu arayüzü kabul edecek şekilde UiDevice#wait ve UiObject2#wait yöntemleri güncellendi (27c0ea).
  • Bir koşul karşılanana kadar kaydırmayı desteklemek ve UiScrollable (099d6e) ile denkliğe ulaşmak için UiObject2#scrollUntil eklendi.
  • Cihaz türleri (e13cb7) arasında döndürmeleri kolaylaştırmak için UiDevice#setOrientationPortrait ve setOrientationLandscape eklendi.
  • Nesne boyutuna göre kenar boşluklarının ayarlanmasını desteklemek için UiObject2#setGestureMarginPercent eklendi. (Ib8c77)

Hata Düzeltmeleri

  • SDK 18 ile 22 arasında (b53ece) zaman zaman geçersiz koordinatlar kullanan UiScrollable yöntemleri düzeltildi.
  • SDK 18 ve 19'daki (77e41d) UiObject2#setText ve clearText metinlerinin değiştirilmesi sorunu düzeltildi.
  • Doğru sırada yürütülmeyen UiWatcher öğeleri düzeltildi (c85f92).
  • UiDevice yön değişikliğinden (c6cea0) sonra cihaz döndürmenin henüz tamamlanmamış olabileceği sorun düzeltildi.
  • Uzun tıklama, sürükleme ve sıkıştırma hareketleri için daha yüksek güvenilirlik (49572b, 3c619a).

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 kaydetmeleri içerir.

API Değişiklikleri

  • Daha fazla bilgi sağlamak, olası sorunlar hakkında sizi uyarmak ve tutarlılığı artırmak için kitaplık genelinde günlük kaydı yeniden işlendi.
  • UiDevice#pressKeyCodes, aynı anda birden fazla tuşa basmayı desteklemek için eklendi (ör. ekran görüntüsü almak için GÜÇ ve VOLUME_DOWN tuşlarına basın (22e525).
  • Yöntem adındaki (4e2f65) bir yazım hatasını düzeltmek için UiDevice#setCompressedLayoutHierarchy eklendi ve UiDevice#setCompressedLayoutHeirarchy desteği sonlandırıldı.
  • UiAutomatorInstrumentationTestRunner, desteği sonlandırılmış UiAutomatorTestCase öğelerini işlediği ve artık gerekli olmadığı (be6c85) için desteği sonlandırıldı olarak işaretlendi.
  • Kullanıcı hareketlerinin daha iyi emülasyonu için UiObject2 MotionEvent sn. 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 için destek eklendi (1625e6, b/255787130).

Hata Düzeltmeleri

  • Sorgularken veya nesneleri beklerken zaman zaman StaleObjectException öğesinin atılması sorunu düzeltildi (4cbcc0).
  • Başa/bitişe ulaşılıp ulaşılmadığını belirtmeyen UiScrollable#scrollToBeginning, scrollToEnd, flingToBeginning ve flingToEnd dönüş değerleri (d33e06) düzeltildi.
  • Yapılandırılmış zaman aşımını (29e4f3) yoksayan UiScrollable#scrollForward ve scrollBackward yöntemleri düzeltildi.
  • Derinlik seçicileri işlemeyen BySelector kopya oluşturucusu düzeltildi (6c7b91).
  • UiObject#pinchIn ve pinchOut (01b973) öğelerinde geçersiz yüzde değerlerinin işlenmesi düzeltildi.
  • Temel UiAutomation bağlantısı sıfırlanırsa (1bb956) çoklu pencere desteğinin kaybedilmesine neden olan nadir bir sorun düzeltildi.

Sürüm 2.3.0-alpha01

7 Eylül 2022

androidx.test.uiautomator:uiautomator:2.3.0-alpha01 yayınlandı. Sürüm 2.3.0-alpha01 bu kaydetmeleri içerir.

API Değişiklikleri

  • Herkese açık tüm yöntemlerin geçersiz olduğuna dair açıklama eklendi.
  • Daha düzgün UiObject2 hareketleri için kısa bir gecikmeyle MotionEvent yerleştirme eşzamansız olarak değiştirildi.
  • Bekleme sırasında yoklama aralığı 1.000 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 uygulamalarını kullanacak şekilde güncellendi.
  • UiObject2#getDisplayId özelliği eklendi. Ayrıca birden fazla ekranda nesneleri bulup yönetme desteği eklendi.
  • Koordinatları kullanarak bir noktayı tıklamak için UiObject#click ve UiObject2#clickAndWait yöntemleri eklendi.

Hata Düzeltmeleri

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