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
- 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
- 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
- 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
- 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
- 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: |
|
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 automatikLangkah 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
- Masukkan teks "Hello Guru"
- Klik Butang Teks Tunjukkan
- Tunggu sekejap
- 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.