Tutorial Selendroid untuk Pemula dengan Contoh

Daftar Isi:

Anonim

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

  1. 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

  1. 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

  2. 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

  3. 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

  4. 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:

  1. Luncurkan aplikasinya
  2. Masukkan teks " Tes Guru99 " ke bidang teks
  3. Tekan tombol "Tampilkan Teks"

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 otomatis

Langkah 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

  1. Masukkan teks "Hello Guru"
  2. Klik Tampilkan Tombol Teks
  3. Tunggu sebentar
  4. 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.