Calabash Android Test Aracı Eğitimi
⚡ Akıllı Özet
Calabash Kullanıcı arayüzünde gerçek zamanlı eylemleri yönlendiren açık kaynaklı bir kabul testi çerçevesidir. Android ve iOS uygulamaları için sade bir dil kullanarak. Cucumber Ruby adım tanımları ve cihaz tarafı test sunucusu tarafından desteklenen senaryolar.
Nedir? Calabash?
Calabash açık kaynaklı bir Kabuldür Test yapmak iOS için testler yazmanıza ve yürütmenize olanak tanıyan çerçeve ve Android Uygulamalar.
Bu, Ruby kullanarak testler yazılmasına olanak sağlayan otomatikleştirilmiş bir kullanıcı arayüzü çerçevesidir. Cucumber.
Calabash Mobil uygulamalar içinde düğmelere basma, metin girme, yanıtları doğrulama vb. gibi otomatik kullanıcı arayüzü etkileşimlerini etkinleştirerek çalışır. Farklı platformlarda çalışacak şekilde yapılandırılabilir. Android ve gerçek zamanlı geri bildirim ve doğrulama sağlayan iOS cihazları.
⚠️ Sürüm notu: Microsoft katkılarını sonlandırdı Calabash iOS 11'in son sürümünden sonra ve Android 8 yayın ve calabash-android deposu Şu anda kendisini bir bakımcı arayan bir proje olarak tanımlıyor. Aşağıdaki kılavuz olduğu gibi korunmuştur ve modern alternatifler son bölümde ele alınmıştır.
Neden Şimdi Calabash Otomasyon?
Herhangi bir şey kurmadan önce, altyapının sağlayacağı faydaları bakım maliyetleriyle karşılaştırmak faydalı olacaktır.
| Avantajlar | Dezavantajlar |
| Verimin/üretkenliğin artmasına yardımcı olur. | Otomasyon test komut dosyalarını yazmak için yeterlilik gereklidir. |
| İyileştirilmiş kalite veya kalitenin artan öngörülebilirliği | Test betiğinde hata ayıklamak önemli bir konudur. |
| Süreçlerin veya ürünlerin sağlamlığının (tutarlılığının) iyileştirilmesi. | Oynatma yöntemleri durumunda test bakımı maliyetlidir. |
| Çıktı tutarlılığının arttırılması ve işçilik maliyetlerinin ve giderlerinin azaltılması | Test komut dosyası daha fazla ekranı test ederse test veri dosyalarının bakımı zordur |
Calabash ve BDD
- Calabash is Davranış Odaklı Geliştirme (BDD)Aynı şeydir. Test Odaklı Geliştirme (TDD)Ancak API'lerin yapısını tanımlayacak testler oluşturmak yerine, uygulama davranışı belirtilir.
- BDD, neyin inşa edilmesi gerektiğine dair ortak bir anlayış oluşturmak için birden fazla paydaşın dahil olduğu bir süreçtir.
- BDD, doğru yazılımın oluşturulmasında ve işletme sahibinin bakış açısıyla tasarlanmasında yardımcı olur.
Aşağıdaki diyagram, bir Calabash Bu paket, en üstte iş dünyası tarafından okunabilir özellik dosyasından en altta cihaz etkileşimine kadar katmanlı bir yapıya sahiptir.
Nasıl kurulur? Calabash
Calabash on Windows Dört ön koşulun sırayla yüklenmesi gerekiyor. Bir sonraki adıma başlamadan önce her bölümü tamamen tamamlayın, çünkü calabash-android gem'i Ruby ve diğer ön koşulları kontrol ediyor. Android SDK kurulumu sırasında.
Bölüm I) Kurulum Java JDK – Bu kılavuza bakın – /install-java.html
Bölüm II) Ruby'yi indirip yükleyin.
Adım 1) Ruby'yi şu adresten indirin: URL https://rubyinstaller.org/downloads
Adım 2) .exe dosyasını açın ve ekrandaki talimatları izleyin. Kurulum tamamlandığında aşağıdaki ekranı göreceksiniz. Bitir'e tıklayın.
Ruby açıkken Komut İstemi'ni başlatın Windows 10 ve Komutun altına yazın.
ruby -v
Konsol, aşağıda gösterildiği gibi kurulu yorumlayıcı sürümünü yazdırır.
Bölüm III) İndirme ve yükleme Android
Adım 1) İndir Android Studio at https://developer.android.com/studio
Adım 2) .exe dosyasını açın, ekrandaki talimatları izleyin ve kurulumu tamamlayın. İşlem tamamlandığında "Bitir" düğmesine tıklayın.
Bölüm IV) Kurulum Calabash Android
Adım 1) Konsola `gem install calabash-android` yazın. Kurulum başlayacak ve tamamlanması biraz zaman alacaktır.
Adım 2) Kurulum tamamlandıktan sonra calabash-android version yazın.
Çalışma Calabash
Gem yüklendikten sonraki adım, framework klasörünü bulmak ve içerdiği iskeleti anlamaktır.
“calabash-android-0.9.0” klasörünü açın. C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0 yolunda bulunur. Klasör adları makinenize yüklediğiniz ruby/calabash sürümüyle senkronize olarak değişecektir.
Özellik iskeleti klasörünü açın. Bu temel çerçeveye dikkat edin.
- *.feature dosyası otomatikleştireceğimiz senaryoları içerir.
- Özellik dosyasının kullandığı yöntem “step_definitions” klasörü içindeki *.rb dosyasına yazılmıştır.
- Ortak yöntemler, ortam kurulumu, uygulama kurulumu ve kancalar “support” klasörüne yerleştirilmelidir.
İstifa et ve uygulamayı geliştir
- Calabash-android resign *.apk
- Calabash-android build *.apk
İmzayı yenilemek, geliştirici imzasını bir hata ayıklama anahtarıyla değiştirir, böylece test sunucusu uygulamayı izleyebilir ve derleme adımı, aşağıdaki konsol çıktısında gösterildiği gibi, bu test sunucusunu oluşturur.
Cihazı sisteme bağlayın / Emülatörü açın
Ekli cihazı kontrol edin. Komut yazın
adb devices
Bağlı cihazlar listesi görüntülenmelidir. Cihaz eksikse, USB hata ayıklama ve eşleştirme adımları tekrarlanmalıdır. ADB Connect kılavuzu Vakaların çoğunu çözüyor.
Eleman Bulucu Nasıl Bulunur?
- Konsolu açın. Komutu yazın.
calabash-android console "APK Path" start_test_server_in_background
- Yukarıdaki komut uygulamayı cihazda başlatır. Element bulucuyu bulmak için aşağıdaki komutu kullanın.
query "*"
Bu, mevcut ekrandaki tüm öğe konumlandırıcılarını gösterecektir. Görsel denetleyiciyi tercih eden test uzmanları, aynı hiyerarşiyi aşağıdaki komutlarla da kontrol edebilirler. uiautatorviewer.
Calabash Proje Yapısı ve Önceden Tanımlanmış Adımlar
Gem klasörünü elle kopyalamak yerine, çerçeve sizin için çalışan bir proje oluşturabilir. Proje dizininizde jeneratörü çalıştırmak standart bir proje oluşturur. Cucumber her birinin düzeni Calabash süit beklentileri.
calabash-android gen
Oluşturulan ağaç, bir BDD paketinin üç temel unsurunu birbirinden ayırır:
- özellikler/ — Gherkin senaryolarından biri .özellik Kullanıcı yolculuğu başına dosya.
- özellikler/adım_tanımları/ — Her Gherkin satırına karşılık gelen Ruby yöntemleri, bunlara dahil olan calabash_steps.rb dosyası da dahildir.
- özellikler/destek/ — Her senaryo için uygulamayı kuran, başlatan ve kapatan ortam yapılandırması ve bağlantı noktaları.
Paket içeriğindeki calabash_steps.rb dosyası ilk bakışta göründüğünden daha önemlidir. Hazır İngilizce adımlar içeren geniş bir set sunar; böylece ilk senaryo, tek bir özel yöntem yazılmadan önce düğmelere basabilir, metin girebilir ve görünür dizeler üzerinde doğrulama yapabilir. Özel adımlara yalnızca bir yolculuk bu hazır ifadelerin ötesine geçtiğinde ihtiyaç duyulur.
Proje düzeyindeki iki ayarı önceden bilmekte fayda var. Ekran görüntüleri varsayılan olarak geçerli çalışma dizinine kaydedilir ve SCREENSHOT_PATH ortam değişkeni bunları başka bir yere yönlendirir; bu da paylaşımlı bir makinede derleme dosyalarının düzenli kalmasını sağlar. Sistem diyaloglarıyla veya başka bir uygulamayla etkileşim kurmak için, start_test_server_in_background(with_uiautomator: true) ile başlatılan UIAutomator2 arka ucuna ihtiyaç duyulur.
Yeni Komut Dosyaları Oluşturma
Özellik dosyasını ve aşağıdaki satırları açın
Feature: Login feature Scenario: As a valid user I can log into my app When I press "Login" And I enter my username And I enter my password Then I see "Welcome to coolest app ever"
Adım Tanımı dosyasını açın ve yöntemi *.rb dosyasında tanımlayın.
Given /^I am on the login windows$/ do wait_for(:timeout =>100) { element_exists("* id:'loginInput;")} check_element_exists("* id:'loginInput;") end
Test projesini yürütün
Test projesini yürütmek için aşağıdaki komutu kullanın
calabash-android run "APK Path" "feature file Path" --tags "tag name"
Cucumber Her adım çalışırken çıktısını yazdırır ve başarılı bir çalıştırma, burada gösterilen senaryo ve adım toplamlarıyla sona erer.
ortak Calabash Hatalar ve Nasıl Düzeltilir
İlk çalıştırmada yaşanan hataların çoğu, senaryonun kendisinden değil, test sunucusunun bağlı olduğu paketleme ve izin kurallarından kaynaklanır. Aşağıdaki tablo, en sık bildirilen belirtileri belgelenmiş nedenleriyle eşleştirir.
| Semptom | Muhtemel neden ve çözüm |
| Test başladığı anda uygulama çöküyor. | APK dosyasında, test sunucusunun komutları kabul etmesi için gereken android.permission.INTERNET izni eksik. Bu izni tanımlayın. AndroidManifest.xml dosyasını değiştirin ve yeniden derleyin. |
| Düğmeler ve metinler dokunmalara yanıt vermiyor. | Hedef SDK sürümü belirtilmemiş. Uygulamanın derlendiği SDK düzeyini belirten bir uses-sdk girdisi ekleyin. |
| Test sunucusu uygulamaya bağlanamıyor. | APK dosyası hata ayıklama anahtarıyla yeniden imzalanmadı. Yeniden imzalama komutunu çalıştırın, ardından çalıştırmadan önce tekrar derleyin. |
| Çalışma zamanında hiçbir cihaz listelenmiyor. | USB hata ayıklama kapalı veya sürücü eksik. Öncelikle seri numarasının adb devices çıktısında göründüğünden emin olun. |
| Adımlar, tanımlanmamış adım hatasıyla başarısız oluyor. | Gherkin ifadesi, step_definitions'daki hiçbir normal ifadeyle eşleşmiyor. Önerilen kod parçasını kopyalayın. Cucumber Yazdırma işlemlerini gerçekleştirir ve uygular. |
İki manifest girdisi ilk iki satırı düzeltir. APK'yı yeniden imzalamadan önce bunları ekleyin.
<uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:targetSdkVersion="SDK_VERSION" />
Zaman aşımı hataları genellikle işlevselden ziyade çevreseldir. Yavaş bir emülatör, soğuk bir uygulama başlangıcı veya arka plan senkronizasyonu, ekranın bekleme süresini aşmasına neden olabilir; bu nedenle, aslında doğru olan bir adımı yeniden yazmadan önce zaman aşımını artırın.
Is Calabash Hâlâ Bakımı Yapılıyor mu? Modern Mobil Test İçin Alternatifler
Calabash Artık aktif olarak geliştirilmiyor. Microsoft iOS 11'in son sürümünü destekledikten sonra katkıda bulunmayı bıraktım. Android 8 sürüm yayınlandı ve proje artık bakımcısı olmayan, arşivlenmiş bir açık kaynak kod tabanı haline geldi. Mevcut paketler hala eski cihazlarda çalışıyor, ancak desteklenen bir çerçeve üzerinde yeni çalışmalara başlanmalı.
| iskelet | Platform | En uygun |
| Appium | Android ve iOS | Çapraz platform paketleri Java, PythonRuby veya JavaSenaryo ve bunun en yakın alternatifi Calabash takım. |
| Espresso | Android bir tek | Kotlin ile yazılmış hızlı işlem içi testler veya Java Uygulama geliştiricilerinin kendileri tarafından. |
| XCUITest | Yalnızca iOS | Yerli Xcode emekli olanın yerine geçen, desteklenen süitler. UIAutomation çerçevesi. |
| Maestro ve Detoks | Android ve iOS | Yeni açık kaynak projeleri, hata toleransı ve React Native uygulamalarına yönelik çözümler sunmayı hedefliyor. |
BDD alışkanlığı sorunsuz bir şekilde aktarılıyor. Gherkin özellik dosyaları aynen kalıyor ve yalnızca adım tanımlama gövdeleri değişiyor, çünkü Cucumber Sürücünün içinde değil, üstünde yer alır. Geçiş yapan ekipler genellikle özellik dosyalarını korur ve Ruby adımlarını bunlara göre yeniden yazar. Appiumve aynısını tekrar kullanın mobil test cihaz matrisi ve otomasyon testi Zaten çalıştırdıkları işlem hattı.
















