Calabash Android Tutorial Alat Pengujian

⚡ Ringkasan Cerdas

Calabash adalah kerangka kerja pengujian penerimaan sumber terbuka yang mendorong tindakan antarmuka pengguna nyata pada Android dan aplikasi iOS, menggunakan bahasa Inggris sederhana. Cucumber Skenario yang didukung oleh definisi langkah Ruby dan server pengujian di sisi perangkat.

  • 🔸 Definisi: Calabash Mengotomatiskan ketukan, input teks, dan pernyataan terhadap aplikasi seluler asli dan hibrida pada perangkat sungguhan dan emulator.
  • ☑️ Tumpukan bahasa: Skenario ditulis dalam file fitur Gherkin, dan metode yang sesuai berada dalam file Ruby di dalam step_definitions.
  • ✅ Yayasan BDD: Behavior Driven Development memungkinkan pemilik bisnis, pengembang, dan penguji untuk menyepakati perilaku sebelum skrip apa pun dibuat.
  • 🧪 Urutan penyiapan: Java JDK, lalu Ruby, lalu Android Studio, lalu gem calabash-android, diverifikasi dengan perintah versi.
  • ️ Alur eksekusi: Resign APK, build server pengujian, hubungkan perangkat, lakukan query locator, lalu jalankan file fitur.
  • 📊 Status terkini: Calabash karena sudah diarsipkan dan tidak dipelihara, maka proyek-proyek baru umumnya memilih untuk tidak menggunakannya. Appium, Espresso atau XCUITest sebagai gantinya.

Calabash tutorial alat pengujian untuk Android menunjukkan Cucumber berkas fitur yang menggerakkan aplikasi seluler

Apa itu Calabash?

Calabash adalah Penerimaan sumber terbuka pengujian kerangka kerja yang memungkinkan Anda menulis dan menjalankan pengujian untuk iOS dan Android Aplikasi.

Ini adalah kerangka kerja antarmuka pengguna otomatis yang memungkinkan pengujian ditulis dalam Ruby menggunakan Cucumber.

Calabash Cara kerjanya adalah dengan memungkinkan interaksi UI otomatis dalam aplikasi seluler seperti menekan tombol, memasukkan teks, memvalidasi respons, dll. Fitur ini dapat dikonfigurasi untuk berjalan di berbagai platform. Android dan perangkat iOS, yang memberikan masukan dan validasi secara real-time.

⚠️ Catatan versi: Microsoft mengakhiri kontribusinya terhadap Calabash setelah iOS 11 versi final dan Android 8 rilis, dan repositori calabash-android Saat ini, proyek tersebut mendeskripsikan dirinya sebagai proyek yang sedang mencari pengelola. Panduan di bawah ini dipertahankan sebagaimana adanya, dan pengganti modernnya dibahas di bagian terakhir.

Mengapa Calabash Otomatisasi?

Sebelum memasang apa pun, ada baiknya mempertimbangkan manfaat yang diberikan oleh kerangka kerja tersebut dibandingkan dengan biaya perawatannya.

Kelebihan Kekurangan
Ini membantu meningkatkan throughput/produktivitas. Kemahiran diperlukan untuk menulis skrip pengujian otomatisasi.
Peningkatan kualitas atau peningkatan prediktabilitas kualitas Men-debug skrip pengujian adalah masalah besar.
Peningkatan ketahanan (konsistensi) proses atau produk. Pemeliharaan pengujian mahal dalam hal metode pemutaran.
Meningkatkan konsistensi output dan mengurangi biaya dan pengeluaran tenaga kerja Pemeliharaan file data pengujian sulit dilakukan jika skrip pengujian menguji lebih banyak layar

Calabash dan BDD

  • Calabash is Pengembangan Berbasis Perilaku (BDD)Ini sama dengan Pengembangan Berbasis Uji (TDD)Namun, alih-alih membuat pengujian untuk mendeskripsikan bentuk API, perilaku aplikasi yang ditentukan.
  • BDD adalah sebuah proses di mana berbagai pemangku kepentingan mempertimbangkan untuk menciptakan pemahaman bersama tentang apa yang harus dibangun.
  • BDD sangat membantu dalam membangun perangkat lunak yang tepat dan merancang dari sudut pandang pemilik bisnis.

Diagram di bawah ini menunjukkan bagaimana sebuah Calabash Rangkaian perangkat lunak ini berlapis, mulai dari file fitur yang mudah dibaca oleh bisnis di bagian atas hingga interaksi perangkat di bagian bawah.

Calabash Diagram lapisan BDD yang menunjukkan file fitur, definisi langkah, dan lapisan otomatisasi perangkat.

Bagaimana menginstal Calabash

Calabash on Windows Membutuhkan empat prasyarat yang diinstal secara berurutan. Selesaikan setiap bagian sepenuhnya sebelum memulai bagian berikutnya, karena gem calabash-android memeriksa Ruby dan Android SDK selama instalasi.

Bagian I) Instalasi Java JDK – Lihat panduan ini – /install-java.html

Bagian II) Unduh dan instal Ruby.

Langkah 1) Unduh Ruby dari URL https://rubyinstaller.org/downloads

Halaman unduhan RubyInstaller yang mencantumkan versi Ruby yang tersedia untuk Windows

Langkah 2) Buka file .exe, ikuti petunjuk di layar. Setelah instalasi selesai, Anda akan melihat layar berikut. Klik Selesai.

Layar penyelesaian wizard pengaturan Ruby dengan tombol Selesai yang disorot.

Mulai Command Prompt dengan Ruby aktif Windows 10 & ketik di bawah Perintah.

ruby -v

Konsol akan mencetak versi interpreter yang terpasang, seperti yang ditunjukkan di bawah ini.

Command Prompt dengan Ruby yang menampilkan nomor versi Ruby yang terpasang.

Bagian III) Unduh dan instal Android

Langkah 1) Unduh Android Studio at https://developer.android.com/studio

Android Studio wizard pengaturan sedang berjalan pada Windows selama instalasi

Langkah 2) Buka file .exe, ikuti petunjuk di layar dan selesaikan instalasi. Klik tombol selesai setelah selesai.

Android Studio Layar instalasi selesai dengan tombol selesai.

Bagian IV) Instalasi Calabash Android

Langkah 1) Di konsol, ketik `gem install calabash-android`. Instalasi akan dimulai dan akan memakan waktu beberapa saat hingga selesai.

Output konsol saat gem calabash-android dan dependensinya diinstal.

Langkah 2) Setelah instalasi selesai, ketik calabash-android version

Konsol mengkonfirmasi versi gem calabash-android yang terpasang.

Bekerja dengan Calabash

Setelah gem terpasang, tugas selanjutnya adalah menemukan folder framework dan memahami kerangka dasar yang disertakan di dalamnya.

Buka folder “calabash-android-0.9.0”. Folder tersebut berada di jalur C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0. Nama folder akan berubah sesuai dengan versi ruby/calabash yang Anda instal di komputer Anda.

Buka folder kerangka fitur. Perhatikan kerangka dasar ini.

Calabash folder kerangka fitur yang berisi direktori support dan step_definitions

  • File *.feature berisi skenario yang akan kita otomatisasi.
  • Metode yang digunakan oleh file fitur ditulis dalam file *.rb di dalam folder “step_definitions”.
  • Metode umum, pengaturan lingkungan, instalasi aplikasi, dan kait harus ditempatkan di dalam folder “dukungan”.

Mundur & Bangun aplikasi

  • Calabash-android resign *.apk
  • Calabash-android build *.apk

Penandatanganan ulang mengganti tanda tangan pengembang dengan kunci debug sehingga server pengujian dapat menginstrumentasi aplikasi, dan langkah pembuatan menghasilkan server pengujian tersebut, seperti yang ditunjukkan oleh output konsol di bawah ini.

Output konsol dari perintah calabash-android resign dan build yang menghasilkan server uji.

Pasang perangkat ke sistem/Buka emulator

Periksa perangkat terpasang. Ketik perintah

adb devices

Daftar perangkat yang terhubung akan ditampilkan. Jika perangkat tidak ada, langkah-langkah debugging dan pemasangan USB di Panduan koneksi ADB menyelesaikan sebagian besar kasus.

Perintah adb devices, daftar satu terlampir Android perangkat berdasarkan nomor seri

Cara Menemukan Pencari Elemen

  • Buka konsol. Ketikkan Perintah.
    calabash-android console "APK Path"
    start_test_server_in_background
  • Perintah di atas meluncurkan aplikasi pada perangkat. Untuk menemukan penentu lokasi elemen, gunakan perintah berikut.
    query "*"

Ini akan menampilkan semua penunjuk elemen pada layar saat ini. Penguji yang lebih menyukai pemeriksa visual dapat memeriksa silang hierarki yang sama dengan uiautomatorviewer.

Calabash Konsol menampilkan pohon elemen yang ditanyakan untuk layar aplikasi saat ini.

Calabash Struktur Proyek dan Langkah-Langkah yang Telah Ditentukan Sebelumnya

Alih-alih menyalin folder gem secara manual, framework ini dapat menghasilkan proyek yang berfungsi untuk Anda. Menjalankan generator di dalam direktori proyek Anda akan membuat proyek standar. Cucumber tata letak yang setiap Calabash suite mengharapkan.

calabash-android gen

Pohon yang dihasilkan memisahkan tiga perhatian dari rangkaian BDD:

  • fitur/ — skenario Gherkin, satu .fitur berkas per perjalanan pengguna.
  • fitur/definisi_langkah/ — metode Ruby yang sesuai dengan setiap baris Gherkin, termasuk calabash_steps.rb yang disertakan.
  • fitur/dukungan/ — konfigurasi lingkungan dan mekanisme yang menginstal, meluncurkan, dan mematikan aplikasi di setiap skenario.

File calabash_steps.rb yang disertakan lebih penting daripada yang terlihat pada awalnya. File ini menyediakan sejumlah besar langkah-langkah siap pakai dalam bahasa Inggris, sehingga skenario pertama dapat menekan tombol, memasukkan teks, dan melakukan pengecekan pada string yang terlihat sebelum satu pun metode kustom ditulis. Langkah-langkah kustom hanya diperlukan setelah perjalanan melampaui frasa-frasa bawaan tersebut.

Dua pengaturan tingkat proyek perlu diketahui sejak awal. Secara default, tangkapan layar akan tersimpan di direktori kerja saat ini, dan variabel lingkungan SCREENSHOT_PATH akan mengarahkannya ke tempat lain, yang menjaga agar artefak build tetap rapi di mesin bersama. Berinteraksi dengan dialog sistem atau aplikasi lain memerlukan backend UIAutomator2, yang dijalankan dengan start_test_server_in_background(with_uiautomator: true).

Membuat Script Baru

Buka file fitur dan baris berikut

Berkas fitur login dibuka di editor yang menunjukkan langkah-langkah skenario Gherkin.

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"

Buka file Definisi Langkah & Tentukan metode ke dalam file *.rb.

Peta file definisi langkah Rubyping jalur Gherkin ke sebuah Calabash kueri elemen

Given /^I am on the login windows$/ do
   wait_for(:timeout =>100) { element_exists("* id:'loginInput;")}
   check_element_exists("* id:'loginInput;")
end

Jalankan proyek uji

Untuk menjalankan proyek pengujian, gunakan perintah di bawah ini

calabash-android run "APK Path" "feature file Path" --tags "tag name"

Cucumber Mencetak setiap langkah saat dieksekusi, dan eksekusi yang berhasil diakhiri dengan skenario dan total langkah yang ditampilkan di sini.

Calabash Output hasil eksekusi yang menunjukkan setiap langkah Gherkin yang dijalankan pada perangkat.

Calabash Laporan ringkasan konsol menampilkan skenario yang berhasil dan jumlah langkah setelah eksekusi.

Umum Calabash Kesalahan dan Cara Memperbaikinya

Sebagian besar kegagalan saat pertama kali dijalankan berasal dari aturan pengemasan dan izin yang digunakan oleh server pengujian, bukan dari skenario itu sendiri. Tabel di bawah ini memetakan gejala yang paling sering dilaporkan ke penyebab yang telah didokumentasikan.

Gejala Kemungkinan penyebab dan solusinya
Aplikasi langsung mengalami crash begitu pengujian dimulai. APK tersebut tidak memiliki izin android.permission.INTERNET, yang dibutuhkan server pengujian untuk menerima perintah. Deklarasikan izin tersebut di AndroidBuka Manifest.xml dan bangun ulang.
Tombol dan teks tidak merespons sentuhan. Tidak ada targetSdkVersion yang dideklarasikan. Tambahkan entri uses-sdk yang menyebutkan level SDK yang digunakan saat aplikasi dibangun.
Server pengujian tidak dapat terhubung ke aplikasi. APK tersebut belum ditandatangani ulang dengan kunci debug. Jalankan perintah penandatanganan ulang, lalu buat ulang sebelum menjalankannya.
Tidak ada perangkat yang terdaftar saat dijalankan. Debugging USB dimatikan atau drivernya hilang. Pastikan nomor seri muncul di output adb devices terlebih dahulu.
Langkah-langkah gagal dengan kesalahan langkah yang tidak terdefinisi. Susunan kata Gherkin tidak sesuai dengan ekspresi reguler apa pun di step_definitions. Salin cuplikan yang disarankan. Cucumber mencetak dan mengimplementasikannya.

Dua entri manifes memperbaiki dua baris pertama. Tambahkan entri tersebut sebelum menandatangani ulang APK.

<uses-permission android:name="android.permission.INTERNET" />
<uses-sdk android:targetSdkVersion="SDK_VERSION" />

Kegagalan batas waktu biasanya disebabkan oleh faktor lingkungan, bukan fungsi. Emulator yang lambat, aplikasi yang baru dimulai, atau sinkronisasi latar belakang dapat menyebabkan layar melewati jendela wait_for, jadi tingkatkan batas waktu sebelum menulis ulang langkah yang sebenarnya sudah benar.

Is Calabash Masih Dipelihara? Alternatif untuk Pengujian Seluler Modern

Calabash tidak lagi dikembangkan secara aktif. Microsoft berhenti berkontribusi setelah mendukung iOS 11 versi final dan Android Setelah 8 rilis, proyek ini sekarang menjadi basis kode sumber terbuka yang diarsipkan tanpa pengelola. Rangkaian perangkat lunak yang ada masih berjalan di perangkat lama, tetapi pekerjaan baru harus dimulai pada kerangka kerja yang didukung.

Kerangka Platform Paling cocok untuk
Appium Android dan iOS Rangkaian perangkat lunak lintas platform di Java, Python, Ruby atau JavaSkrip, dan pengganti terdekat untuk sebuah Calabash Tim.
Espresso Android hanya Pengujian cepat dalam proses yang ditulis dalam Kotlin atau Java oleh para pengembang aplikasi itu sendiri.
Uji XCUIT Hanya untuk iOS Asli Xcode suite, penerus yang didukung dari yang sudah pensiun. Kerangka kerja UIAutomation.
Maestro dan Detoks Android dan iOS Proyek open-source yang lebih baru ditujukan untuk ketahanan terhadap flake dan aplikasi React Native.

Kebiasaan BDD itu sendiri ditransfer dengan bersih. File fitur Gherkin tetap persis seperti semula, dan hanya badan definisi langkah yang berubah, karena Cucumber Terletak di atas pengemudi, bukan di dalamnya. Tim yang bermigrasi biasanya menyimpan file fitur, menulis ulang langkah-langkah Ruby sesuai dengan Appiumdan menggunakan kembali hal yang sama pengujian seluler matriks perangkat dan pengujian otomasi saluran pipa yang sudah mereka jalankan.

Pertanyaan Umum Demo Slot

Ya. Sebuah gem calabash-ios terpisah menggerakkan aplikasi iOS melalui Ruby yang sama dan Cucumber lapisan ini memiliki status penghentian penggunaan yang sama dengan Android gem, jadi pekerjaan iOS saat ini lebih baik ditangani oleh XCUITest atau Appium.

Model pembelajaran mesin kini secara otomatis memperbaiki locator yang rusak, menandai skenario yang tidak stabil dengan membandingkan riwayat eksekusi, dan mengelompokkan laporan kerusakan sehingga cacat yang paling merusak muncul terlebih dahulu. Keputusan tentang apa yang harus ditegaskan tetap berada di tangan penguji.

Copilot merancang bagian-bagian yang berulang dengan baik, seperti pembungkus blok wait_for.ping Ini adalah kueri elemen. Kueri ini tidak dapat mengetahui pengidentifikasi elemen aplikasi Anda, jadi perlakukan setiap langkah yang dihasilkan sebagai draf untuk diverifikasi terhadap hasil kueri langsung.

Cucumber adalah program penjalan BDD generik yang membaca Gherkin dan memanggil metode Ruby. Calabash adalah pustaka otomatisasi seluler yang dipanggil oleh metode-metode tersebut. Cucumber menentukan apa yang akan dijalankan; Calabash Melakukan ketukan, memasukkan teks, dan pernyataan.

Secara default, tangkapan layar ditulis ke direktori kerja saat ini, dengan nama berurutan untuk setiap eksekusi. Mengatur variabel lingkungan SCREENSHOT_PATH sebelum eksekusi akan mengarahkan tangkapan layar ke folder yang dipilih, sehingga artefak integrasi berkelanjutan tetap terpisah dari kode sumber.

Nomor Calabash Menginstrumentasi APK yang telah dikompilasi, itulah sebabnya langkah penandatanganan ulang ada. Akses sumber membantu Anda menambahkan pengenal elemen stabil, tetapi kerangka kerja itu sendiri hanya membutuhkan build yang diizinkan untuk ditandatangani ulang dan diinstrumentasi.

Ya. Karena eksekusinya hanya berupa satu panggilan baris perintah, server build mana pun dapat memanggilnya setelah APK diproduksi. A Jenkins Proses ini biasanya mengubah status APK, memulai emulator, menjalankan fitur yang ditandai, dan mengarsipkan laporan.

Biarkan file fitur Gherkin tidak berubah dan tulis ulang hanya bagian isi definisi langkah terhadap Appium Klien. Kueri elemen menjadi strategi pencari lokasi, dan kait yang menginstal aplikasi menjadi kemampuan yang diinginkan dalam pengaturan driver.

Ringkaslah postingan ini dengan: