Sunday, September 17, 2017

Automated Testing With Selenium

Halo, Nostra Readers!

Pertama kali nge-blog di Nostra harus diawali dengan baca basmallah dulu kali ya,

Bismillahirrahmanirrahim

Oke, pada kesempatan kali ini, saya akan membahas mengenai Selenium

Apa itu Selenium? Selenium adalah suatu tools yang dapat digunakan untuk melakukan automasi pada browser, yang berarti adalah web apps. Nah automasi apa sih yang dimaksud? Jadi, kita dapat melakukan suatu tes/skenario yang mungkin terjadi pada web apps. Contohnya, kita dapat melakukan input kepada browser, seperti ketika kita mencari di page google, atau input email dan password. Lalu juga kita dapat memberikan event seperti klik pada button.

Nah, untuk implementasinya bisa dilihat dibawah ya!

Kali ini saya akan mengimplementasikannya menggunakan Java. Untuk persiapannya, bisa dilihat di website Selenium. Download terlebih dahulu Selenium Client & WebDriver Language Bindings(Library) versi Java. Lalu download juga third party browser driver, baik itu chrome, mozilla, atau apapun web browser yang tersedia di page tersebut. Kemudian, saya sarankan menggunakan Eclipse IDE untuk membuat codes-nya. Lalu import terlebih dahulu library selenium yang tadi didownload ke project yang kita buat di Eclipse IDE untuk Selenium ini. Lalu coding pun dimulai...

Klik kanan pada project, lalu pilih Build Path dan pilih add external archives. Langsung saja pilih file .zip yang tadi didownload. Lanjut berikutnya kita akan mengimport terlebih dahulu library yang tadi di build.

Kemudian setProperty terlebih dahulu driver browser yang tadi kita sudah download dan inisiasi WebDriver, sebagaimana saya sebagai berikut,
Lalu kita mulai dengan mengambil url yang akan kita automasi, seperti contoh adalah gmail.

Sebelum lanjut, inisiasi terlebih dahulu WebDriverWait untuk menunggu agar page yang kita request sudah ter-load semua.

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("Isi disini dengan xPath yang ingin diload dari page")));

Dapat dilihat, variable wait memberikan method until, hingga ExpectedConditions memberikan method visibilityOfElementLocated itu untuk menunggu element yang kita butuhkan muncul, dimana di dalam method visibilityOfElementLocated memberikan element dari xPath. Sebenarnya bisa menggunakan element id atau class ataupun name, namun disini menggunakan xPath agar lebih unique elementnya. Kemudian untuk memasukkan automasi input dapat menggunakan method berikut,

driver.findElement(By.xpath("Isi disini dengan xPath dari field input email page gmail")).sendKeys("lala@gmail.com");
driver.findElement(By.xpath("Isi disini dengan xPath dari button next")).click();

disini kita memberikan input lala@gmail.com ke field email yang ada pada page gmail.com tersebut. Lalu dibawahnya adalah perintah untuk click button next untuk menginput passwordnya. Lanjut berikutnya, 

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("Isi disini dengan xPath dari field input yang akan diload")));
driver.findElement(By.xpath("Isi disini dengan xPath dari field input password")).sendKeys("Selenium101");
driver.findElement(By.xpath("Isi disini dengan xPath dari button next")).click();

Kita menunggu dulu untuk response ke page password sudah selesai diload. Lalu ketika sudah selesai diload, akan memberikan input untuk password, lalu akan memberikan perintah untuk click next setelah input password.

Selamat kalian telah membuat simple automation menggunakan Selenium!

Masih banyak yang dapat dieksplorasi di library Selenium ini untuk kegunaan testing nantinya. Selamat mencoba!

References:
- http://www.seleniumhq.org

No comments:

Post a Comment