Bagaimana Selenium Bekerja ?

Cari tahu lebih lanjut tentang cara kerja selenium.

Wira Putrawan Pakpahan
Tunaiku Tech
4 min readMay 3, 2020

--

Photo by Arisa Chattasa on Unsplash

Pada masa pandemic ini, produktif adalah hal yang jauh dari keseharian saya. Bagaimana tidak, COVID-19 mempengaruhi hampir seluruh aktivitas kehidupan manusia dan tidak terkecuali dengan saya. Pada masa-masa ini, sulit bagi saya untuk menemukan hal produktif yang membuat saya bergairah. Tapi pada satu kesempatan, saya tergerak untuk merubah siklus hidup buruk tersebut dan mencoba menulis sesuatu yang bermanfaat, yang mungkin akan saya ingat nanti ketika kita sudah berhasil untuk mengalahkan musuh kita bersama bernama “Corona.

Pada kesempatan kali ini saya mencoba mempelajari tentang Selenium, walaupun sebenarnya bukan tools utama yang saya gunakan dikantor saya tetapi saya sangat tertarik mempelajarinya.

Kata Selenium merupakan hal yang tidak asing bagi seorang Software Quality Assurance. Bagaimana tidak, Selenium merupakan kerangka kerja pengujian otomatis yang cukup populer. Bahkan, daftar penggunanya termasuk Google dan Facebook!

SELENIUM adalah kerangka kerja pengujian otomatis open source gratis yang digunakan untuk memvalidasi aplikasi web di berbagai browser dan platform. Anda dapat menggunakan beberapa bahasa pemrograman seperti Java, C #, Python dan lain-lain untuk membuat skrip tes Selenium. Pengujian yang dilakukan dengan menggunakan alat Selenium biasanya disebut sebagai Pengujian Selenium.

Tetapi dibalik kepopulerannya, apakah anda tahu bagaimana Selenium bekerja?

Selenium bekerja dengan desain client-server. Desain client server adalah model arsitektur perangkat lunak yang terdiri dari dua bagian yaitu sistem client dan sistem server yang berkomunikasi baik melalui jaringan komputer ataupun pada komputer yang sama. Untuk lebih jelasnya mari kita lihat arsitektur Selenium berikut:

https://drive.google.com/file/d/1sRSozHVOROPuLhwli22ZGrlUAcKZguZB/view?usp=sharing
  1. Jadi, pada gambar diatas poin pertama adalah Selenium Client Library yang bertindak sebagai klien. Selenium Client Library memfasilitasi kemampuan dukungan multi-bahasa. Anda dapat menggunakan bahasa yang Anda sukai untuk menulis skrip otomasi Anda dan Selenium akan melakukan sisanya.
https://www.edureka.co/blog/selenium-webdriver-architecture/

Ketika anda menuliskan skrip code pada IDE, baik dalam bahasa Java, C #, Python, Ruby ataupun Javascript, maka hal yang pertama kali dilakukan adalah mengirimkan skrip tersebut ke Json Wire Protocol via API.

2. Json Wire Protocol ada pada poin nomor dua di gambar dan bertindak sebagai penghubung dan mempermudah komunikasi antara klien dan server agar bisa saling mengerti. Json Wire Protocol memfasilitasi kemampuan mentransfer data antara klien dan Server di web. Ini adalah REST API yang menyediakan mekanisme transportasi dan mendefinisikan layanan web RESTful menggunakan JSON melalui HTTP.

https://www.edureka.co/blog/selenium-webdriver-architecture/

Apapun skrip yang kita ketikkan di IDE (POST/GET), Json Wire Protocol akan menjadi connector antara client dan server. Jadi sebenarnya, Json Wire Protocol terdapat REST API yang memiliki json format dan bertujuan untuk mengirimkan request ke Browser Driver melalui HTTP. Detail API apa saja yang dapat dikirimkan oleh Json Wire Protocol dapat dilihat pada dokumentasi JWP di link github Json Wire Protocol dan berikut ditampilkan beberapa dari list tersebut :

https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol

3. Pada poin nomor tiga adalah Browser Driver. Setiap browser driver memiliki HTTP server yang menerima request dari klien yang dikirimkan oleh JWP.

https://www.edureka.co/blog/selenium-webdriver-architecture/

Browser Driver digunakan untuk berinteraksi dengan real browser dan menyampaikan instruksi skrip otomatisasi ke real browser untuk diubah menjadi sebuah tindakan.

Mungkin ada pertanyaan benak anda, mengapa tidak dikirimkan langsung dari JWP ke Browser?

Alasannya adalah karena hingga pada saat saya menulis artikel ini, browser tidak mau membuka functionality mereka kepada thirdparty dimana dalam hal ini Selenium adalah thirdparty, itulah sebabnya kita membutuhkan sebuah komponen yang dapat berinteraksi dengan browser sungguhan dan kita menyebutnya browser driver.

4. Point terakhir adalah Real Browser. Bagian terbaik tentang Selenium Webdriver adalah mendukung semua browser utama seperti Google Chrome, Mozilla Firefox, Internet Explorer, dan Safari. Setiap browser memiliki Webdriver khusus untuk menjalankan skrip otomatisasi.

https://www.edureka.co/blog/selenium-webdriver-architecture/

Sedikit penjelasan tambahan mengenai gambar desain arsitektur Selenium diatas, setiap request yang dikirimkan akan menerima respon pula.

Semoga artikel singkat ini bermanfaat untuk anda dan yang paling penting adalah tetap jaga kesehatan, jaga produktifitas dan tetap semangat. Semoga pandemic ini cepat berlalu dan kita bisa memulai aktifitas kita lagi seperti biasa.

Salam hangat dan Jiayou !!!

“Produktif bukan tentang seberapa banyak anda menyelesaikan pekerjaan, tetapi tentang seberapa penting pekerjaan yang anda selesaikan.”

Referensi:

  1. https://dzone.com/articles/is-selenium-still-the-best-browser-automation-tool
  2. (https://www.guru99.com/introduction-to-selenium.html)
  3. https://markey.id/blog/development/client-server
  4. https://drive.google.com/file/d/1sRSozHVOROPuLhwli22ZGrlUAcKZguZB/view?usp=sharing
  5. https://hackr.io/blog/complete-guide-selenium-webdriver
  6. https://www.udemy.com/course/selenium-basics-step-by-step-for-beginners/learn/lecture/10165700#overview

--

--