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

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

Robo komut dosyalarıyla, uygulamanızdaki iş akışında yürürken kendinizi kaydedersiniz. Ardından bu kaydı Robo testlerinde çalıştırmak için Firebase konsoluna yüklersiniz. Komut dosyası ekli bir Robo testi çalıştırdığınızda Robo ilk olarak önceden belirlediğiniz işlemleri gerçekleştirir ve ardından uygulamayı her zamanki gibi keşfeder.

Robo komut dosyaları, test motoru olarak Robo test'i kullanır. Robo komut dosyası en temel biçiminde, "kullanıcı adı" metni girme ve ardından Tamam düğmesine dokunma gibi bir dizi kullanıcı arayüzü işleminden oluşur. Robo komut dosyaları aynı zamanda bir öğenin görünmesini beklemek, bir öğenin içindeki belirli bir noktaya dokunmak ve Android Debug Bridge (adb) kabuk komutlarını çalıştırmak gibi işlemler de içerebilir.

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

Kapasite Açıklama
Son derece dayanıklı Robo komut dosyaları, uygulama sürümleri ile uygulama stabiliteleri arasındaki önemli yapısal ve davranış farklılıklarına tolerans gösterebilir.
Açık uçlu Robo komut dosyası tamamlandıktan sonra temel Robo testi uygulamayı devralıp test etmeye devam edebilir. Devam eden bu test yaklaşımı, bazı temel kullanım alanlarına imkan sağ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. Bunlar, Android Studio'da Robo komut dosyası kaydedicisi kullanılarak kaydedilebilir. Robo komut dosyalarını oluşturmak veya değiştirmek genellikle herhangi bir mobil geliştirme bilgisi gerektirmez.
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 test, kullanıcıların genellikle daha geniş kapsama veya hedefe özel işlevlere ulaşmak için Robo'nun davranışını geliştirmelerine olanak tanır. Geleneksel test çerçevelerinin aksine Robo komut dosyaları aşağıdakileri destekler:

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

Zahmetsizce yönetilebildiğinden, mümkün olduğunda Robo komut dosyalarını kullanmanızı öneririz. Örneğin, aşağıdakileri yapmak için Robo komut dosyası kullanabilirsiniz:

  • Bir uygulamanın temel işlevlerine odaklanmak için önemli iş akışlarında gezinin. Örneğin, oturum açma işlemi gerçekleştirebilir, bir uygulamanın ilk lansmandan sonraki durumunu ayarlayabilir ve yeni bir kullanıcı kaydedebilirsiniz.
  • Robo test zamanından en iyi şekilde yararlanmak için Robo'yu uygulamanın belirli bir bölümüne odaklayın. Robo komut dosyası, Robo test'i uygulamanın ilgili bölümüne ulaşması için yönlendirir. Burada Robo test, tamamen otomatik taramayı devam ettirir.
  • Analiz yapmak (örneğin, bir uygulama içi mesajı, gizlilik politikasını veya bir oyunun belirli seviyesini analiz etmek) için uygulamayı belirli bir duruma veya ekrana getirin.
  • Robo komut dosyası tamamlandıktan sonra tam otomatik taramayı devam ettirerek veya bu test yapmadan uçtan uca araç testi gerçekleştirin.

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

  • Robo'nun test altındaki uygulamayı taramaya başlamadan veya tarama tamamlandıktan sonra işlem yapın. Örneğin, bir taramadan önce uygulama altındaki test verilerini temizleyin veya cihaz ayarlarını değiştirin.
  • Tarama sırasında Robo davranışının özelliklerini değiştirin, özellikle de:
    • 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 izleme sırasında 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şlemler gerçekleştirmesini sağlayın.
  • Robo'nun tarama gerçekleştirme şeklini tamamen özelleştirin. Örneğin, tarama boyunca uygulamanın arka planda test altında kalmasını sağlamak ve aynı zamanda cihazla manipülasyonlar yapmak ve yol boyunca görüntülenen pop-up iletişim kutularını kapatmak için koşullu ve koşullu olmayan işlemlerin bir kombinasyonunu kullanın.

Robo komut dosyalarının her türlü testin yerine geçmediğini unutmayın. Uygulamanızda düşük seviyeli mantık hatalarını yakalamak için yine de birim testlerine ihtiyacınız vardır. Bu testler genellikle Android veya iOS ortamı gerektirmez. Robo komut dosyası testlerini, iş mantığı hakkında en iyi şekilde kodda ifade edilen belirli ve ayrıntılı onaylamalara sahip olabilen hedefli araç testleriyle desteklemenizi öneririz.

Android Studio'da Test Lab'i 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'daki Firebase aracını kullanarak Robo komut dosyası çalıştırmaya başlamak için şu talimatları uygulayın:

  1. Android Studio'yu açıp Araçlar -> Firebase'i seçin.

  2. Firebase bölmesinde Robo Komut Dosyasını Kaydet ve Kılavuzu Robo Test için Kullan'ı tıklayın.

  3. Robo komut dosyasını kaydet'i tıklayın. Dağıtım Hedefi Seçin 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ı JSON dosyası olarak istediğiniz konuma kaydedin.

  6. Firebase konsolunda Test Lab sayfasını açıp JSON komut dosyası dosyasını ve 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.

Robo komut dosyası sağlamlık mekanizmaları, varsayılan olarak komut dosyasının erken hata vermesini önler. strict yürütme modunu seçerseniz ve bir Robo komut dosyası herhangi bir noktada başarısız olursa Test Lab, komut dosyasında sonraki tüm adımları bırakır ve normal bir Robo taramasına devam eder. Robo komut dosyaları genellikle ekranda gerekli bir öğeyi bulamadığından başarısız olur. Hataları önlemek için uygulamanızda gezinmenin öngörülebilir olduğundan ve ekranlarınızın belirli bir sırada gösterildiğinden emin olun.

Test Lab'de Robo komut dosyası çalıştırma

Test Lab'de Robo komut dosyası çalıştırmak için şu talimatları izleyin:

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

  2. Uygulamanın APK'sını veya AAB'sini Uygulama APK veya AAB alanına yükleyin.

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

Yerel Robo test çalıştırmasına Robo komut dosyası sağlayın

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

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

<robo-script-path> öğesini, yerel dosya sistemindeki Robo komut dosyanızın yoluyla değiştirin. Yerel Robo test çalıştırması talimatlarını uygulayın.

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

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

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

<robo-script-path> öğesini, gs:// notasyonunu kullanarak yerel dosya sistemindeki veya Cloud Storage'daki Robo komut dosyanızın yolu ile değiştirin. Örnek:

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

Sonraki adımlar