Tutorial Selendroid untuk Pemula dengan Contoh

Isi kandungan:

Anonim

Pernahkah anda mengembangkan aplikasi Android dan menerbitkannya ke Google Play? Apa yang akan anda lakukan sekiranya mendapat ulasan pengguna seperti -

Semasa anda menerbitkan aplikasi ke Google Play, aplikasi mesti diuji dengan baik untuk mengelakkan kemungkinan terdapat pepijat. Terdapat banyak senario ujian yang harus dilaksanakan sebelum menerbitkan aplikasi. Untuk menjimatkan usaha Pengujian, anda memerlukan alat ujian. Salah satu alat ujian terbaik untuk aplikasi Android adalah Selendroid.

  • Apa itu Selendroid?
  • Mengapa kita memerlukan Selendroid?
  • Senibina Selendroid
  • Bermula dengan Selendroid
  • Menyiapkan persekitaran Selendroid
  • Cara melancarkan Selendroid
  • Perintah asas selendroid
  • Mulakan ujian pertama anda dengan Selendroid

Apa itu Selendroid?

Selendroid adalah kerangka automasi ujian untuk pelbagai jenis aplikasi mudah alih: aplikasi Android asli dan hibrid dan web mudah alih .

Anda boleh menulis ujian menggunakan API pelanggan Selenium 2. Kerana Selendroid masih menggunakan semula infrastruktur Selenium yang ada untuk web

Selendroid adalah alat ujian yang kuat. Ia boleh digunakan pada emulator dan peranti sebenar

Mengapa kita memerlukan Selendroid?

Selendroid adalah alat ujian yang hebat. Tetapi anda mungkin masih meragui kegunaannya.

Bahagian ini akan memperkenalkan ciri penting Selendroid untuk menjawab persoalan mengapa anda memerlukan Selendroid.

  • Anda boleh menguji aplikasi yang diuji menggunakan Selendroid tanpa pengubahsuaian aplikasi. Anda hanya memerlukan fail binari (APK) yang dipasang di komputer. Untuk memasang fail binari pada peranti, aplikasi ujian dan aplikasi mudah alih mesti ditandatangani dengan kunci tanda yang sama
  • Aplikasi ujian Selendroid dapat berinteraksi dengan pelbagai peranti atau simulator secara serentak. Ini kelebihan Kelendroid. Oleh itu, anda boleh menguji aplikasi anda dengan pelbagai peranti Android untuk memeriksa keserasian.
  • Selendroid dapat mensimulasikan tindakan pengguna-pengguna pada aplikasi, seperti sentuhan, sapu, seret dan lepas pada peranti
  • Anda boleh menukar peranti perkakasan (Pasang dan cabut) semasa ujian tanpa memulakan semula atau menghentikan ujian. Selendroid mengenali peranti baru secara automatik
  • Sesuai dengan versi Android API ke atas, Selendroid juga mendukung API Android baru (Dari API 10 hingga API 19)
  • Selendroid juga mempunyai beberapa alat pemeriksa terbina dalam untuk membantu anda mengenal pasti elemen UI aplikasi yang sedang diuji. Contohnya butang ID, bidang teks, paparan teks ...

Senibina Selendroid

Selendroid didasarkan pada kerangka instrumentasi Android. Ujian Selendroid ditulis berdasarkan API klien pemacu Web Selenium, jadi ia menyokong integrasi penuh dengan kerangka kerja Selenium semasa.

Gambar berikut menerangkan seni bina Selendroid

Selendroid mengandungi 4 komponen utama:

  • Pelanggan Pemandu Web - Perpustakaan pelanggan Java berdasarkan Selenium. Perpustakaan ini harus dipasang di komputer (yang digunakan untuk mengembangkan kes ujian)
  • Selendroid-Server - Pelayan yang dijalankan berada dalam aplikasi yang sedang diuji pada peranti atau simulator Android. Ini adalah komponen utama seni bina Selendroid
  • Aplikasi Pemacu Android - Pemacu Android bawaan, aplikasi Paparan Web untuk menguji web mudah alih.
  • Selendroid-Standalone - Komponen ini digunakan untuk memasang pelayan Selendroid dan aplikasi yang sedang diuji (AUT)

Bermula dengan Selendroid

Anda sudah mengetahui kepentingan Selendroid. Sekarang mari kita kotor tangan kita dengan Selendroid.

Terdapat 3 langkah yang harus dilakukan sebelum ujian pertama dengan Selendroid

Menyiapkan persekitaran Selendroid

Selendroid boleh berfungsi pada Window, Linux dan Mac OS. Dalam tutorial ini, kita akan menyiapkan Selendroid di Window OS.

Sebelum menggunakan Selendroid, anda perlu memasang pakej berikut terlebih dahulu

  • SDK Java (minimum 1.6)

    Anda mesti menerima perjanjian lesen dan memuat turun pemasang java (Pilih asas x64 atau x86 pada OS anda)

    Muat turun dan pasang Java SDK sebagai perisian biasa

  • Android SDK versi terkini
  • Komputer anda mesti mempunyai sekurang-kurangnya satu Perisian Maya Android (AVD), atau peranti Android sebenar yang terpasang ke PC.
  • Selendroid Berdiri dengan kebergantungan, Selendroid Client, dan Selenium Client
  • Perisian Eclipse
  • Sediakan JAVA_HOME dan ANDROID_HOME

    Langkah 1) Pada Tetingkap, klik kanan Komputer -> Properties -> Tetapan Sistem Lanjutan

    Langkah 2) Paparan tetingkap Properties Sistem, pilih tab Advanced -> Pemboleh ubah Persekitaran

    Langkah 3) Paparan tetingkap Lingkungan, klik Baru -> Masukkan ANDROID_HOME pemboleh ubah seperti berikut

    Nilai pemboleh ubah adalah jalan ke android-sdks yang sudah anda pasang.

    Cari pemboleh ubah sistem Path -> Edit -> Tambahkan baris berikut selepas baris semasa

    Sama seperti ANDROID_HOME, tambahkan pemboleh ubah baru JAVA_HOME dengan nilai seperti di bawah

    Nilainya adalah Jalan ke pemasangan Java JDK anda

    Langkah 4) Mulakan semula PC anda -> Selesai

Cara melancarkan Selendroid

Langkah 1) Mendapatkan permohonan yang diuji

Anda boleh menggunakan aplikasi ujian Selendroid yang ada untuk memeriksa bagaimana Selendroid berfungsi (Pautan ke aplikasi sampel yang sedang diuji)

Setelah muat turun selesai, salin APK ini dan fail balang Selendroid Standalone di atas ke folder dengan nama " Guru99"

Langkah 2) Lancarkan Selendroid

Buka terminal pada Windows & arahkan ke folder Guru99 yang dibuat pada langkah 1.

Jalankan arahan berikut

Keluaran akan dipaparkan seperti berikut

Setelah menjalankan perintah ini, pelayan HTTP mandiri Selendroid bermula! Nombor port lalai pelayan ini ialah 4444. Semua peranti perkakasan, serta Peranti Maya Android, akan dipindai dan dikenali secara automatik. Selendroid akan mengenal pasti versi sasaran Android dan ukuran skrin peranti.

Untuk memeriksa versi sasaran Android dan juga maklumat peranti, anda boleh melancarkan URL berikut pada penyemak imbas:

http: // localhost: 4444 / wd / hub / status.

Perintah asas selendroid

Bahagian ini memperkenalkan anda beberapa baris arahan Selendroid-Standalone asas. Anda mungkin menggunakannya untuk menyiapkan persekitaran ujian Selendroid

  1. Menetapkan pelabuhan Selendroid

    Port default Selendroid adalah 4444. Tetapi anda boleh menukar ke port lain dengan menambahkan parameter pada perintah untuk melancarkan Selendroid

    Parameter: -port [nombor port]

    Sebagai contoh:

    Dalam perintah di atas, 5555 adalah port baru.

Jadi URL untuk memeriksa versi sasaran Android diubah menjadi: http: // localhost: 5555 / wd / hub / status

  1. Nyatakan lokasi aplikasi yang diuji (fail APK Binari). Selendroid sering memerlukan jalan mutlak untuk fail ini

    Parameter: -app [laluan fail]

    Sebagai contoh:

    Dalam perintah di atas, Selendroid secara automatik mencari asas fail binari pada "C: \ Guru99App.apk" untuk mendapatkan maklumat aplikasi yang diuji.

    Periksa URL http: // localhost: 4444 / wd / hub / status, anda akan melihat maklumat ini

  2. Tukar port yang digunakan oleh Selendroid untuk berkomunikasi dengan pelayan instrumentasi. Selendroid menggunakan port 8080 sebagai lalai

    Parameter: -selendroidServerPort [nombor port]

    Contohnya

    Pelabuhan sekarang ditukar menjadi 9000

  3. Tukar masa tamat untuk memulakan emulator. Unit ini adalah milisaat.

    Parameter: -timeoutEmulatorStart

    Secara lalai, Selendroid akan menunggu 300,000 milisaat sehingga emulator bermula. Anda boleh menukar ke timeout baru (200,000 ms) dengan perintah

    Selepas masa ini kami tamat tempoh, jika emulator tidak dapat dimulakan, Selendroid akan membuang kesalahan pengecualian (Ralat berlaku semasa mencari peranti / emulator.) Kemudian berhenti berjalan

  4. Apabila anda memulakan perintah Selendroid di terminal, anda akan melihat log dicetak di skrin. Anda boleh mengubah jenis log yang anda lihat dengan menambahkan parameter berikut

    Parameter: -logLevel [jenis log]

    Nilai tahap log adalah KESALAHAN, PERINGATAN, INFO, DEBUG, dan VERBOSE. Lalai: RALAT.

    Sebagai contoh, tetapkan Selendroid untuk mencetak log PERINGATAN sahaja, anda boleh menggunakan perintah ini

    Selendroid hanya mencetak log AMARAN

Mulakan ujian pertama anda dengan Selendroid

Bahagian ini adalah panduan langkah demi langkah untuk membuat skrip ujian pertama anda menggunakan Selendroid

Katakan kita mempunyai aplikasi Android dengan nama ujian Guru99App. Aplikasi ini merangkumi bidang teks dan nama butang "Tunjukkan Teks".

MUAT TURUN APK DI SINI

Kita perlu melaksanakan Uji Kes berikut dengan menggunakan Selendroid

Kes Ujian

Keadaan

Hasil yang diharapkan:

  1. Lancarkan aplikasi
  2. Masukkan teks " Uji Guru99 " ke medan teks
  3. Tekan butang "Tunjukkan Teks"

Perduaan aplikasi yang diuji ada

Peranti disambungkan ke PC

Teks "Teks Tunjuk di sini" diubah menjadi teks

pengguna mana yang dimasukkan dalam medan teks

Langkah 1) Buat projek Java di Eclipse

Langkah 2) Tambahkan fail jar selenium dan Selendroid di persekitaran gerhana

Klik kanan Projek Guru99Test -> Laluan Binaan -> Tambah Arkib Luaran

Navigasi ke folder yang menyimpan fail balang

Terdapat 3 fail balang yang harus ditambah

  • selendroid-client-0.10.0.jar: Perpustakaan pelanggan selendroid java
  • selendroid-standalone-0.11.0-with-dependencies: Perpustakaan pelayan mandiri Selendroid
  • selenium-java-2.40.0.jar: Perpustakaan Pemacu Web Selenium

Pilih semua -> Pilih Buka untuk menambah fail jar ke projek

Langkah 3) setelah menambahkan perpustakaan di atas, perpustakaan tersebut akan ditambahkan ke Perpustakaan Rujukan projek ujian. Penguji boleh menggunakan API perpustakaan tersebut untuk mengembangkan program ujian

Buat pakej "com.guru.test" dan tambahkan fail java "Guru99Test.java" seperti di bawah

Klik kanan Guru99Test -> Baru -> Pakej

Ketik com.guru.test ke medan Nama pada dialog Pakej Java Baru à Selesai

Eclipse akan membuat folder senarai dan subfolder seperti ini dalam struktur kod sumber

Langkah 4) Pasang TestNG untuk Eclipse

Di Eclipse, Bantuan -> Pasang Perisian Baru, dalam Dialog Pasang, klik Tambah dan masukkan yang berikut

  • Nama: UjianNG
  • Lokasi: http://selendroid.io/

Tekan OK -> Seterusnya untuk memasang TestNG

Langkah 5) Salin Guru99App.apk ke folder Uji Aplikasi

Langkah 6) Dapatkan ID permohonan yang sedang diuji.

Katakan kita mempunyai nama fail APK Guru99App.apk. Ikuti langkah yang dijelaskan di bahagian sebelumnya, jalankan perintah di terminal

Buka pautan berikut dalam penyemak imbas

http: // localhost: 4444 / wd / hub / status.

Maklumat peranti dipaparkan, salin nilai appId "com.guru99app: 1.0"

Langkah 7) Buka fail Guru99Test.java (dalam contoh kod) dan ubah seperti berikut

Untuk membuat sesi ujian baru dengan Selendroid, anda harus memberikan id aplikasi dalam format: com.guru99app: 1.0. Id aplikasi ini dapat dikenal pasti pada langkah 6. Jika anda tidak menetapkan Id aplikasi yang sesuai dengan peranti Android, sesi ujian akan menimbulkan kesalahan dan tidak akan bermula.

Setelah memulakan peranti yang dijumpai, Selendroid membuat pelayan selendroid yang disesuaikan dan memasang pelayan Selendroid di atasnya

Selendroid juga memasang aplikasi yang diuji dan memulakan pelayan selendroid pada peranti

Setelah memulakan sesi ujian dengan jayanya, perintah ujian mula dijalankan pada peranti. (Seperti memasukkan teks, tekan butang

...). Sekiranya ujian menambahkan sesi ujian, emulator akan berhenti secara automatik

Langkah 8) Mulakan sesi ujian baru

Lancarkan pelayan Selendroid menggunakan perintah berikut di terminal seperti langkah 6

Setelah Pelayan Selendroid bermula, buka contoh projek ujian Guru99test di Eclipse, tetapkan titik putus pada baris 77 pada fail Guru99Test.java dengan klik dua kali ke baris 77 -> Titik akan dipaparkan seperti di bawah

Mulakan sesi ujian dengan kanan Klik untuk projek Guru99Test -> Debug As -> Testng Test.

Sesi ujian akan bermula seperti di bawah

Langkah 9) Dapatkan Id elemen GUI aplikasi yang sedang diuji

Setelah sesi ujian dimulakan dengan jayanya, buka penyemak imbas, arahkan ke URL http: // localhost: 4444 / inspector

Anda akan melihat Aplikasi Dalam Ujian dilancarkan seperti di bawah

Gunakan mouse arahkan ke setiap elemen UI AUT (Button, TextField, Text Label), ID setiap elemen akan disorot pada panel kanan

Selepas langkah ini, anda boleh mendapatkan ID setiap elemen UI di atas

  • Butang Tunjukkan ID Teks: " btnShow "
  • ID Medan Teks: " edtText "
  • ID Teks Label: " txtView "

ID tersebut akan digunakan pada langkah seterusnya

Langkah 10) Masukkan program ujian seperti di bawah

Program ujian menggunakan Selendroid merangkumi 3 bahagian

Ujian Persediaan:

Berikut ini adalah kod untuk ujian persediaan, ia akan menetapkan syarat untuk sesi ujian. Sekiranya berlaku kesalahan, Selendroid akan membuang pengecualian dan aplikasi ujian akan berhenti.

Kod tersebut merangkumi komen untuk menjelaskan setiap pernyataan.

pakej com.guru.test;import io.selendroid.SelendroidCapabilities;import io.selendroid.SelendroidConfiguration;import io.selendroid.SelendroidDriver;import io.selendroid.SelendroidLauncher;import io.selendroid.device.DeviceTargetPlatform;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.testng.Assert;import org.testng.annotations.AfterSuite;import org.testng.annotations.BeforeSuite;import org.testng.annotations.Test;/ *** Aplikasi Uji @author Guru99 menggunakan Selendroid* Permohonan dalam ujian: Guru99App** /awamkelas Guru99Test {// Menyatakan pemboleh ubah pemacu webpemacu WebDriver peribadi;/ *** Siapkan persekitaran sebelum melakukan ujian* Pengecualian @throws* /@SebelumSuiteawamvoid setUp () membuang Pengecualian {// Mulakan selendroid-mandiri semasa ujianSelendroidConfiguration config = SelendroidConfiguration baru ();// Tambahkan aplikasi selendroid-test ke pelayan mandiriconfig.addSupportedApp ("Guru99App.apk");// mulakan pelayan yang berdiri sendiriSelendroidLauncher selendroidServer = SelendroidLauncher baru (config);selendroidServer.launchSelendroid ();// Buat kemampuan selendroidSelendroidCapabilities capa = SelendroidCapabilities baru ();// Tentukan untuk menggunakan aplikasi ujian selendroidcapa.setAut ("com.guru99app: 1.0");// Tentukan untuk menggunakan API peranti Android 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Jangan minta simulator, gunakan peranti sebenarcapa.setEmulator (palsu);//capa.wait(10000000);// Buat contoh Pemacu Selendroiddriver = SelendroidDriver baru (capa);}

Laksanakan Ujian

Berikut adalah kod untuk melaksanakan ujian. Kod tersebut merangkumi komen

Berikut adalah langkah ujian sekali lagi

  1. Masukkan teks "Hello Guru"
  2. Klik Butang Teks Tunjukkan
  3. Tunggu sekejap
  4. Sahkan bahawa aplikasi memaparkan teks semasa pengguna memasuki bidang teks (Cth. Paparkan teks "Hello Guru")
 / *** Mula laksanakan kes ujian* 01. Masukkan teks "Selendroid" ke medan teks* 02. Tekan butang OK* Pengecualian @throws* /@ Ujianawambatal selendroidTest () membuang Pengecualian {// Cetak logSystem.out.print ("Mula menjalankan ujian");// Cari medan teks input di skrin// Id bidang teks ini diperoleh dari langkah 9WebElement inputField = driver.findElement (By.id ("edtText"));// Sahkan bahawa medan teks diaktifkan sehingga pengguna dapat memasukkan teksAssert.assertEquals ("true", inputField.getAttribute ("enabled"));// Masukkan medan teks ke teksinputField.sendKeys ("Hello Guru");// klik butang Tunjukkan Teks// Id butang ini diperoleh dari langkah 9Butang WebElement = driver.findElement (By.id ("btnShow"));butang.klik ();// Kelewatan masa untuk berkuat kuasaThread.sleep (5000);// Cari label "Teks Tunjukkan Di Sini" di skrin// Id label ini diperoleh dari langkah 9WebElement txtView = driver.findElement (By.id ("txtView"));// Dapatkan paparan teks di skrinRentetan yang diharapkan = txtView.getText ();// Sahkan bahawa teks yang dimasukkan pengguna di medan teks sama dengan paparan teks di skrinAssert.assertEquals (dijangka, inputField.getText ());}

Selesaikan Ujian

Kod berikut akan menyelesaikan ujian dengan menghentikan pemacu Selendroid.

 / *** Hentikan pemacu Selendroid** /@AfterSuiteawamjatuhkan air mataDown () {driver.quit ();}

Anda dapat melihat perincian dalam contoh kod yang disertakan dalam artikel ini.

Langkah 10) Sambungkan peranti Android ke PC melalui kabel USB. Perkara yang perlu diperhatikan -

  • Pastikan peranti tidak mempunyai kunci skrin yang dikonfigurasikan.
  • Peranti mesti dipasang melalui USB ke komputer yang digunakan oleh komponen selendroid-standalone.
  • Peranti harus memasang sekurang-kurangnya Android Target Version API 10

Langkah 11) Jalankan Aplikasi Uji: Klik kanan Guru99test -> Jalankan sebagai -> Uji TestNG

Langkah 10) Skrip mula dilaksanakan seperti berikut

Langkah 12) Setelah ujian selesai dijalankan, secara automatik TestNG menghasilkan laporan ujian seperti berikut

Kerja bagus, anda sudah selesai ujian sekarang.

Ringkasan

Ringkasan

  • Selendroid adalah alat yang sangat kuat untuk menguji aplikasi asli Android, aplikasi hibrid dan juga aplikasi web.
  • Ia boleh digunakan pada peranti sebenar dan juga simulator.
  • Ia juga membolehkan anda menjalankan ujian secara selari dengan menjalankan ujian pada pelbagai peranti.
  • Selet Selendroid terdiri daripada empat komponen:
    • Pelanggan Pemandu Web,
    • Pelayan Selendroid,
    • Aplikasi Pemacu Android
    • Selendroid-berdiri sendiri
  • Untuk menggunakan Selendroid, anda memerlukan Java JDK, Android SDK dan Eclipse.