Uygulama Testi ajanı, Firebase'te Gemini tarafından desteklenen bir test durumu oluşturma, yönetme ve yürütme aracıdır. Test hedeflerini doğal dilde tanımlarsınız. Temsilci, uygulamanızı anlayıp gezinmek, kullanıcı etkileşimlerini simüle etmek ve ayrıntılı test sonuçları sağlamak için yapay zekayı kullanır.
Uygulama Testi aracısı verilerinizi nasıl kullanır?
Uygulama Testi temsilcisi, Firebase'da Gemini tarafından sağlanır ve aynı şartlara tabidir. Firebase için Gemini'ın verilerinizi nasıl kullandığı hakkında daha fazla bilgi edinmek istiyorsanız Firebase için Gemini, verilerinizi nasıl kullanır? başlıklı makaleyi inceleyin.
Başlamadan önce
Henüz yapmadıysanız uygulamanızı Firebase'e kaydedin.
Başka Firebase ürünleri kullanmıyorsanız yalnızca bir proje oluşturup uygulamanızı kaydetmeniz yeterlidir. Uygulamanıza SDK eklemeniz gerekmez. Ancak gelecekte başka ürünler kullanmaya karar verirseniz Firebase konsolunu kullanarak Firebase ekleme başlıklı makaledeki tüm adımları tamamladığınızdan emin olun.
Test durumu oluşturma
Uygulama Testi temsilcisi, yapay zeka destekli testleri çalıştırmak için doğal dildeki test senaryolarınızı kullanarak uygulamanızda testler gerçekleştirir.
Her test durumu, sırayla yürütülecek adımlara ayrılır. Adımlar, test durumunuzu her biri kendi onayına sahip aşamalara ayırmanıza olanak tanır. Temsilci, herhangi bir adımda birçok işlem yapabilir.
Test durumu oluşturmanın iki yolu vardır: YAML dosyası kullanma veya Firebase Console'u kullanma. YAML dosyaları, test durumlarını genellikle sürümlü bir kaynak kodu deposunda kendiniz yönetmenize olanak tanır. Alternatif olarak Firebase konsolu, test durumlarınızı App Distribution verilerinizle birlikte uzaktan depolayabilir.
YAML dosyalarını kullanma
Aşağıdaki örnekte, iki test durumunu tanımlayan bir YAML dosyası gösterilmektedir:
tests:
- displayName: Login as guest
id: login-as-guest
steps:
- goal: Log in as a guest
finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
prerequisiteTestCaseId: login-as-guest
steps:
- goal: Open the article on "Bob Dylan"
hint: Use the search function to find it
finalScreenAssertion: >-
The article is opened and the title "Bob Dylan" is visible.
- goal: Find Bob Dylan's birthday in the article
hint: >-
Look for the "Born" section in the infobox on the right side of the page.
finalScreenAssertion: >-
The text "May 24, 1941" is visible on the screen.
Test gruplarını tek bir dosyada düzenleyebilir ve bu test paketlerini birden fazla dosyaya ayırabilirsiniz. Teste bir kimlik ekleyip ardından prerequisiteTestCaseId kullanarak bu kimliğe referans vererek ön koşul test durumu ekleyebilirsiniz.
App Distribution konsolunu kullanma
Alternatif olarak, test durumlarınızı Firebase Console'da oluşturup yönetebilirsiniz. Test durumu oluşturmak için Firebase konsolunun App Distribution sayfasını açın ve aşağıdaki adımları uygulayın:
- Test Cases (Test durumları) sekmesinde New test case'i (Yeni test durumu) tıklayın. Kendi test durumunuzu oluşturmak istemiyorsanız sağlanan örnek test durumunu değiştirebilir veya kullanabilirsiniz.
- Add test case (Test durumu ekle) iletişim kutusunda test durumuna bir ad verin. Bu, testi tanımlamak için kullanılır ancak temsilci tarafından yoksayılır.
- (İsteğe bağlı) Ana testten önce çalıştırılacak kurulum adımlarını içeren bir Ön koşul test durumu seçin. Ön koşul testi başarısız olursa tüm test başarısız olarak işaretlenir. Ön koşul ve ana testlerin adımları ve sonuçları, test sonuçlarında birlikte gösterilir.
- Başka bir adım ekle düğmesini tıklayarak testinizi birden fazla adıma bölmeyi düşünebilirsiniz.
- Her adıma, Uygulama Testi temsilcisinin o adımda ne yapması gerektiğini açıklayan bir hedef verin.
- (İsteğe bağlı) Uygulama Testi temsilcisinin bu adımda uygulamanızı anlamasına ve uygulamanızda gezinmesine yardımcı olacak ek bilgiler sağlamak için İpucu ekleyin.
- Uygulama Testi ajanının adımın ne zaman başarıyla tamamlandığını belirlemesine yardımcı olmak için Son ekran onayı ekleyin. Bu iddia yalnızca ekranda görünenleri ifade etmelidir.
- Testinizi özelleştirmeyi tamamladığınızda Kaydet'i tıklayın.
Örnek test durumu
Aşağıda, Uygulama Testi temsilcisini kullanarak test durumu oluşturma örneği verilmiştir:
Test başlığı |
Ana sayfa yüklemeleri |
Hedef |
Ana sayfayı yükle |
İpucu |
İlk kurulum ekranlarını geçin. Pop-up'ları kapatın. Oturum açmayın. |
Son ekran onayı |
Uygulamanın ana sayfası ekranda görünür, tüm resimler yüklenmiştir ve hata gösterilmez. |
Test çalıştır
Testlerinizi nasıl çalıştıracağınız, test durumlarınızı nasıl oluşturduğunuza ve yönettiğinize bağlıdır. Test durumlarını YAML dosyaları kullanarak tanımlarsanız bu testleri Firebase CLI kullanarak çalıştırırsınız. Test durumlarınızı App Distribution konsolunda oluşturursanız bunları konsoldan veya App Distribution CLI araçlarından biri aracılığıyla çalıştırırsınız.
YAML dosyalarını kullanma
YAML dosyalarında tanımlanan test durumları, Firebase CLI kullanılarak yürütülebilir.
- Firebase CLI'nın en yeni sürümünü yükleyin veya bu sürüme güncelleyin. İşletim sisteminize özel CLI için bağımsız ikili programı indirmenizi öneririz.
- Oturum açın ve projelerinize erişebildiğinizi test edin. Firebase CLI'yı bir CI ortamında kullanıyorsanız kimlik doğrulamasını bir hizmet hesabı ile veya login:ci komutunu kullanarak da yapabilirsiniz.
apptesting:executekomutunu çalıştırın. Örneğin:firebase apptesting:execute \ --app=1:1234567890:android:0a1b2c3d4e5f67890 \ --test-dir=./mytests \ ./app/build/outputs/apk/debug/app-debug.apk
| apptesting:execute [seçenekler] [/path/to/app/binary] | |
|---|---|
--app
|
Zorunlu: Uygulamanızın Firebase Uygulama Kimliği. Uygulama kimliğini Firebase konsolundaki Genel Ayarlar sayfasında bulabilirsiniz.
|
--test-dir
|
Test durumu YAML dosyalarını içeren dizinin yolu. Komut, bu dizin altında tekrarlı olarak arama yapar. Bu nedenle, dosyalar isteğe bağlı olarak alt dizinler halinde düzenlenebilir. Ayarlanmazsa varsayılan olarak "./tests" kullanılır. |
--test-devices veya --test-devices-file
|
Testlerin yürütüleceği cihazlar. Test cihazlarını, noktalı virgülle ayrılmış cihaz özellikleri listesi olarak belirtebilirsiniz: --test-devices
"model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
Alternatif olarak, cihaz özelliklerinin noktalı virgülle ayrılmış bir listesini içeren düz metin dosyasının yolunu da belirtebilirsiniz: --test-devices-file
"/path/to/test-devices.txt" Kullanılabilir cihaz modellerini gcloud CLI'yı kullanarak arayabilirsiniz. |
--test-username
|
Testler sırasında kullanılacak otomatik giriş kullanıcı adı. |
--test-password veya --test-password-file
|
Testler sırasında kullanılacak otomatik giriş şifresi. Alternatif olarak, şifre içeren bir düz metin dosyasının yolunu da belirtebilirsiniz: --test-password-file: "/path/to/test-password.txt"
|
--test-non-blocking
|
Bu seçenek ayarlanırsa komut, testleri başlatır ve testlerin tamamlanmasını beklemek yerine hemen geri döner. Test sonuçlarını görmek için Firebase konsolunu ziyaret edin. Bu işaret ayarlanmazsa komut, testler tamamlanana kadar engellenir ve testlerden herhangi biri başarısız olursa hata koduyla çıkar. |
--results-bucket
|
Test sonuçlarının depolandığı özel bir Google Cloud Storage (GCS) paketi. Boş bırakılırsa varsayılan paket kullanılır. Paket, faturalandırmanın etkin olduğu bir projeye ait olmalıdır. Paket belirtildiğinde, kullanılan depolama alanı için faturalandırma ücretleri uygulanır. |
--test-file-pattern
|
Normal ifade kalıbı. Yalnızca bu kalıpla eşleşen dosyalarda bulunan testler yürütülür. |
--test-name-pattern
|
Normal ifade kalıbı. Yalnızca bu kalıpla eşleşen görünen adlara sahip testler yürütülür. |
/path/to/app/binary
|
İsteğe bağlı: Uygulamanızın ikili programının yolu. Atlanırsa temsilci, belirtilen uygulama için App Distribution platformuna yüklenen son sürümü kullanır. |
App Distribution konsolunu kullanma
App Distribution'da depolanan test durumlarını çalıştırmak için Firebase konsolunu, Firebase CLI'yı veya App Distribution'ın Gradle ya da fastlane eklentilerini kullanabilirsiniz.
YAML dosyalarıyla test durumlarını içe ve dışa aktarma
Test durumlarını Firebase konsolu dışında yönetmek istiyorsanız test durumlarını YAML dosyalarından içe aktarabilirsiniz. Test durumlarını projeler arasında taşımak için dışa aktarmak da yararlı olabilir. Mevcut test durumlarını hassaslaştırmak veya yeni test durumları oluşturmak için LLM'leri kullanabilirsiniz. Test durumlarını Firebase konsolundaki Test Durumları sayfasından veya Firebase CLI'yi kullanarak programatik olarak içe ve dışa aktarabilirsiniz. YAML test durumu örneği için YAML test durumu oluşturma bölümüne bakın.
Test sonuçlarınızı görüntüleme
Testlerinizin sonuçlarını, bir sürümün Uygulama Testi aracısı sekmesindeki Sürümler sayfasından görüntüleyebilirsiniz. Ayrıntıları görüntüle düğmesi, Test Sonuçları iletişim kutusunu açar ve sorunları, uygulamanın ekran görüntülerini ve Gemini'ın test sırasında gerçekleştirdiği işlemleri gösterir.
Bir test, yeniden oynatılan işlemler içeriyorsa orijinal yapay zeka destekli test çalıştırmasını görüntüleyebilir veya önbelleği temizleyebilirsiniz.
Test sonuçlarınız hakkında daha fazla bilgi edinmek için aşağıdaki tabloyu kullanın:
| Simge | Ad | Açıklama |
|---|---|---|
| spark | Yapay zeka işlemi | Uygulama Testi aracısının, bir işlem yapmaya veya adımı sonlandırmaya karar vermek için Gemini'ı kullandığını gösterir. |
| replay | İşlem yeniden oynatıldı | Uygulama Testi ajanının, testin önceki başarılı bir çalıştırmasındaki bir işlemi yeniden oynattığını gösterir. |
| spark | Yapay zeka iddiası | Uygulama Testi aracısının, aynı testin daha önce başarılı bir şekilde çalıştırılmasından elde edilen işlemleri yeniden oynattıktan sonra son ekran onayını doğrulamak için Gemini'ı kullandığını gösterir. |
Test sonuçlarınızda hata ayıklama
Test sonuçlarınız beklediğinizden farklıysa Test Sonuçları sayfasındaki Ayrıntıları göster bölümünde bulunan Temsilci görünümünü göster düğmesini kullanarak testinizde hata ayıklayabilirsiniz. Temsilci görünümü, Uygulama Testi temsilcisinin uygulamanın erişilebilirlik bilgilerini kullanırken algılayabildiği ekran öğelerini gösterir. Temsilcinin gördüğü bilgileri daha yakından incelemek isterseniz bu bilgileri işlem taşma menüsünden indirebilirsiniz.
Test sonuçlarınızla ilgili tüm videoları, günlükleri ve diğer Cloud yapılarını incelemek için Test Sonuçları sayfasındaki Yapıları görüntüle düğmesini de kullanabilirsiniz.
Bilinen sorunlar ve sınırlamalar
Uygulama Testi ajanı önizlemesinde bilinen bazı sınırlamalar vardır:
- Yapay zeka destekli testlerin zaman aşımı süresi 5 dakikadır. Test başladıktan sonra bu süre içinde başarılı olması gerekir. Aksi takdirde test erken sona erer ve başarısız sayılır.
- Uygulama Testi temsilcisi, uygulamanızı test etmek için üretken yapay zekayı kullandığından bazen aynı talimatları uygularken farklı işlemler yapabilir.
- Uygulama Testi aracısı yalnızca şu işlemleri destekler: dokunma, metin girme, yukarı/aşağı/sola/sağa kaydırma, uzun basma, sürükle ve bırak, geri ve bekleme.
- Uygulama Testi temsilcisi, tamamlanması için birçok işlem yapılması gereken tek bir adım içeren testleri yürütürken sorun yaşıyor. Karmaşık görevler birden fazla kısa adıma bölündüğünde daha iyi performans gösterir.
- Uygulama Testi ajanı bazen ekran dışındaki diğer öğeleri göstermek için ekranı kaydırmaz. Bu durum, kaydırılabilirliğe dair görsel bir gösterge olmadığında daha sık yaşanır. Geçici çözüm olarak, kaydırma önerisinde bulunmak için "hints" alanı kullanılabilir.
- Uygulama Testi ajanı bazen sayma konusunda sorun yaşayabilir. Örneğin, bir işlemi belirli sayıda gerçekleştiremeyebilir.
FLAG_SECUREetkinse Uygulama Testi ajanı uygulamanızda gezinemez. Uygulamanızın ekran görüntüleri yerine yalnızca boş bir ekran görür.
Kotaları test etme
Önizleme sırasında, yapay zeka destekli testler belirli bir kota sınırı dahilinde ücretsiz olarak sunulur. Varsayılan kota sınırı, Firebase projesi başına ayda 200 testtir.
Birden fazla test durumu çalıştırmayı veya aynı test durumunu birden fazla cihazda çalıştırmayı seçerseniz bunun birden fazla test olarak sayılacağını unutmayın. Örneğin, 2 cihazda 2 test durumu çalıştırırsanız bu toplam 4 test olarak sayılır.
Kotanızı varsayılan sınırın üzerine çıkarmak için kullanım alanınızı belirterek Firebase Destek Ekibi ile iletişime geçin.