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.
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.
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
Langkah 2) Buka file .exe, ikuti petunjuk di layar. Setelah instalasi selesai, Anda akan melihat layar berikut. Klik Selesai.
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.
Bagian III) Unduh dan instal Android
Langkah 1) Unduh Android Studio at https://developer.android.com/studio
Langkah 2) Buka file .exe, ikuti petunjuk di layar dan selesaikan instalasi. Klik tombol selesai setelah 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.
Langkah 2) Setelah instalasi selesai, ketik calabash-android version
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.
- 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.
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.
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 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
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.
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.
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.
















