Berapa Appium untuk rakyat

Pada artikel ini, kita akan melihat alat Appium. Artikel ini adalah pengantar pengenalan pengujian otomatis aplikasi seluler. Ini akan menunjukkan kesulitan apa yang mungkin Anda hadapi ketika menggunakan alat ini.

Pertimbangkan tugas kecil menggunakan contoh "kalkulator", cobalah menulis tes otomatis untuk mengujinya dan ... Mari kita mulai dari awal :)

Kandungan


  • Apa itu Appium?
  • Minimal yang diperlukan.
  • Pernyataan dan solusi masalah.
  • Confluenced :)

Apa itu Appium?


Beberapa kata tentang pengujian seluler. Anda tidak dapat memiliki komputer, laptop di rumah, tetapi kami tidak melihat hidup kami tanpa perangkat seluler. Menguji aplikasi seluler membutuhkan ceruk besar dalam ... pengujian ... Mmmm ... mentega adalah mentega, tetapi memang demikian. Niche ini cukup rumit.

Ada begitu banyak perangkat dengan sistem operasi mereka, dengan antarmuka grafis mereka sendiri, resolusi layar, dll. Saya pikir daftar ini tidak ada habisnya. Jadi, karena banyaknya variasi perangkat seluler, alangkah baiknya memiliki tes otomatis untuk aplikasi kita untuk mengurangi penderitaan penguji dan tidak mengubah pengujian satu fungsi pada ratusan perangkat menjadi "neraka nyata" (lihat gambar di bawah).

gambar

Ada banyak alat untuk menulis autotest untuk perangkat seluler. Untuk menyelesaikan tugas yang ditetapkan di depan saya, saya memilih Appium, karena itu secara bersamaan cocok untuk Android dan iOS dan Anda dapat menulis tes mandiri menggunakan Java "favorit semua orang".

Appium adalah alat lintas platform gratis, sumber terbuka, yang membantu mengotomatiskan aplikasi untuk Android dan iOS. Appium mengambil pendekatan yang sama dengan Selenium WebDriver, yang menerima permintaan HTTP JSON dari klien dan mengonversinya tergantung pada platform tempat kerjanya.

gambar

Persyaratan minimum


Jadi apa yang kita butuhkan untuk bekerja dengan Appium?

Untuk membuat tes untuk Android, persyaratan berikut diajukan:

  • Java (versi> = 7)
  • API Android SDK (versi> = 17)
  • Android Virtual Device (AVD) / perangkat nyata
  • Manajer Eksekusi Akselerasi Perangkat Keras Intel

Agar emulator perangkat Android bekerja pada kecepatan yang mendekati kecepatan perangkat nyata, Anda perlu menginstal Intel Hardware Accelerated Execution Manager. Ini akan membantu mengurangi waktu yang diperlukan untuk meluncurkan dan men-debug aplikasi.

Untuk iOS:

  • Mac OS X (versi> = 10.7)
  • Xcode (versi> = 5.1)
  • Java (versi> = 7)
  • Homebrew
  • NodeJS
  • npm

Saya juga merekomendasikan menginstal appium-doctor untuk mendiagnosis masalah yang mungkin terjadi ketika menginstal dan mengkonfigurasi komponen yang diperlukan pada kedua platform.

gambar

Pernyataan dan solusi masalah


Jadi, mari kita bayangkan bahwa kita perlu menulis tes otomatis untuk aplikasi kalkulator untuk perangkat Android. Untuk melakukan ini, kita perlu mengunduh Appium dari situs resmi dan memasangnya di "mesin" kita.

gambar

Luncurkan Appium.

gambar

Secara default, Appium siap mendengarkan localhost dengan port 4723. Di sini kita akan membiarkan semuanya tidak berubah dan memulai server.

gambar

Sekarang Appium siap memproses permintaan kami.

Autotest masa depan kita harus dijalankan baik pada emulator atau pada perangkat nyata. Untuk keserbagunaan artikel ini, pertimbangkan pekerjaan tes pada emulator. Untuk ini kita membutuhkan Android Studio. Unduh dan instal sendiri. Kemudian buka dan buka Tools - AVD Manager.

gambar

gambar

gambar

gambar

gambar

gambar

Sekarang buka terminal dan jalankan perintah adb devices. Dia akan menampilkan daftar perangkat yang terpasang.

gambar

Kita melihat bahwa daftar perangkat kosong, karena tidak ada emulator yang berjalan, tidak ada perangkat nyata yang terhubung ke "mesin" kami.

Jalankan semua emulator yang kita miliki. Dalam kasus saya, ini adalah dua emulator. Jalankan perintah adb devices lagi.

gambar

Sekarang kami memiliki daftar tidak kosong yang berisi ID dari perangkat kami yang terpasang - emulator dan perangkat, jika ada.

Dengan emulator diurutkan, mari kita mulai menulis kode. Seperti dijelaskan di atas, dalam pengujian saya, saya menggunakan Java.

Pertama, buat instance AndroidDriver. Konstruktor kelas ini mengharapkan dua parameter untuk masuk:

gambar

Kemampuan yang diinginkan - objek JSON (satu set pasangan kunci-nilai) yang dikirim oleh klien ke server.

Kemampuan yang diinginkan menjelaskan fitur sesi yang dibuat (nama perangkat / emulator, sistem operasi (OS), versi OS, aplikasi yang diluncurkan, dll.).

Contoh

gambar

kemampuan : Kami menjelaskan kemampuan kami dan membuat AndroidDriver.

gambar

deviceName adalah parameter yang diperlukan, tetapi untuk Android itu tidak dicentang. Jika kita berbicara tentang iOS, maka ketika menentukan nama, Anda harus menggunakan salah satu nama yang dipesan (contoh nama tersebut diberikan dalam komentar pada kode). Deskripsi parameter lain diberikan dalam kode (lihat gambar di atas), tetapi kami akan fokus pada beberapa di antaranya.

udid adalah pengidentifikasi unik untuk perangkat. Kita bisa mendapatkan pengidentifikasi perangkat ini dengan perintah adb devices.

gambar

appPackage adalah nama paket Java aplikasi Android yang ingin kita jalankan.

appActivities adalah nama dari kegiatan yang kami buka.

appPackage dan appActivities dapat diperoleh dengan berbagai cara, tetapi yang paling sederhana adalah dengan menginstal aplikasi "Info APK" dari Google Play.

Setelah membuka program ini, Anda akan melihat daftar semua aplikasi yang diinstal. Kami tertarik pada Kalkulator. Pilih dari daftar.

gambar

Dan inilah semua informasi yang kami butuhkan.

gambar

gambar

Mengisi mereka. Selanjutnya, buat instance AndroidDriver: daftarkan URL Appium dan kirimkan objek kemampuan sebagai parameter kedua.

gambar

Kode ini hanya akan menjalankan kalkulator pada emulator. Kita perlu belajar bagaimana mengelola elemen-elemen kalkulator sehingga kita dapat menulis tes sederhana. Prinsipnya serupa di sini seperti di Selenium Web Driver. Kita perlu mengakses elemen melalui pelacak apa pun. Inspektur Appium akan membantu kita mendapatkannya. Buka Appium.

gambar

gambar

Sekarang semua kemampuan kami yang dijelaskan dalam kode harus ditransfer ke Inspektur, di tab Kemampuan yang Diinginkan.

gambar

Memulai Sesi.

gambar

Inspektur menerjemahkan apa yang ditampilkan pada perangkat. Sedikit ke kanan adalah pohon dari semua elemen Kegiatan saat ini. Untuk mendapatkan atribut suatu elemen, Anda hanya perlu memilih elemen yang kita butuhkan.

gambar

Setelah memilih, semua atribut yang tersedia untuk elemen ini ditampilkan. Dalam hal ini, tidak begitu penting bagi kami cara mengakses elemen: dengan ID atau xPath. Tetapi dalam aplikasi besar dan kompleks, lebih baik menggunakan ID, karena xPath sangat memperlambat jalannya tes. Juga, saat menguji aplikasi hybrid, ID akan menjadi satu untuk Android dan iOS, dan xPath akan berbeda. Kami belajar cara mendapatkan atribut yang diperlukan. Sekarang, dengan analogi dengan Selenium Web Driver, kita mendapatkan elemen yang diperlukan dalam kode.

gambar

Untuk mendapatkan item, saya menggunakan metode findElementById. Anda dapat membuat turunan dari kelas MobileElement dan bekerja dengannya, atau Anda bisa tanpa membuatnya. Di sini kita mendefinisikan elemen angka 2, + dan 3. Pada akhirnya, saya berharap hasilnya menjadi 5. Pada akhirnya, hasilnya adalah sebagai berikut:

gambar

Saya melakukan tes dan berusaha membuat sesi menjadi metode yang terpisah. Sekarang saya akan mencoba menunjukkan apa yang kami lakukan.


Confluenced :)


gambar

Pada artikel ini saya menunjukkan cara memulai dengan Appium dengan cepat dan apa yang dibutuhkan untuk ini. Seperti yang mungkin telah Anda perhatikan, mulai menulis tes sederhana tidak begitu sulit. Kemudian Anda dapat mempercepat laporan ke proyek, misalnya, Allure. Tetapi ini adalah kisah yang sangat berbeda :)

Mungkin Anda akan memiliki masalah tersendiri ketika memasang berbagai alat yang diperlukan untuk bekerja dengan Appium. Tetapi semua masalah ini mudah diselesaikan dengan pencarian Google :)

Topik pengujian untuk iOS belum diungkapkan, tetapi saya ingin "mengatakan", atau lebih tepatnya menulis beberapa kata tentangnya.

Untuk menjalankan aplikasi melalui Appium di iOS, saya menghabiskan banyak waktu untuk mengatur lingkungan (xCode, Appium, sertifikat pengembang, dll.). Itu perlu untuk membuka proyek Appium melalui xCode, menentukan sertifikat pengembang dan pengaturan lainnya, merakit proyek, dan hanya kemudian ternyata menjalankan perintah melalui Appium pada perangkat iOS. Setelah setiap pembaruan Appium, Anda harus melakukan prosedur ini. Mungkin semuanya akan menjadi jauh lebih mudah bagi Anda, Anda harus memercayainya. Sejauh ini saya belum menemukan solusi lain, mungkin itu, tetapi sejauh ini cocok untuk saya.

Saya ingin mencatat sekali lagi bahwa lebih baik menggunakan ID saat mengakses elemen daripada xPath. Bahkan jika elemen tidak mengandung ID, maka tanyakan / paksa pengembang untuk menentukan ID. Ini akan membuat hidup Anda lebih mudah dan meningkatkan kecepatan eksekusi tes Anda.

Namun, semakin banyak perangkat nyata yang Anda miliki, semakin besar kemungkinan untuk menemukan bug sebelum pengguna akhir menemukannya. Pada prinsipnya, Anda dapat membuat pabrik perangkat Anda sendiri. Tetapi menurut saya lebih disarankan untuk melihat ke arah solusi cloud, misalnya, BrowserStack, SauceLabs dan lainnya.

Hanya itu yang ingin saya katakan! Proyek

PS di GitHub

PPS Sedikit dari grup saya

Nah, itu saja!

All Articles