Robo komut dosyası çalıştırma (Android)

Bu belgede, mobil uygulamalar için manuel kalite güvencesi görevlerini otomatikleştiren, sürekli entegrasyon (CI) ve lansman öncesi test stratejilerini etkinleştiren testler olan Robo komut dosyalarının nasıl kullanılacağı açıklanmaktadır. Örneğin, yaygın bir kullanıcı yolculuğunu test etmek veya kullanıcı adı ve şifre gibi belirli kullanıcı arayüzü (UI) girişleri sağlamak için Robo komut dosyalarını kullanabilirsiniz. Robo komut dosyaları, Robo test'in bir özelliğidir.

Robo komut dosyalarıyla, uygulamanızdaki bir iş akışını adım adım uygularken kendinizi kaydedersiniz. Ardından bu kaydı Firebase Console'a yükleyerek Robo testlerinde çalıştırırsınız. Komut dosyası ekli bir Robo testi çalıştırdığınızda Robo öncelikle önceden komut verilmiş işlemleri adım adım uygular, ardından uygulamayı normal bir şekilde keşfeder.

Robo komut dosyaları, test motoru olarak Robo testini kullanır. En temel haliyle Robo komut dosyası, "kullanıcı adı" metnini girme ve ardından Tamam düğmesine dokunma gibi bir dizi kullanıcı arayüzü işleminden oluşur. Robo komut dosyaları, bir öğenin görünmesini bekleme, bir öğe içindeki belirli bir noktaya dokunma ve Android Debug Bridge (adb) kabuk komutlarını yürütme gibi işlemleri de içerebilir.

Robo komut dosyaları, geleneksel test çerçevelerine kıyasla aşağıdaki avantajlara sahiptir:

Kapasite Açıklama
Son derece sağlam Robo komut dosyaları, uygulama sürümleri arasındaki önemli yapısal ve davranışsal farklılıkları ve uygulama kararsızlığını tolere edebilir.
Açık uçlu soru Robo komut dosyası tamamlandıktan sonra temel Robo testi, uygulamanın test edilmesini devralıp devam ettirebilir. Bu devam eden test yaklaşımı, birkaç önemli kullanım alanını mümkün kılar. Örneğin, özel bir oturum açma akışı gerçekleştirerek bir uygulamayı belirli bir duruma getirmek için Robo komut dosyası kullanabilirsiniz.
Kayıt yapılabilir Robo komut dosyalarını manuel olarak kodlamanız gerekmez. Android Studio'daki Robo komut dosyası kaydedici kullanılarak kaydedilebilirler. Robo komut dosyaları oluşturmak veya değiştirmek için genellikle mobil geliştirme bilgisi gerekmez.
Esnek Robo komut dosyaları, oyunlarda yaygın olarak kullanılan yerel olmayan kullanıcı arayüzü öğeleriyle etkileşim kurabilir.

Robo komut dosyaları, Robo testi sırasında koşullu olarak tetiklenir. Bu sayede kullanıcılar, genellikle daha fazla kapsam elde etmek veya belirli işlevleri hedeflemek için Robo'nun davranışını genişletebilir. Geleneksel test çerçevelerinin aksine Robo komut dosyaları aşağıdakileri destekler:

  • Çeşitli tetikleme koşulları (ör. belirli bir uygulama paketi adının etkin olması veya olmaması ya da ekranda belirli bir öğenin gösterilmesi veya gösterilmemesi)
  • Yürütme kontrolleri (ör. maksimum yürütme sayısı, öncelik, alakalı tarama aşaması)
  • Alışılmadık işlem türleri (koşullu, öğe yoksayma, ekran kapatma).

Zahmetsizce sürdürülebildikleri için mümkün olduğunca Robo komut dosyalarını kullanmanızı öneririz. Örneğin, Robo komut dosyasını kullanarak şunları yapabilirsiniz:

  • Uygulamanın temel işlevini anlamak için önemli iş akışlarında gezinin. Örneğin, oturum açabilir, ilk başlatmadan sonra uygulamanın durumunu ayarlayabilir ve yeni bir kullanıcı kaydedebilirsiniz.
  • Robo test süresinden en iyi şekilde yararlanmak için Robo'yu uygulamanın belirli bir bölümüne odaklayın. Robo komut dosyası, Robo testini uygulamanın ilgili bölümüne yönlendirir. Robo testi, bu bölümde tam otomatik taramaya devam eder.
  • Analiz yapmak için bir uygulamayı belirli bir duruma veya ekrana getirme (ör. uygulama içi mesajı, gizlilik politikasını veya bir oyunun belirli bir seviyesini analiz etme)
  • Robo komut dosyası tamamlandıktan sonra tam otomatik taramaya devam eden Robo testiyle veya Robo testi olmadan uçtan uca enstrümantasyon testi gerçekleştirme

Aşağıdakileri yapmak için daha gelişmiş Robo komut dosyası özelliklerini kullanın:

  • Robo, test edilen uygulamayı taramaya başlamadan önce veya tarama bittikten sonra işlem yapın. Örneğin, taramadan önce test edilen uygulama verilerini temizleyin veya cihaz ayarlarını değiştirin.
  • Tarama sırasında Robo davranışının özelliklerini değiştirme, özellikle:
    • Robo'nun bazı kullanıcı arayüzü widget'larını veya uygulama ekranlarını yoksaymasını sağlayın.
    • Robo'nun belirli bir ekrandan geri giderken gerçekleştireceği özel bir işlem sağlayın.
    • Tarama sırasında belirli bir uygulama ekranıyla karşılaşıldığında Robo'nun belirli işlemleri gerçekleştirmesini sağlayın.
  • Robo'nun tarama işlemini tamamen özelleştirin. Örneğin, tarama boyunca test edilen uygulamayı arka planda tutmak için koşullu ve koşulsuz işlemlerin bir kombinasyonunu kullanırken cihaz manipülasyonları gerçekleştirin ve yol boyunca görünen pop-up iletişim kutularını kapatın.

Robo komut dosyalarının her tür testin yerini almadığını unutmayın. Uygulamanızdaki alt düzey mantık hatalarını yakalamak için birim testlerine ihtiyacınız vardır. Bu testler genellikle Android veya iOS ortamı gerektirmez. Robo komut dosyası testlerini, iş mantığı hakkında belirli ve ayrıntılı iddialar içerebilen ve en iyi şekilde kodla ifade edilen hedeflenmiş enstrümantasyon testleriyle desteklemenizi öneririz.

Android Studio'da Test Lab kullanarak Robo komut dosyası kaydetme

Android Studio'daki Robo komut dosyası kaydedici, cihazınızdaki uygulamayla doğrudan etkileşim kurarak Robo komut dosyalarını kaydetmenize olanak tanır. Android Studio'da Firebase aracı üzerinden Robo komut dosyası oluşturmaya başlamak için aşağıdaki talimatları uygulayın:

  1. Android Studio'yu açın ve Tools -> Firebase'i (Araçlar -> Firebase) seçin.

  2. Firebase bölmesinde Robo Komut Dosyasını Kaydet ve Robo Teste Yol Göstermek İçin Kullan'ı tıklayın.

  3. Robo komut dosyasını kaydet'i tıklayın. Select Deployment Target (Dağıtım Hedefi Seç) iletişim kutusu görünür.

  4. Robo komut dosyasını kaydetmek istediğiniz cihazı seçin.

  5. Robo komut dosyasını cihaza kaydettikten sonra dosyayı istediğiniz konuma JSON dosyası olarak kaydedin.

  6. Firebase konsolunda Test Lab sayfasını açın ve JSON komut dosyası ile uygulama APK'sını yükleyin.

  7. Devam düğmesini tıklayın. Cihazı ve API düzeyini seçmeniz istenir. Test komut dosyası tamamlandıktan sonra Test Lab, test raporunu oluşturur.

  8. (İsteğe bağlı) Test raporunun ve videonun logcat'ini kopyalamak veya indirmek için Kaynak Dosyaları Görüntüle'yi tıklayın.

Varsayılan olarak, Robo komut dosyası sağlamlık mekanizmaları, komut dosyasının erken başarısız olmasını önler. strict yürütme modunu seçerseniz ve Robo komut dosyası herhangi bir noktada başarısız olursa Test Lab, komut dosyasındaki diğer tüm adımları iptal eder ve normal bir Robo taramasına devam eder. Robo komut dosyaları genellikle Robo'nun ekranda gerekli bir öğeyi bulamaması nedeniyle başarısız olur. Hataları önlemek için uygulamanızda gezinmenin tahmin edilebilir olduğundan ve ekranlarınızın belirli bir sırayla gösterildiğinden emin olun.

Test Lab uygulamasında Robo komut dosyası çalıştırma

Test Lab uygulamasında bir Robo komut dosyası çalıştırmak için aşağıdaki talimatları uygulayın:

  1. Firebase konsolunda Test Lab sayfasını açın.

  2. Uygulamanın APK veya AAB dosyasını Uygulama APK veya AAB alanına yükleyin.

  3. Kaydedilmiş veya manuel olarak oluşturulmuş Robo komut dosyası dosyanızı Robo komut dosyası (isteğe bağlı) alanına yükleyin.

Yerel Robo testi çalıştırması için Robo komut dosyası sağlama

Yerel bir Robo testi çalıştırmasına Robo komut dosyası sağlamak için aşağıdaki Robo testi seçeneğini kullanın:

--robo-script-file <robo-script-path>

<robo-script-path> ifadesini, yerel dosya sistemindeki Robo komut dosyası dosyanızın yoluyla değiştirin. Yerel Robo testi çalıştırma talimatlarını uygulayın.

gcloud CLI test çağrısında Robo komut dosyası belirtme

gcloud CLI test çağrısında bir Robo komut dosyası belirtmek için aşağıdaki gcloud CLI işaretini kullanın:

--robo-script = <robo-script-path>

<robo-script-path> ifadesini, yerel dosya sistemindeki veya Cloud Storage içindeki Robo komut dosyası dosyanızın yoluyla değiştirin. Bunun için gs:// gösterimini kullanın. Örneğin:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

Sonraki adımlar