Espresso Test Recorder ile kullanıcı arayüzü testleri oluşturma

Espresso Test Recorder aracı, test kodu yazmadan uygulamanız için kullanıcı arayüzü testleri oluşturmanıza olanak tanır. Bir test senaryosu kaydederek cihazla etkileşimlerinizi kaydedebilir ve uygulamanızın belirli anlık görüntülerindeki kullanıcı arayüzü öğelerini doğrulamak için onaylamalar ekleyebilirsiniz. Espresso Test Recorder daha sonra kaydedilen kaydı alır ve uygulamanızı test etmek için çalıştırabileceğiniz ilgili bir kullanıcı arayüzü testini otomatik olarak oluşturur.

Espresso Test Recorder, AndroidX Test'teki bir API olan Espresso Testing Framework'e dayalı testler yazar. Espresso API, kullanıcı işlemlerine dayalı kısa ve güvenilir kullanıcı arayüzü testleri oluşturmanızı önerir. Bu yapı, temel uygulamadaki etkinliklere ve görünümlere doğrudan erişmeden beklentileri, etkileşimleri ve onayları belirterek testlerin güvenilirliğini artırır ve test çalıştırma hızını optimize eder.

Test cihazınızda animasyonları devre dışı bırakın

Espresso Test Recorder'ı kullanmadan önce, beklenmedik sonuçları önlemek için test cihazınızda animasyonları devre dışı bıraktığınızdan emin olun. Espresso kurulumuyla ilgili talimatları uygulayın. Ancak Test Kaydedici, kayıt yaptığınızda bunu otomatik olarak yaptığından Espresso kitaplığına manuel olarak bağımlılık referansı ayarlamanız gerekmediğini unutmayın. Bu adımların belirli bir proje için yalnızca bir kez yapılması gerekir.

Espresso testi kaydetme

Espresso testleri iki temel bileşenden oluşur: kullanıcı arayüzü etkileşimleri ve View öğeleriyle ilgili onaylamalar. Kullanıcı arayüzü etkileşimleri, kullanıcının uygulamanızla etkileşim kurmak için kullanabileceği dokunma ve yazma işlemlerini içerir. Onaylamalar, ekrandaki görsel öğelerin varlığını veya içeriğini doğrular. Örneğin, Notlar test uygulaması için bir Espresso testi, düğmeyi tıklama ve yeni bir not yazma gibi kullanıcı arayüzü etkileşimlerini içerebilir ancak düğmenin varlığını ve notun içeriğini doğrulamak için onaylamaları kullanır.

Bu bölümde, Espresso Test Recorder'ı kullanarak bu test bileşenlerinin nasıl oluşturulacağı ve testi oluşturmak için tamamlanmış kaydınızın nasıl kaydedileceği açıklanmaktadır.

Kullanıcı arayüzü etkileşimlerini kaydetme

Espresso Test Recorder ile test kaydetmeye başlamak için aşağıdaki adımları uygulayın:

  1. Çalıştır > Record Espresso Test'i (Espresso Testi Kaydet) tıklayın.
  2. Dağıtım Hedefini Seçin penceresinde, testi kaydetmek istediğiniz cihazı seçin. Gerekirse yeni bir Android sanal cihazı oluşturun. Tamam'ı tıklayın.
  3. Espresso Test Recorder, projenizin derlenmesini tetikler. Espresso Test Recorder'ın uygulamayla etkileşim kurmanıza izin vermesi için uygulamanın yüklenip başlatılması gerekir. Uygulama başlatıldıktan sonra Testinizi Kaydedin penceresi görünür ve cihazla henüz etkileşimde bulunmadığınız için ana panelde "Henüz etkinlik kaydedilmedi" mesajı yer alır. "Dokunma" ve "yazma" gibi etkinliklerin günlüğünü tutmaya başlamak için cihazınızla etkileşimde bulunun.

Not: Etkileşimleri kaydetmeye başlamadan önce cihazınızda "Hata Ayıklayıcı bekleniyor" veya "Hata ayıklayıcı ekleniyor" yazan bir iletişim kutusu görebilirsiniz. Espresso Test Recorder, kullanıcı arayüzü etkinliklerini günlüğe kaydetmek için hata ayıklayıcıyı kullanır. Hata ayıklayıcı eklendiğinde iletişim kutusu otomatik olarak kapanır. Kapatmaya Zorla'ya basmayın.

Kaydedilen etkileşimler, aşağıdaki Şekil 1'de gösterildiği gibi Testinizi Kaydedin penceresindeki ana panelde görünür. Testi çalıştırdığınızda Espresso testi, bu işlemleri aynı sırada yürütmeye çalışır.

Şekil 1. Günlüğe kaydedilmiş kullanıcı arayüzü etkileşimlerini içeren Testinizi Kaydedin penceresi.

Kullanıcı arayüzü öğelerini doğrulamak için onaylamalar ekleme

Onaylamalar, üç ana tür aracılığıyla bir View öğesinin varlığını veya içeriğini doğrular:

  • text is: Seçilen Görünüm öğesinin metin içeriğini kontrol eder.
  • exists: View öğesinin, ekranda görünen mevcut View hiyerarşisinde bulunup bulunmadığını kontrol eder.
  • does not exist: View öğesinin mevcut View hiyerarşisinde bulunmadığını kontrol eder.

Testinize bir onaylama eklemek için aşağıdaki adımları uygulayın:

  1. Add Assertion'ı (Onaylama Ekle) tıklayın. Espresso, kullanıcı arayüzü hiyerarşisini ve mevcut uygulama durumuyla ilgili diğer bilgileri alırken Ekran Görüntüsü Alma iletişim kutusu gösterilir. Espresso ekran görüntüsünü yakaladığında iletişim kutusu otomatik olarak kapanır.
  2. Mevcut ekranın düzeni, Testinizi Kaydedin penceresinin sağındaki bir panelde gösterilir. Bir onaylama oluşturulacak Görünüm öğesini seçmek için ekran görüntüsündeki öğeyi tıklayın veya pencerenin alt kısmındaki Onaylamayı düzenle kutusunda ilk açılır menüyü kullanın. Seçilen View nesnesi kırmızı bir kutu içinde vurgulanır.
  3. Onaylamayı düzenle kutusundaki ikinci açılır menüden kullanmak istediğiniz onaylamayı seçin. Espresso, menüyü seçili View öğesi için geçerli iddialarla doldurur.
    • "Metin şudur" onayını seçerseniz Espresso, seçili View öğesinin içinde bulunan metni otomatik olarak ekler. İddiayı düzenle kutusundaki metin alanını kullanarak metni istediğiniz iddiaya uyacak şekilde düzenleyebilirsiniz.
  4. Başka bir onaylama oluşturmak için Kaydet ve Başka Bir Tane Ekle'yi, onaylama panellerini kapatmak için ise Onaylamayı Kaydet'i tıklayın.

Şekil 2'deki ekran görüntüsünde, notun başlığının "Happy Testing!" olduğunu doğrulamak için oluşturulan bir "metin" onaylaması gösteriliyor:

Şekil 2. Bir görünüm öğesi seçildikten sonra (kırmızı renkte) Onayı düzenle kutusu.

Bir onaylama oluştururken, Testinizi Kaydedin penceresinde onaylama panelleri açıkken bile uygulamanızla etkileşime devam edebilirsiniz. Espresso Test Recorder, işlemlerinizi kaydetmeye devam eder ancak düzenlediğiniz onaylama kaydedildikten sonra bu etkileşimlerden önce görünür. Onaylamanın ekran görüntüsünde, Onaylama Ekle düğmesine bastığınız sırada cihazın veya emülatörün sahip olduğu düzen de korunur.

Kaydı kaydetme

Uygulamanızla etkileşimi tamamlayıp onaylamalar ekledikten sonra kaydınızı kaydetmek ve Espresso testi oluşturmak için aşağıdaki adımları uygulayın:

  1. Kaydı Tamamla'yı tıklayın. Testiniz için bir test sınıfı adı seçin penceresi açılır.
  2. Espresso Test Recorder, başlatılan etkinliğin adına göre testinize paketi içinde benzersiz bir ad verir. Önerilen adı değiştirmek istiyorsanız Test sınıfı adı metin alanını kullanın. Kaydet'i tıklayın.
    • Espresso bağımlılıklarını uygulamanıza eklemediyseniz testinizi kaydetmeye çalıştığınızda Missing Espresso dependencies (Eksik Espresso bağımlılıkları) iletişim kutusu gösterilir. Bağımlılıkları build.gradle dosyanıza otomatik olarak eklemek için Evet'i tıklayın.
  3. Dosya, Espresso Test Recorder tarafından oluşturulduktan sonra otomatik olarak açılır ve Android Studio, test sınıfını IDE'nin Project (Proje) penceresinde seçili olarak gösterir.
    • Testin kaydedileceği yer, enstrümantasyon testinizin kökünün konumuna ve başlatılan etkinliğin paket adına bağlıdır. Örneğin, Notlar test uygulaması ile ilgili testler, testi kaydettiğiniz uygulama modülünün src > androidTest > java > com.example.username.appname klasörüne kaydedilir.

Espresso testini yerel olarak çalıştırma

Espresso testi çalıştırmak için Android Studio IDE'nin sol tarafındaki Project (Proje) penceresini kullanın:

  1. İstediğiniz uygulama modülü klasörünü açın ve çalıştırmak istediğiniz teste gidin. Testin konumu, enstrümantasyon testinizin kökünün konumuna ve başlatılan etkinliğin paket adına bağlıdır. Aşağıdaki örneklerde, Notlar test uygulamasında testlerin nereye kaydedileceği gösterilmektedir:
    • Pencerede Android görünümünü kullanıyorsanız java > com.example.username.appname (androidTest)'e gidin.
    • Pencerede Proje görünümünü kullanıyorsanız modül klasöründe src > androidTest > java > com.example.username.appname'e gidin.
  2. Testi sağ tıklayın ve "testName"i çalıştır'ı tıklayın.
    • Alternatif olarak, test dosyasını açıp oluşturulan test sınıfını veya yöntemini sağ tıklayabilirsiniz. Uygulamanızı Test Edin sayfasında test çalıştırma hakkında daha fazla bilgi edinin.
  3. Dağıtım Hedefini Seçin penceresinde, testi çalıştırmak istediğiniz cihazı seçin. Gerekirse yeni bir Android sanal cihazı oluşturun. Tamam'ı tıklayın.

Testinizin ilerleme durumunu IDE'nin alt kısmındaki Çalıştır penceresinden izleyin. Android Studio, projenizin tam derlemesini çalıştırır ve 3. şekilde gösterildiği gibi Run (Çalıştır) penceresinde testinizin adını içeren bir sekme açar. Testinizin başarılı olup olmadığını ve testin ne kadar sürdüğünü bu sekmede kontrol edebilirsiniz. Test tamamlandığında sekmede "Testler tamamlandı." ifadesi günlüğe kaydedilir.

Şekil 3. Espresso testi yerel olarak çalıştırıldıktan sonra Çalıştır penceresindeki örnek çıkış.

Test çalıştırma yapılandırmaları yazma hakkında daha fazla bilgi edinmek için Çalıştırma/Hata Ayıklama Yapılandırmaları Oluşturma ve Düzenleme başlıklı makaledeki "Bir sınıf veya yöntem için test yapılandırması tanımlama" bölümünü inceleyin.

Firebase Test Lab for Android ile Espresso testi çalıştırma

Uygulamanızı bulutta yüzlerce cihaz yapılandırmasında test etmek için Espresso Test Kaydedici tarafından oluşturulan testleri Firebase Test Lab ile birlikte kullanabilirsiniz. Uygulamanızı Spark planındaki ücretsiz günlük kota kapsamında Test Lab ile test etmek için herhangi bir ücret alınmaz. Firebase Test Lab ile Espresso testleri çalıştırmak için uygulamanızla ilgili bir Firebase projesi oluşturun ve ardından Android Studio'dan Testlerinizi Firebase Test Lab ile çalıştırma talimatlarını uygulayın.

Şekil 4. Firebase Test Lab ile birden fazla cihazda test çalıştırıldıktan sonra Çalıştır penceresindeki örnek çıktı.