Robo testi, Firebase Test Lab ile entegre bir test aracıdır. Robo testi, uygulamanızın kullanıcı arayüzünün yapısını analiz eder ve ardından bunu metodik olarak keşfederek kullanıcı etkinliklerini otomatik olarak simüle eder. UI / Uygulama Egzersizcisi Maymun testinin aksine, Robo testi, bir uygulamayı aynı ayarlarla belirli bir cihaz konfigürasyonunda test etmek için kullandığınızda her zaman aynı kullanıcı faaliyetlerini aynı sırada simüle eder. Bu, hata düzeltmelerini doğrulamak ve UI / Uygulama Egzersizcisi Maymun testi ile test ederken mümkün olmayan bir şekilde gerilemeleri test etmek için Robo testini kullanmanıza olanak tanır.
Robo testi, günlük dosyalarını yakalar, bir dizi ek açıklamalı ekran görüntüsünü kaydeder ve ardından gerçekleştirdiği simüle edilmiş kullanıcı işlemlerini size göstermek için bu ekran görüntülerinden bir video oluşturur. Bu günlükler, ekran görüntüleri ve videolar, uygulamanızın kilitlenmesi durumunda temel nedeni belirlemenize yardımcı olabilir ve ayrıca uygulamanızın kullanıcı arayüzüyle ilgili sorunları bulmanıza yardımcı olabilir.
Robo testi tarama istatistikleri
Robo test sonuçlarınızı yorumlamanıza yardımcı olmak için Robo, her test taraması sırasında istatistikleri kaydeder. Test Lab, istatistikleri testinizin sonuçları sayfasındaki Robo sekmesinin üst kısmında görüntüler:
- Eylemler: Robo komut dosyası eylemleri, maymun eylemleri ve Robo yönergeleri dahil tarama sırasında gerçekleştirilen eylemlerin toplam sayısı.
- Etkinlikler: Tarama sırasında kapsanan farklı etkinliklerin sayısı.
- Ekranlar: Tarama sırasında ziyaret edilen farklı ekranların sayısı.
Test Lab ayrıca, bir tarama grafiği biçiminde Robo taramasının görsel bir temsilini oluşturmak için istatistikleri kullanır. Grafiğin düğümleri olarak ekranları ve kenarları olarak eylemleri vardır. Ekranlar arasındaki kenarları takip ederek, tarama boyunca Robo'nun uygulamanızı nasıl geçtiği hakkında bir fikir edinebilirsiniz.
Robo testi zaman aşımı
Uygulamanızın kullanıcı arayüzünün karmaşıklığına bağlı olarak, Robo testinin eksiksiz bir UI etkileşimi setini tamamlaması beş dakika veya daha uzun sürebilir. Test zaman aşımını çoğu uygulama için en az 120 saniye (2 dakika) ve orta derecede karmaşık uygulamalar için 300 saniye (5 dakika) olarak ayarlamanızı öneririz. Zaman aşımı için varsayılan değer, Android Studio ve Google Developer Console'dan çalıştırılan testler için 300 saniye (5 dakika) ve
gcloud komut satırından çalıştırılan testler için 1500 saniyedir (25 dakika).
Uygulama başlatma zaman aşımı hataları
Uygulamanızın başlaması uzun sürerse, Robo bir hata atabilir ve uygulamanızı tarayamaz. Bu, yalnızca çok uzun başlatma sürelerinde meydana gelir ve yalnızca uygulamanızı daha hızlı başlaması için revize ederek çözülebilir.
Robo betikleri ile daha fazla kontrol
Bazen testleriniz üzerinde daha fazla kontrole ihtiyaç duyarsınız. Örneğin, genel bir kullanıcı yolculuğunu test etmek veya bir kullanıcı adı ve şifre gibi belirli bir UI girişi sağlamak isteyebilirsiniz. Robo betikleri yardımcı olabilir.
Robo komut dosyalarıyla, uygulamanızda bir iş akışında yürürken kendinizi kaydedersiniz, ardından bu kaydı Robo testlerinde çalıştırmak için Firebase konsoluna yüklersiniz. Bir komut dosyası eklenmiş bir Robo testi çalıştırdığınızda, Robo önce önceden komut dosyası oluşturulmuş eylemleriniz üzerinden geçer, ardından uygulamayı her zamanki gibi keşfetmeye devam eder.
Android Studio'daki Firebase aracını kullanarak Robo komut dosyası oluşturmaya başlayın:
- Android Studio'yu açın.
- Ana menüde Araçlar > Firebase'i seçin.
- Test Laboratuvarı'nı seçin ve Robo Komut Dosyasını Kaydet'i tıklayın ve Robo Testine Kılavuzluk etmek için kullanın .
- Robo Komut Dosyanızı kaydetmek için araçtaki diğer adımları izleyin.
- Bu Robo Komut Dosyasını Test Laboratuvarına yükleyin ve testinizi başlatın.
Robo komut dosyası hataları
Bir Robo komut dosyası herhangi bir noktada başarısız olursa, Test Lab komut dosyasındaki diğer tüm adımları terk eder ve normal bir Robo taramasına devam eder. Çoğu zaman, Robo komut dosyaları başarısız olur çünkü Test Lab ekranda gerekli bir öğeyi bulamaz. Hataları önlemek için, uygulama navigasyonunuzun tahmin edilebilir olduğundan ve ekranlarınızın belirleyici olmayan bir sırada gösterilmediğinden emin olun.
Robo testleri ve Android olmayan kullanıcı arayüzü widget'ları
Robo testleri, Android UI widget'larında doğrudan eylemler gerçekleştirmek için Android API'yi kullanır. Bu, testlerin kullanıcı arayüzünüzü otomatik olarak keşfetmesine yardımcı olur, ancak aynı zamanda üzerinde testleri çalıştırmak için bir ekran için bir Android UI hiyerarşisi çıkarabilmeleri gerektiği anlamına gelir.
Uygulamanızdaki bir ekran Android UI widget'larını kullanmıyorsa, Robo testleri o ekranı test etmek için Monkey Actions'a geri döner. Daha metodik Robo eylemlerinin aksine, Monkey Actions basitçe bir cihazın ekranındaki yarı rastgele konumlardaki dokunma olaylarını simüle eder.
Android kullanıcı arayüzü widget'larını kullanmayan ekranları daha iyi test etmek için, bir Maymun Eyleminin rastgele tıklamalarını , Firebase Test Lab Oyun Döngü Testleri aracılığıyla komut dosyalı bir dizi dokunma ve etkileşimle değiştirebilirsiniz.
Google Play ile entegrasyon
Alfa veya beta kanalını kullanarak uygulamanızın APK dosyasını yükleyip yayınladığınızda Google Play Console'da Robo testini kullanabilirsiniz. Robo testi, farklı coğrafi konumlardan bir dizi popüler fiziksel cihaz üzerinde çalışır ve çeşitli form faktörleri ve donanım yapılandırmalarında test kapsamı sağlar. Daha fazla bilgi edinmek için Sorunları belirlemek için lansman öncesi raporları kullanma bölümüne bakın.
Hesapta oturum açmayı ve önceden tanımlanmış metin girişini test edin
Robo testi, test hesabı oturum açmayı destekler ve ayrıca uygulamanızdaki alanlara önceden tanımlanmış metin girmenize olanak tanır. Özel oturum açma ve diğer önceden tanımlanmış metin girişi için Robo testi, uygulamanızdaki
EditText alanlarına metin girebilir. Her dize için, bir Android kaynak adı kullanarak
EditText alanını tanımlamanız gerekir. Daha fazla bilgi edinmek için Kaynaklara Erişim konusuna bakın.
Oturum aç
Robo test, oturum açmayı desteklemek için birbirini dışlayan iki yönteme sahiptir:
- Özel oturum açma: Test hesabı kimlik bilgilerini sağlarsanız, Robo test'e bunları nereye gireceğinizi söylemeniz ve ayrıca bu kimlik bilgilerini sağlamanız gerekir.
- Otomatik oturum açma: Uygulamanızda kimlik doğrulama için bir Google hesabı kullanan bir oturum açma ekranı varsa, özel oturum açma için test hesabı kimlik bilgileri sağlamazsanız Robo testi bir Google test hesabı kullanır.
Özel oturum açma için test hesabı kimlik bilgileri sağlamak üzere aşağıdakileri yapın:
- Boyutları seçin sayfasında, Ek seçenekler'i seçin.
- Hesap kimlik bilgilerini test et (İsteğe bağlı) altında, kullanıcı adı ve şifre kaynak adlarını ve test hesabı için kullanıcı adı ve şifreyi girin.
Önceden tanımlanmış metin girişi
Uygulamanız tarafından kullanılan diğer metin alanları için özel giriş metni sağlayabilirsiniz. Ek alanlara metin girişi sağlamak için aşağıdakileri yapın:
- Boyutları seçin sayfasında, Ek seçenekler'i seçin.
- Ek alanlar (İsteğe bağlı) altında, bir veya daha fazla kaynak adı ve ilgili metin alanlarına girilecek dizeleri girin.
Önceden tanımlanmış metin girişi hataları
Robo, sağlanan bir normal ifadeyle eşleşen bir Android kaynak adı ile
EditText alanlarını arar. Robo eşleşen bir alan bulamazsa, metninizi girmez, aksi takdirde her zamanki gibi taramasına devam eder.
Derin bağlantılar
Test için uygulamanız tarafından desteklenen en fazla üç derin bağlantı sağlayabilirsiniz. Derin bağlantılar, Android
ACTION_VIEW amaçları olarak uygulamanıza verilir. Bu nedenle, her bağlantı uygulamanızdaki bir amaç filtresiyle eşleşmelidir.
Bir veya daha fazla derin bağlantı sağlanırsa, uygulama ilk olarak normal olarak başlatılır (
ACTION_MAIN amacı kullanılarak) ve belirtilen zaman aşımına kadar taranır. Ana taramadan sonra, her derin bağlantı 30 saniye daha taranır.
Derin bağlantı hataları
Robo, derin bağlantınızla eşleşen bir aktivite bulamazsa, Test Lab bağlantıyı yok sayar. Derin bağlantı sorunları, genellikle sağlanan derin bağlantı ile uygulamanızdaki tanımı arasındaki bir tutarsızlığın sonucudur. Yazım hataları veya diğer tutarsızlıklar için hem sağlanan URL'yi hem de uygulamanızı kontrol edin.
Uygulama lisanslama desteği
Test Lab, Google Play tarafından sunulan Uygulama Lisanslama hizmetini kullanan uygulamaları destekler. Uygulamanızı Test Lab ile test ederken lisanslamayı başarıyla kontrol etmek için uygulamanızı Play Store'daki üretim kanalında yayınlamalısınız. Uygulamanızı Test Lab'ı kullanarak alfa veya beta kanalında test etmek için, uygulamanızı Test Lab'a yüklemeden önce lisans kontrolünü kaldırın.
Bilinen Sorunlar
Robo testi şu anda aşağıdaki bilinen sınırlamalara sahiptir:
- UI çerçeve desteği . Robo testi, yalnızca Android UI çerçevesindeki UI öğelerini kullanan uygulamalarla uyumludur (
Viewve
ViewGroupnesneleri dahil, ancak Web
WebViewnesneleri hariç). Unity oyun motorunu kullanan uygulamalar dahil olmak üzere diğer UI çerçevelerini kullanan uygulamaları denemek için Robo testini kullanırsanız, test, ilk ekranın ötesine geçmeden çıkabilir.
- Oturum Açma Captcha'ları . Robo testi, oturum açmak için kimlik bilgilerini girmenin ötesinde ek kullanıcı eylemi gerektiren oturum açma ekranlarını atlayamaz (bir Captcha tamamlama gibi).