Android test otomasyon araçları: Appium, UI Automator ve Espresso

BeePOS LLC  |   |  10 dakika okuma

Kontrol etmeniz gereken sınır göre bir Android otomasyon test aracı seçin: uygulama tabanlı kullanıcı arayüzü, sistem ve uygulama arası davranış, platform arası WebDriver testleri veya gözlemlenebilir gerçek telefon iş akışları.

Android test otomasyon araçları: Appium, UI Automator ve Espresso
Android test otomasyon araçları: Appium, UI Automator ve Espresso

Kısa cevap: popülerlik yerine test sınırına göre seçin

Tek bir en iyi Android otomasyon test aracı yoktur. Ekibiniz uygulamanın sahibi olduğunda ve kullanıcı arayüzü koduna yakın iddialara ihtiyaç duyduğunda Compose testini veya Espresso'yu seçin. Bir test uygulamanın sınırlarını aşması veya Android sistem kullanıcı arayüzüyle etkileşime girmesi gerektiğinde UI Automator'u seçin. Bir WebDriver tarzı istemci, birkaç programlama dili veya paylaşılan bir Android ve iOS otomasyon katmanı önemli olduğunda Appium'u seçin. Bir inceleyici gerçek bir telefona bakması, görünür durumu tanımlaması, ekran görüntüleri toplaması veya uygulamanın test kodunun dışında bir operasyonel iş akışını modellemesi gerektiğinde gözlemlenebilir bir görsel akış ekleyin.

Bu araçlar aynı kalite sorununun farklı katmanlarını çözer.Android'in resmi kullanıcı arayüzü test rehberiUI testlerini bir uygulamayı başlatmak, etkileşimi simüle etmek ve doğru bir şekilde tepki verdiğini kontrol etmek olarak tanımlar. Bu nedenle yararlı bir araç seçimi, testin üretmesi gereken kanıtlardan, geçmesi gereken yazılım sınırından ve onu kimin sürdüreceğinden başlar. Bu, bir çerçevenin evrensel olarak daha hızlı veya daha güvenilir olduğunu iddia eden bir ölçüt değil, mevcut resmi belgelerin araştırma tabanlı bir karşılaştırmasıdır.

  • Uygulama tarafından sahip olunmuş Görüntü Kullanıcı Arayüzü: Espresso ile başlayın.
  • Uygulama tarafından sahip olunmuş Jetpack Compose Kullanıcı Arayüzü: Compose test API'lerini kullanarak başlayın.
  • Sistem Kullanıcı Arayüzü, izinler, çoklu pencere veya uygulama arası davranış: UI Automator ile başlayın.
  • Çapraz platform WebDriver otomasyonu ve dil istemci esnekliği: Appium'u değerlendirin.
  • Görünür siyah kutulu iş akışları, OCR, görüntü durumu ve inceleyici dostu kanıtlar: görsel bir akış katmanı ekleyin.

Android otomasyon test araçları karşılaştırıldı

Araç veya yaklaşımEn iyi uyumUygulama sınırıBirincil seçiciler veya kanıtlarAna dengeleme
Test oluşturmaJetpack Compose ile oluşturulan uygulamalarTest edilen uygulama veya bileşenSemantik, özellikler, eylemler, iddialarTest bilincine sahip Kompoz kod ve Android test kurulumuna ihtiyaç duyar
EspressoGörünüm tabanlı uygulama davranış testiTest altında olan uygulamaEşleştirmeleri, eylemleri, iddiaları görüntüleyinGeniş çaplı uygulama arası yolculuklar için ana araç olarak tasarlanmamıştır
UI OtomasörüSistem Kullanıcı Arayüzü, uygulama arası, çoklu pencere, uçtan uca Android yollarıCihaz Kullanıcı Arayüzü ve yüklü uygulamalarErişilebilirlik düğümleri, önkoşullar, ekran görüntüleri, uygulama durumuAndroid özel ve genellikle Android test araç zincirinde tutulur
UiAutomator2 ile AppiumPlatformlar arası WebDriver tarzı mobil otomasyonMüşteri Appium sunucusuna ve Android sürücüsüneWebDriver lokatörleri, yetenekleri, sürücü komutlarıDaha fazla hareketli parça: sunucu, sürücü, SDK, JDK ve cihaz yapılandırması
Görsel akışGörülebilen gerçek telefon kontrolleri ve operasyonel iş akışlarıUygulama kodunun dışından görünür cihaz durumuUI ağacı, OCR, şablonlar, görüntüler, ekran görüntüleri, dallarBirim, bileşen veya ölçüm cihazları iddialarını değiştirmez

Tablo bir kazanma tahtası değil, bir sınır haritasıdır. Olgun ekipler genellikle birkaç satırı birleştirir. Bir Kompozisyon ekranı, hızlı bileşen davranış testi, izin ve sistem geçişleri için bir Kullanıcı Arayüzü Otomasörü yolu, iOS ile paylaşılan bir Appium paketi ve dağıtımdan sonra kanıtları yakalayan küçük denetimli gerçek telefon akışı içerebilir. Tekrarlama, yalnızca iki paketin aynı cihaz maliyetiyle aynı gereksinimi kanıtladığında bir sorun haline gelir.

Uygulama sahipliğinde davranışlar için Compose testlerini veya Espresso'yu kullanın

Compose testleri ve Espresso, ekibin uygulama kodunu kontrol ettiği ve gereksinimin o uygulamanın içindeki semantik davranış olduğu durumlarda en güçlü başlangıç noktalarıdır.Test API'leri oluşturunsemantik yoluyla öğeler bulun, özellikleri doğrulayın, eylemler gerçekleştirin ve kullanıcı arayüzü ile senkronize olun.Espresso, görünüm eşleştiricileri, eylemler ve iddialar kullanırHata içeren bir döngüden faaliyetlere ve görüntülere doğrudan erişimi caydırırken Görüntü tabanlı arayüzler için.

Uygulamaya olan bu yakınlık yararlıdır. Testler deterministik veriler enjekte edebilir, bir bileşeni izole edebilir, etkinleştirilmiş veya seçilen durumu beyan edebilir ve belirli bir semantik nedenden dolayı başarısız olabilir. Ayrıca, bu, paketin uygulamanın mimarisine ve test oluşturmasına takılı olduğunu da ifade eder. Bu takılış, gereksinim uygulamaya ait olduğunda uygundur: bir doğrulama mesajı görünür, gezinme doğru hedefi seçilir veya geçerli bir giriş mevcut olana kadar bir düğme devre dışı kalır.

Ne zaman Kompozisyon testi seçin

  • Arayüz öncelikle Jetpack Compose'dur ve yararlı semantikleri ortaya koyar.
  • Kontrol edilmiş durumlu bileşen seviyesi testleri ve etkinlik seviyesi testleri istiyorsunuz.
  • Dinlenme senkronizasyonu ve Kompozisyonla ilgili zaman kontrolü, iddiaların deterministik hale gelmesine yardımcı olur.

Ne zaman Espresso seçin

  • Uygulama Görüntü tabanlıdır veya davranış testlerine ihtiyaç duyan Görüntü ekranlarına sahiptir.
  • Test, bir görünümü bir kaynak kimliği veya odaklanmış bir eşleştirici ile tanımlayabilir.
  • Gereksinim, cihaz çapında bir yolculuk yerine uygulamadaki bir etkileşim ve iddia içindir.

Android sistemi ve uygulama arası yollar için UI Automator'u kullanın

Android cihaz kendisi test sınırının bir parçası olduğunda UI Automator kazanır.Modern UI Automator API'siUygulamaları başlatabilir, önkoşullu öğeler bulabilir, izin iletişim kutularını işleyebilir, uygulama görünürlüğünü veya istikrarlı bir erişilebilirlik ağacı bekleyebilir, çoklu pencereleri inceleyebilir ve ekran görüntüleri yakalayabilir. Bu yetenekler izin istemlerini, Ayarlar ekranlarını, bildirimleri, resim içinde resim, bölünmüş ekran, başlatıcı davranışı ve kurulu uygulamalar arasında geçen yolculukları destekler.

Önemli ayrım, UI Automator'un Espresso'dan yalnızca 'daha güçlü' olması değil. Kullanıcı arayüzünü farklı bir konumdan gözlemler. Bu dış konum, sistem ve uygulama arası yüzeyleri görür, ancak uygulama iç kısımlarına ve test ikizlerine daha az doğrudan erişim sağlar. Cihaz sınırına gerçekten ihtiyaç duyan ince uçtan uca yollarda kullanın; çoğu uygulama mantığını daha hızlı, daha odaklanmış testlerde tutun.

Themevcut UI Automator belgesidahil olarak yerleşik koşullu öğe zaman aşımları, açıkça belirtilen stabilite beklemeleri, ekran görüntüleri ve sonuç raporlaması da içerir. Bu özellikler sabit uykulara güvenme cazibesini azaltır. Belgeler, erişilebilirlik ağacı stabilitesinin her arka plan görevinin boş olduğunu kanıtlamadığını belirtir, bu nedenle mevcut olduğunda en iyi bekleme her zaman adlandırılmış bir uygulama koşulu olarak kalır.

Bir WebDriver tarzı mobil katman önemli olduğunda Appium'u kullanın

Kuruluş JavaScript, Java, Python, Ruby veya .NET'ten mobil otomasyon istediğinde, zaten WebDriver kavramlarını kullanıyorsa veya tek bir otomasyon sunucu modelinin arkasında ilgili Android ve iOS paketlerini istediğinde Appium güçlü bir adaydır. Android'de,Resmi UiAutomator2 hızlı başlatmasürücüyi yükler, onu UiAutomator2 otomasyon adını kullanarak seçer ve Android araç zinciri aracılığıyla bir simülatör veya USB hata ayıklama cihazına bağlanır.

Bu esneklik bir operasyonel maliyeti vardır. -ıbelgelendirilmiş kurulumBir Appium sunucusu, platform sürücüsü, Android SDK ve platform araçları, uyumlu bir JDK, cihaz hazırlığı, yetenekler ve istemci bağımlılıkları içerir. Editoryal tavsiyemiz, belirsiz bir dizüstü bilgisayar tarifi sürdürmek yerine, bu sürümleri açıkça sahip olmak ve kurulumu sürücünün doktor komutuyla doğrulamaktır.

Appium, yalnızca gelecekteki bir iOS paketi mümkün olduğu için otomatik olarak en iyi seçim değildir. Mevcut gereksinim, uygulama durumuna derin erişim sağlayan küçük bir yalnızca Android kod tabanıysa, yerel Android testleri daha basit kalabilir. Bir QA platformu zaten cihaz oturumlarını, dil istemcilerini, raporlamayı ve çapraz platform sayfa nesnelerini standartlaştırıyorsa, Appium'un paylaşılan modeli ek katmanları haklı çıkarabilir.

Görülebilen siyah kutulu iş akışları için görsel bir akış ekleyin

Gerekli durum bir kişinin gerçek bir telefonda gözlemleyebileceği bir şeyde olduğunda ve iş akışı uygulama deposunun dışında anlaşılır olmalıdırsa görsel bir akış yararlıdır. Örnekler arasında dağıtım sonrası duman kontrolü, destek çoğaltması, üçüncü taraf uygulamalarındaki operasyonel bir yol, yerelize edilmiş görünür metin kontrolü veya durum bilinmediğinde ekran görüntüleriyle durması gereken denetimli bir cihaz görevi yer alır.

LaiCai FlowUI ayrıştırma, öğe bulma, dokunmalar, metin girişi, beklemeler, dallar, sınırlandırılmış tekrarlama, ekran görüntüleri, OCR, şablon eşleştirme, nesne tespiti, çocuk akışları ve açıkça geri dönüş veya durma davranışı birleştirebilir. Bu, karar yolunu görünür kılar: adlandırılmış bir durumu gözlemleyin, bir eylemi izin verin, son koşulu doğrulayın ve başarısızlık durumunda kanıtları koruyun.LaiCai Flow Insideuyumlu bir Profil'i çalıştırabilirLaiCai Android Agentuygulama sonrası, ancak uyumluluk o Profil tarafından kullanılan her düğüm ve varlıkla ilgilidir.

Bu katman, uygulama doğumlu iddiaları değiştirmez, tamamlar olmalıdır. Görünür metin kanıt olduğunda OCR uygundur, ancak kullanıcı arayüzü ağacı bunu güvenilir bir şekilde ortaya çıkarmaz. Şablon eşleştirme, doğrulanmış bir görsel hedef için uygundur. Bir ekran görüntüsü, kompozisyon veya başarısızlık incelemesi için yararlıdır. Kaynak kodu mevcut olduğunda, hiçbirinin iş mantığı birim testi veya kesin bir Kompoz iddiasının yerini almaması gerekir. -ıAndroid görsel test rehberio kanıt türleri arasında nasıl seçim yapılacağını açıklıyor.

Katmanlı bir Android test stratejisi oluşturun

  1. Gereksinimi, bir dizi dokunuş değil, gözlemlenebilir bir sonuç olarak yazın.
  2. Cihaz kullanıcı arayüzünün gereksiz olduğu yerel veya bileşen testlerinde iş mantığını yerleştirin.
  3. Uygulama sahibi davranışlar ve semantik iddialar için Compose testi veya Espresso kullanın.
  4. UI Automator'u yalnızca sistem, çoklu pencere, izin veya uygulama arası sınırlar için ekleyin.
  5. Sunucusu, istemcileri, raporlaması veya çapraz platform modeli somut bir organizasyonel değer sağladığında Appium'u kullanın.
  6. Kod seviyesi paketlerinin açıkça üretemediği kanıt için görsel bir gerçek telefon akışı ekleyin.
  7. Her uçtan uca yolu dar tutun, bir başlangıç durumunu tanımlayın, her beklemeyi ve yeniden denemeyi sınırlayın ve kurtarma onu değiştirmeden önce başarısızlık durumunu yakalayın.

Bir gereksinim için bir ana sahibine sahip olmalıdır. Örneğin, form doğrulama uygulama düzeyindeki testlere aittir; izin devretimi bir UI Automator yoluna aittir; paylaşılan bir Android ve iOS ödeme sözleşmesi Appium'a aittir; ve sürüm sonrası gerçek telefon kanıtı çalışması bir görsel akışa aittir. Katmanlar, her iddianın her çerçeveye kopyalanmadan aynı kullanıcı yolculuğuna atıfta bulunabilir.

Thegerçek telefon QA duman testi kılavuzuYayınlanmış bir kontrolü küçük ve tekrar edilebilir hale getirmenin nasıl yapılacağını gösterir. -ıotomasyon durdurma koşulu kılavuzumevcut ekranın artık bir sonraki eylemi haklı çıkarmadığı durumlarda zaman aşımlarını, sınırlandırılmış tekrar denemelerini, son koşulları ve insan gözetimini kapsar.

Pratik bir seçim kontrol listesi

soruEğer evet ise, şu şekilde başlayın
Bir Compose UI'nize sahip misiniz ve semantik bileşen veya ekran iddialarına mı ihtiyacınız var?Test oluşturma
Bir Görüntü tabanlı bir kullanıcı arayüzüne sahip misiniz ve odaklanmış uygulama içi davranış testlerine mi ihtiyacınız var?Espresso
Yol Ayarlar, izinler, başlatıcı, pencereler veya başka bir uygulamayı geçmek zorunda mı?UI Otomasörü
Ekip WebDriver istemcileri mi yoksa paylaşılan bir Android ve iOS otomasyon mimarisi mi gerektiriyor?Appium
Bir geliştirici olmayan kişi gerçek bir telefonda görünür durumu, OCR'yi, görüntüleri veya ekran görüntülerini incelemeli mi?Görsel akış
Gereksinim esas olarak cihaz kullanıcı arayüzüne bağlılığı olmayan iş mantığı mı?Hiçbiri: yerel bir birim veya entegrasyon testi kullanın

Yeni bir çerçeve benimsemeden önce, prototip bir temsilci yolunu belirleyin ve tam bakım yüzeyini yazın: test kodu, uygulama kancaları, sunucu veya sürücü sürümleri, cihaz sıfırlama, test verileri, izinler, ekran görüntüleri, günlükler ve CI mülkiyeti. En iyi araç, ekibin gerçekten ödeyeceği bir bakım maliyetinde güvenilir kanıt üreten araçtır.

Android otomasyon test araçları SSS

UI Automator, Appium UiAutomator2 ile aynı mı?

Hayır.UI Automator, bir Android test kütüphanesi ve API'sidir..Appium'un UiAutomator2 sürücüsü bir Appium platform sürücüsüdürBir Appium/WebDriver'a yönelik katmanın arkasında. İsimler ilişkili olmasına rağmen kurulumları, istemci modelleri ve bakım sınırları farklıdır.

Appium Espresso veya Compose testlerini değiştirebilir mi?

Aynı görünür yolculukların çoğunu otomatikleştirebilir, ancak tavsiyemiz her uygulama düzeyindeki testi değiştirmemektir.Test oluşturmaveEspressouygulama durumuna ve semantik kullanıcı arayüzü davranışına daha yakındırlar. Appium, dış istemci, sürücü mimarisi veya çapraz platform tutarlılığının gereksinimlerin bir parçası olduğunda en değerli hale gelir.

Üçüncü taraf uygulamaları test etmek için hangi araç en iyisidir?

Hedef uygulama kodunu kendiniz sahip olmadığınızda, UI Automator, Appium veya incelemeli bir siyah kutulu görsel akış uygulama içi çerçevelerden daha uygundur. Otomasyonun yetkili olduğunu doğrulayın, istikrarlı gözlemlenebilir seçicileri kullanın, hassas veya yıkıcı eylemlerden kaçının ve üçüncü taraf UI değişikliklerinin bakım gerektirdiğini bekleyin.

Görsel akışlar sürekli entegrasyonda çalışır mı?

Cihaz oturumu, varlıklar, girdiler, arıza artefaktları ve sonuç arayüzü kontrol ediliyorsa, otomatik bir boru hattına katılabilirler. Bununla birlikte, denetimli gerçek telefon iş akışı ve bir CI iddia çerçevesi farklı işletim modellerini sağlar. Öncelikle, çalışmanın bir oluşturmayı engellemesi, inceleme kanıtı üretmesi veya bir kişiye yardımcı olması gerektiğini belirleyin.

Gereksinimi kanıtlayan en küçük araç sınırını seçin

Kodun yakınında başlayın ve yalnızca gereksinim bunu gerektirdiğinde dışarı doğru genişletin. Test oluşturun ve Espresso uygulama sahibinin davranışını doğrulayın. UI Automator Android sistemini ve uygulama arası yolları doğrular. Appium, WebDriver tarzı bir mobil otomasyon katmanı sağlar. Görsel bir akış, görünür gerçek telefon durumunu, OCR'yi, görüntü kanıtını ve geliştiriciler olmayanların inceleyebileceği bir operasyonel devri teslimini ekler.

Bu nedenle en güçlü Android otomasyon stratejisi tek bir araç standardı değildir. Bir sorumluluk bölünmesidir: her gereksinim için bir ana iddia sahibi, pahalı sınırlarda ince uçtan uca kapsama, açık durdurma koşulları ve bir sonraki kişiye ne olduğunu söyleyen başarısızlık kanıtıdır. keşfetmekAI Android otomasyonu ileLaiCai Flowo gözlemlenebilir iş akışı katmanı kullanım senedinizle eşleştiğinde.

Editoryal not:BeePOS LLC, arkasındaki şirketLaiCai Screen Mirroring, bu karşılaştırmayı aşağıdaki ilgili iddiaların yanında bağlantılı resmi Android ve Appium belgelerinden araştırdım. Ürün bölümü ayrı ayrı etiketlenmiştir, böylece okuyucular belgelenmiş çerçeve özelliklerini kendi iş akışı önerimizden ayırt edebilirler. Sorular veya düzeltmeler support@laicaiapp.com adresine gönderilebilir.

Ücretsiz Sürümü İndir

Önceki sürüm 4.2.0: macOSWindows EXE

Not: Yalnızca Android telefon ekran yansıtma desteklenir.