Pernahkah Anda mengembangkan aplikasi Android dan menerbitkannya ke Google Play? Apa yang akan Anda lakukan jika mendapatkan ulasan pengguna seperti -
Saat Anda memublikasikan aplikasi ke Google Play, aplikasi tersebut harus diuji dengan baik untuk menghindari potensi bug. Ada banyak sekali skenario pengujian yang harus dijalankan sebelum menerbitkan aplikasi. Untuk menghemat upaya Pengujian, Anda memerlukan alat pengujian. Salah satu alat pengujian terbaik untuk aplikasi Android adalah Selendroid.
- Apa itu Selendroid?
- Mengapa kita membutuhkan Selendroid?
- Arsitektur Selendroid
- Memulai Selendroid
- Menyiapkan lingkungan Selendroid
- Cara meluncurkan Selendroid
- Perintah dasar selendroid
- Mulailah pengujian pertama Anda dengan Selendroid
Apa itu Selendroid?
Selendroid adalah kerangka kerja otomatisasi pengujian untuk berbagai jenis aplikasi seluler: aplikasi Android asli dan hibrida serta web seluler .
Anda dapat menulis pengujian menggunakan API klien Selenium 2. Karena Selendroid masih menggunakan kembali infrastruktur Selenium yang ada untuk web
Selendroid adalah alat pengujian yang ampuh. Ini dapat digunakan pada emulator dan perangkat nyata
Mengapa kita membutuhkan Selendroid?
Selendroid adalah alat pengujian yang hebat. Namun Anda mungkin masih meragukan kegunaannya.
Bagian ini akan memperkenalkan fitur-fitur penting Selendroid untuk menjawab pertanyaan mengapa Anda membutuhkan Selendroid.
- Anda dapat menguji aplikasi yang sedang diuji menggunakan Selendroid tanpa modifikasi aplikasi apa pun. Anda hanya perlu menginstal file biner (APK) di komputer. Untuk menginstal file biner di perangkat, aplikasi pengujian dan aplikasi seluler harus ditandatangani dengan kunci tanda yang sama
- Aplikasi uji selendroid dapat berinteraksi dengan beberapa perangkat atau simulator secara bersamaan. Ini adalah keuntungan besar dari Selendroid. Jadi, Anda dapat menguji aplikasi Anda dengan berbagai perangkat Android untuk memeriksa kompatibilitasnya.
- Selendroid dapat mensimulasikan tindakan manusia-pengguna pada suatu aplikasi, seperti menyentuh, menggesek, menyeret, dan melepas pada perangkat
- Anda dapat mengubah perangkat keras (Pasang dan lepas) selama pengujian tanpa memulai ulang atau menghentikan pengujian. Selendroid mengenali perangkat baru secara otomatis
- Sesuai dengan versi API Android ke atas, Selendroid juga mendukung API Android baru (Dari API 10 hingga API 19)
- Selendroid juga memiliki beberapa alat pemeriksa bawaan untuk membantu Anda mengidentifikasi elemen UI dari aplikasi yang sedang diuji. Misalnya tombol ID, bidang teks, tampilan teks…
Arsitektur Selendroid
Selendroid didasarkan pada kerangka instrumentasi Android. Tes selendroid ditulis berdasarkan API klien driver Web Selenium, sehingga mendukung integrasi penuh dengan kerangka kerja Selenium saat ini.
Gambar berikut menggambarkan arsitektur Selendroid
Selendroid mengandung 4 komponen utama:
- Web Driver Client - Pustaka klien Java berdasarkan Selenium. Perpustakaan ini harus diinstal di komputer (yang digunakan untuk mengembangkan kasus uji)
- Selendroid-Server - Server yang menjalankan aplikasi yang sedang diuji pada perangkat Android atau simulator. Ini adalah komponen utama arsitektur Selendroid
- Android Driver-App - Driver Android built-in, aplikasi Web View untuk menguji web seluler.
- Selendroid-Standalone - Komponen ini digunakan untuk menginstal server Selendroid dan aplikasi yang diuji (AUT)
Memulai Selendroid
Anda sudah tahu pentingnya Selendroid. Sekarang mari kita mengotori tangan kita dengan Selendroid.
Ada 3 langkah yang harus dilakukan sebelum tes pertama dengan Selendroid
Menyiapkan lingkungan Selendroid
Selendroid dapat bekerja di Window, Linux dan Mac OS. Dalam tutorial ini, kami akan mengatur Selendroid di Windows OS.
Sebelum menggunakan Selendroid, Anda perlu menginstal paket berikut terlebih dahulu
- Java SDK (minimal 1.6)
Anda harus menerima perjanjian lisensi dan mengunduh penginstal java (Pilih basis x64 atau x86 pada OS Anda)
Unduh dan instal Java SDK sebagai perangkat lunak biasa
- SDK Android versi terbaru
- Komputer Anda harus memiliki setidaknya satu Perangkat Virtual Android (AVD), atau perangkat Android asli yang dicolokkan ke PC.
- Selendroid Standalone dengan dependensi, Selendroid Client, dan Selenium Client
- Perangkat lunak Eclipse
- Siapkan JAVA_HOME dan ANDROID_HOME
Langkah 1) Di Window, klik kanan Computer -> Properties -> Advanced System Setting
Langkah 2) Tampilan jendela System Properties, pilih tab Advanced -> Environment Variables
Langkah 3) Tampilan jendela Environment, klik New -> Enter a variable ANDROID_HOME seperti berikut
Nilai variabel adalah jalur ke android-sdks yang sudah Anda instal.
Temukan Path variabel sistem -> Edit -> Tambahkan baris berikut setelah baris saat ini
Mirip dengan ANDROID_HOME, tambahkan variabel baru JAVA_HOME dengan nilai seperti di bawah ini
Nilainya adalah Path ke instalasi Java JDK Anda
Langkah 4) Mulai ulang PC Anda -> Selesai
Cara meluncurkan Selendroid
Langkah 1) Menguji aplikasi
Anda dapat menggunakan aplikasi pengujian Selendroid yang ada untuk memeriksa cara kerja Selendroid (Tautan ke aplikasi sampel yang sedang diuji)
Setelah pengunduhan selesai, salin APK ini dan file jar Selendroid Standalone di atas ke folder dengan nama " Guru99"
Langkah 2) Luncurkan Selendroid
Buka terminal di Windows & navigasikan ke folder yang dibuat Guru99 pada langkah 1.
Jalankan perintah berikut
Outputnya akan ditampilkan sebagai berikut
Setelah menjalankan perintah ini, server HTTP mandiri-mandiri dimulai! Nomor port default server ini adalah 4444. Semua perangkat keras, serta Perangkat Virtual Android, akan dipindai dan dikenali secara otomatis. Selendroid akan mengidentifikasi versi target Android dan ukuran layar perangkat.
Untuk memeriksa versi target Android serta informasi perangkat, Anda dapat meluncurkan URL berikut di browser:
http: // localhost: 4444 / wd / hub / status.
Perintah dasar selendroid
Bagian ini memperkenalkan Anda beberapa baris perintah Selendroid-Standalone dasar. Anda dapat menggunakannya untuk menyiapkan lingkungan pengujian Selendroid
- Port pengaturan Selendroid
Port default Selendroid adalah 4444. Tetapi Anda dapat mengubah ke port lain dengan menambahkan parameter ke perintah untuk meluncurkan Selendroid
Parameter: -port [nomor port]
Sebagai contoh:
Pada perintah di atas, 5555 adalah port baru.
Jadi URL untuk memeriksa versi target Android diubah menjadi: http: // localhost: 5555 / wd / hub / status
- Tentukan lokasi aplikasi yang sedang diuji (file APK Biner). Selendroid sering kali membutuhkan jalur absolut untuk file ini
Parameter: -app [jalur file]
Sebagai contoh:
Pada perintah di atas, Selendroid secara otomatis menemukan basis file biner di "C: \ Guru99App.apk" untuk mendapatkan informasi dari aplikasi yang diuji.
Periksa URL http: // localhost: 4444 / wd / hub / status, Anda akan melihat informasi ini
- Ubah port yang digunakan Selendroid untuk berkomunikasi dengan server instrumentasi. Selendroid menggunakan port 8080 sebagai default
Parameter: -selendroidServerPort [nomor port]
Contoh
Porta sekarang diubah menjadi 9000
- Ubah batas waktu untuk memulai emulator. Satuannya adalah milidetik.
Parameter: -timeoutEmulatorStart
Secara default, Selendroid akan menunggu 300.000 milidetik hingga emulator dimulai. Anda dapat mengubah ke waktu tunggu baru (200.000 md) dengan perintah
Setelah waktu ini kita expired, jika emulator tidak bisa start, Selendroid akan memunculkan error exception (Error terjadi saat mencari perangkat / emulator.) Lalu berhenti berjalan
- Saat Anda memulai perintah Selendroid di terminal, Anda akan melihat log dicetak di layar. Anda dapat mengubah jenis log yang Anda lihat dengan menambahkan parameter berikut
Parameter: -logLevel [jenis log]
Nilai tingkat log adalah ERROR, WARNING, INFO, DEBUG, dan VERBOSE. Default: ERROR.
Misalnya, atur Selendroid untuk mencetak log PERINGATAN saja, Anda dapat menggunakan perintah ini
Selendroid hanya mencetak log PERINGATAN
Mulailah pengujian pertama Anda dengan Selendroid
Bagian ini adalah panduan langkah demi langkah untuk membuat skrip pengujian pertama Anda menggunakan Selendroid
Misalkan kita memiliki aplikasi Android dengan nama uji Guru99App. Aplikasi ini mencakup bidang teks dan nama tombol "Tampilkan Teks".
UNDUH APK DI SINI
Kita perlu menjalankan Test Case berikut menggunakan Selendroid
Kasus Uji |
Kondisi |
Output yang diharapkan: |
|
Tersedia biner dari aplikasi yang diuji Sebuah perangkat terhubung ke PC |
Teks "Tunjukkan Teks di sini" diubah menjadi teks yang dimasukkan pengguna di bidang teks |
Langkah 1) Buat proyek Java di Eclipse
Langkah 2) Tambahkan file jar selenium dan Selendroid di lingkungan gerhana
Klik kanan Proyek Guru99Test -> Build Path -> Add External Archives
Arahkan ke folder yang menyimpan file jar
Ada 3 file jar yang harus ditambahkan
- selendroid-client-0.10.0.jar: Selendroid java client library
- selendroid-standalone-0.11.0-with-dependencies: Pustaka server mandiri selendroid
- selenium-java-2.40.0.jar: Perpustakaan Selenium Web Driver
Pilih semua -> Pilih Buka untuk menambahkan file jar ke proyek
Langkah 3) setelah menambahkan pustaka di atas, pustaka tersebut akan ditambahkan ke Pustaka Referensi dari proyek uji. Penguji dapat menggunakan API dari pustaka tersebut untuk mengembangkan program pengujian
Buat paket "com.guru.test" dan tambahkan file java "Guru99Test.java" seperti di bawah ini
Klik Kanan Guru99Test -> New -> Package
Ketik com.guru.test ke bidang Nama pada dialog Paket Java Baru à Selesai
Eclipse akan membuat folder daftar dan subfolder seperti ini di struktur kode sumber
Langkah 4) Instal TestNG untuk Eclipse
Di Eclipse, Help -> Install New Software, di Install Dialog, klik Add dan masukkan yang berikut ini
- Nama: TestNG
- Lokasi: http://selendroid.io/
Tekan OK -> Berikutnya untuk menginstal TestNG
Langkah 5) Salin Guru99App.apk ke folder Test App
Langkah 6) Dapatkan ID aplikasi yang sedang diuji.
Misalkan kita memiliki nama file APK Guru99App.apk. Ikuti langkah yang dijelaskan di bagian sebelumnya, jalankan perintah di terminal
Buka tautan berikut di browser
http: // localhost: 4444 / wd / hub / status.
Informasi perangkat ditampilkan, salin nilai appId "com.guru99app: 1.0"
Langkah 7) Buka file Guru99Test.java (dalam kode contoh) dan ubah seperti berikut
Untuk membuat sesi pengujian baru dengan Selendroid, Anda harus memberikan id aplikasi dalam format: com.guru99app: 1.0. ID aplikasi ini dapat diidentifikasi di langkah 6. Jika Anda tidak menyetel ID aplikasi yang cocok dengan perangkat Android, sesi pengujian akan menampilkan kesalahan dan tidak akan dimulai.
Setelah menginisialisasi perangkat yang ditemukan, Selendroid membuat server selendroid yang disesuaikan dan menginstal server Selendroid di atasnya
Selendroid juga menginstal aplikasi yang sedang diuji dan memulai selendroid-server di perangkat
Setelah berhasil menginisialisasi sesi pengujian, perintah pengujian mulai dijalankan di perangkat. (Seperti memasukkan teks, tekan tombol
…). Jika pengujian menambahkan sesi pengujian, emulator akan berhenti secara otomatisLangkah 8) Mulai sesi tes baru
Luncurkan server Selendroid menggunakan perintah berikut di terminal seperti langkah 6
Setelah Server Selendroid dijalankan, buka sample test project Guru99test di Eclipse, atur breakpoint di baris 77 pada file Guru99Test.java dengan cara double klik ke baris 77 -> Akan muncul titik seperti di bawah ini
Mulai sesi tes dengan kanan Klik ke proyek Guru99Test -> Debug As -> Testng Test.
Sesi tes akan dimulai seperti di bawah ini
Langkah 9) Dapatkan Id elemen GUI dari aplikasi yang diuji
Setelah sesi pengujian berhasil dimulai, buka browser, buka URL http: // localhost: 4444 / inspector
Anda akan melihat Application Under Test diluncurkan seperti di bawah ini
Gunakan mouse hover ke setiap elemen UI AUT (Button, TextField, Text Label), ID dari setiap elemen akan disorot di panel kanan
Setelah langkah ini, Anda bisa mendapatkan ID dari setiap elemen UI di atas
- Tombol Tampilkan ID Teks: " btnShow "
- ID Bidang Teks: " edtText "
- ID Teks Label: " txtView "
ID tersebut akan digunakan di langkah berikutnya
Langkah 10) Masuk ke program pengujian seperti di bawah ini
Program pengujian menggunakan Selendroid mencakup 3 bagian
Tes Penyiapan:
Berikut adalah kode untuk tes pengaturan, itu akan mengatur kondisi untuk sesi tes. Jika terjadi kesalahan, Selendroid akan mengeluarkan pengecualian dan aplikasi pengujian akan berhenti.
Kode tersebut menyertakan komentar untuk menjelaskan setiap pernyataan.
paket com.guru.test;import io.selendroid.SelendroidCapabilities;import io.selendroid.SelendroidConfiguration;import io.selendroid.SelendroidDriver;impor io.selendroid.SelendroidLauncher;impor 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;/ *** @Aauthor Guru99 Test App menggunakan Selendroid* Aplikasi yang diuji: Guru99App** /publikkelas Guru99Test {// Deklarasikan variabel driver webpengemudi WebDriver pribadi;/ *** Siapkan lingkungan sebelum pengujian* @throws Exception* /@Tokopediapublikvoid setUp () melempar Exception {// Mulai selendroid-standalone selama pengujianSelendroidConfiguration config = new SelendroidConfiguration ();// Tambahkan aplikasi selendroid-test ke server mandiriconfig.addSupportedApp ("Guru99App.apk");// mulai server mandiriSelendroidLauncher selendroidServer = SelendroidLauncher baru (config);selendroidServer.launchSelendroid ();// Buat kemampuan selendroidSelendroidCapabilities capa = SelendroidCapabilities baru ();// Tentukan untuk menggunakan aplikasi pengujian selendroidcapa.setAut ("com.guru99app: 1.0");// Tentukan untuk menggunakan API perangkat Android 19capa.setPlatformVersion (DeviceTargetPlatform.ANDROID19);// Jangan meminta simulator, gunakan perangkat nyatacapa.setEmulator (false);//capa.wait(10000000);// Buat instance Driver Selendroiddriver = SelendroidDriver baru (capa);}
Jalankan Tes
Di bawah ini adalah kode untuk menjalankan tes. Kode tersebut menyertakan komentar
Berikut langkah-langkah pengujiannya lagi
- Masukkan teks "Hello Guru"
- Klik Tampilkan Tombol Teks
- Tunggu sebentar
- Verifikasi bahwa aplikasi menampilkan teks saat pengguna memasukkan ke bidang teks (Mis. Menampilkan teks "Hello Guru")
/ *** Mulai jalankan kasus uji* 01. Masukkan teks "Selendroid" ke kolom teks* 02. Tekan tombol OK* @throws Exception* /@Ujipublikvoid selendroidTest () melempar Exception {// Cetak logSystem.out.print ("Mulai menjalankan pengujian");// Temukan kolom teks input di layar// Id bidang teks ini didapat dari langkah 9WebElement inputField = driver.findElement (By.id ("edtText"));// Verifikasi bahwa bidang teks diaktifkan sehingga pengguna dapat memasukkan teksAssert.assertEquals ("true", inputField.getAttribute ("enabled"));// Masukkan teks ke bidang teksinputField.sendKeys ("Halo Guru");// klik tombol Show Text// ID tombol ini didapat dari langkah 9Tombol WebElement = driver.findElement (By.id ("btnShow"));button.click ();// Tunda waktu untuk diterapkanThread.sleep (5000);// Temukan label "Text Show Here" di layar// Id label ini didapat dari langkah 9WebElement txtView = driver.findElement (By.id ("txtView"));// Dapatkan tampilan teks di layarString diharapkan = txtView.getText ();// Pastikan teks yang dimasukkan pengguna di bidang teks sama dengan teks yang ditampilkan di layarAssert.assertEquals (diharapkan, inputField.getText ());}
Selesaikan Tes
Kode berikut akan menyelesaikan tes dengan menghentikan driver Selendroid.
/ *** Hentikan driver Selendroid** /@Setelahpublikvoid tearDown () {driver.quit ();}
Anda dapat melihat detailnya dalam contoh kode yang disertakan dalam artikel ini.
Langkah 10) Hubungkan perangkat Android ke PC melalui kabel USB. Poin untuk diamati -
- Pastikan perangkat tidak memiliki kunci layar yang dikonfigurasi.
- Perangkat harus dicolokkan melalui USB ke komputer yang menjalankan komponen mandiri-selendroid.
- Perangkat harus menginstal setidaknya Android Target Version API 10
Langkah 11) Jalankan Aplikasi Tes: Klik kanan Guru99test -> Run as -> TestNG test
Langkah 10) Script mulai dijalankan sebagai berikut
Langkah 12) Setelah pengujian selesai dijalankan, TestNG secara otomatis menghasilkan laporan pengujian sebagai berikut
Kerja yang bagus, Anda selesai ujian sekarang.
Ringkasan
Ringkasan
- Selendroid adalah alat yang sangat kuat untuk menguji aplikasi asli Android, aplikasi hybrid, serta aplikasi web.
- Ini dapat digunakan pada perangkat nyata serta simulator.
- Ini juga memungkinkan Anda menjalankan pengujian secara paralel dengan menjalankan pengujian di beberapa perangkat.
- Seluruh rangkaian Selendroid terdiri dari empat komponen:
- Klien Web Driver,
- Selendroid-Server,
- Aplikasi Driver Android
- Selendroid-berdiri sendiri
- Untuk menggunakan Selendroid, Anda perlu menginstal Java JDK, Android SDK, dan Eclipse.