Apa itu Selenium? Tutorial Pengantar

⚡ Ringkasan Cerdas

Selenium adalah kerangka kerja pengujian otomatis sumber terbuka gratis yang dirancang untuk memvalidasi aplikasi web di berbagai peramban dan platform menggunakan berbagai bahasa pemrograman. Kerangka kerja ini memungkinkan otomatisasi pengujian yang tangguh, efisien, dan skalabel untuk praktik QA modern.

  • Prinsip Utama: Selenium memfasilitasi validasi otomatis aplikasi web pada berbagai browser dan sistem operasi, mendukung bahasa seperti Java, C#, Python, Dan banyak lagi.
  • Struktur Rangkaian Alat: Selenium mencakup empat komponen utama—IDE, Remote Control, WebDriver, dan Grid—yang masing-masing menangani kebutuhan otomatisasi yang berbeda.
  • IDE & Prototipe: Selenium IDE adalah ekstensi browser untuk pembuatan kasus dan pembuatan prototipe yang cepat, tetapi paling cocok untuk skenario pengujian sederhana.
  • Evolusi Kendali Jarak Jauh: Selenium RC, yang sekarang dalam mode pemeliharaan, adalah kerangka kerja pertama yang memungkinkan skrip pengujian dalam berbagai bahasa, memecahkan batasan kebijakan peramban.
  • Implementasi WebDriver: WebDriver berkomunikasi langsung dengan browser, menawarkan kontrol tingkat OS dan stabilitas superior untuk otomatisasi kompleks.
  • Grid untuk Paralelisme: Selenium Grid memungkinkan eksekusi pengujian paralel di beberapa mesin dan browser, sehingga mengurangi durasi siklus pengujian secara drastis.
  • Dukungan Lintas-Browser & Platform: Selenium mendukung berbagai macam peramban dan sistem operasi, memberikan fleksibilitas yang tak tertandingi untuk QA web.
  • Dampak Dunia Nyata: Tim menggunakan Selenium untuk mempercepat siklus rilis, mengurangi pengujian manual, dan memastikan UX yang konsisten di seluruh browser, dengan hasil yang terbukti dalam SaaS, CI/CD, dan pengiriman fitur.

apa itu selenium

Apa itu Selenium?

Selenium adalah kerangka pengujian otomatis gratis (sumber terbuka) yang digunakan untuk memvalidasi aplikasi web di berbagai browser dan platform. Anda dapat menggunakan beberapa bahasa pemrograman seperti Java, C#, Python, dll untuk dibuat Selenium Skrip Tes. Pengujian dilakukan dengan menggunakan Selenium alat pengujian biasanya disebut dengan Selenium pengujian.

Wawasan Pakar

“Hindari penggunaan penundaan tidur tetap dalam pengujian Anda. Sebaliknya, gunakan penantian eksplisit (seperti WebDriverWait) untuk menunggu elemen dimuat. Hal ini membuat skrip Anda lebih andal dan cepat, karena skrip merespons secara dinamis terhadap kondisi halaman yang sebenarnya—praktik terbaik yang penting bagi siswa di mana pun, dimulai dengan Selenium. "

— Himanshu Sheth, Selenium Expert

👉 Daftar Live Gratis Selenium Proyek Pengujian

Selenium Paket Alat

Selenium Perangkat lunak bukan hanya sebuah alat tunggal melainkan serangkaian perangkat lunak, yang masing-masing bagiannya melayani kebutuhan yang berbeda-beda Selenium Kebutuhan pengujian QA suatu organisasi. Berikut daftar alatnya

  • Selenium Lingkungan Pengembangan Terintegrasi (IDE)
  • Selenium Kontrol Jarak Jauh (RC)
  • webdriver
  • Selenium kisi

Selenium Paket Alat

Saat ini, Selenium RC dan WebDriver digabungkan menjadi satu kerangka kerja untuk dibentuk Selenium 2. Selenium 1, omong-omong, mengacu pada Selenium RC.

Tutorial Video Selenium

Klik di sini jika video tidak dapat diakses

Siapa yang mengembangkan Selenium?

Sejak Selenium adalah kumpulan alat yang berbeda, juga memiliki pengembang yang berbeda. Di bawah ini adalah orang-orang penting yang memberikan kontribusi penting bagi Selenium Project

Dikembangkan Selenium

Terutama, Selenium adalah dibuat oleh Jason Huggins pada tahun 2004Sebagai seorang insinyur di ThoughtWorks, ia sedang mengerjakan sebuah aplikasi web yang membutuhkan pengujian rutin. Setelah menyadari bahwa Pengujian Manual yang berulang-ulang pada aplikasi mereka menjadi semakin tidak efisien, ia membuat sebuah JavaNaskah program yang secara otomatis mengontrol tindakan browser. Dia menamai program ini "Java“Pelari Uji Skrip.”

Melihat potensi ide ini untuk membantu mengotomatisasi aplikasi web lainnya, ia membuat JavaScriptRunner sumber terbuka, yang kemudian berganti nama menjadi Selenium Core. Bagi mereka yang tertarik untuk mengeksplorasi opsi lain untuk pengujian aplikasi web, lihatlah ini Selenium alternatif.

Masalah Kebijakan Asal yang Sama

Kebijakan Same Origin melarang JavaKode skrip dari mengakses elemen dari domain yang berbeda dari tempat peluncurannya. Misalnya, kode HTML di www.google.com menggunakan JavaProgram skrip "randomScript.js". Kebijakan asal yang sama hanya akan mengizinkan randomScript.js untuk mengakses halaman-halaman di dalam google.com, seperti google.com/mail, google.com/login, atau google.com/signup. Namun, program ini tidak dapat mengakses halaman-halaman dari situs yang berbeda seperti yahoo.com/search atau guru99.com karena berada di domain yang berbeda.

Masalah Kebijakan Asal yang Sama

Inilah alasannya mengapa sebelum Selenium RC, penguji perlu menginstal salinan lokal keduanya Selenium Inti (a JavaProgram skrip) dan server web yang berisi aplikasi web yang diuji, sehingga keduanya akan berada dalam domain yang sama

Kelahiran Selenium Kontrol Jarak Jauh (Selenium RC)

Paul Hammant

Sayangnya, penguji yang menggunakan Selenium Core harus menginstal seluruh aplikasi yang diuji dan server web di komputer lokal mereka sendiri karena pembatasan yang diberlakukan oleh kebijakan asal yang samaJadi, insinyur ThoughtWorks lainnya, Paul Hammant, memutuskan untuk membuat server yang akan bertindak sebagai proxy HTTP untuk “menipu” browser agar percaya bahwa Selenium Inti dan aplikasi web yang diuji berasal dari domain yang sama. Sistem ini kemudian dikenal sebagai Selenium remote Control or Selenium 1.

Kelahiran Selenium kisi

Patrick Lightbody

Selenium Grid dikembangkan oleh Patrick Lightbody untuk mengatasi kebutuhan meminimalkan waktu pelaksanaan pengujian semaksimal mungkin. Awalnya, ia menyebut sistem tersebut “QA yang diselenggarakan.” Ia mampu menangkap tangkapan layar browser selama tahap-tahap penting, dan juga mengirim keluar Selenium perintah ke berbagai mesin secara bersamaan.

Kelahiran Selenium IDE

Shinya Kasatani

Shinya Kasatani Jepang diciptakan Selenium IDE, Sebuah Firefox dan ekstensi Chrome yang dapat mengotomatiskan peramban melalui fitur rekam dan putar. Ia mencetuskan ide ini untuk lebih meningkatkan kecepatan pembuatan kasus uji. Ia menyumbangkan Selenium IDE ke Selenium Proyek di 2006.

Kelahiran WebDriver

Simon Stewart

Simon Stewart membuat WebDriver sekitar 2006 ketika browser dan aplikasi web menjadi lebih kuat dan lebih membatasi JavaProgram skrip seperti Selenium Inti. Ini adalah kerangka kerja pengujian lintas-platform pertama yang dapat mengendalikan peramban di tingkat OS.

Kelahiran Selenium 2

In 2008, Seluruh Selenium Tim memutuskan untuk menggabungkan WebDriver dan Selenium RC untuk membentuk alat yang lebih kuat yang disebut Selenium 2, dengan WebDriver menjadi intinya. Saat ini, Selenium RC masih dalam tahap pengembangan, namun hanya dalam mode pemeliharaan. Sebagian besar Selenium Upaya proyek kini terfokus pada Selenium 2.

Jadi, Mengapa Namanya Selenium?

Nama Selenium berasal dari lelucon yang Jason pernah lontarkan kepada timnya. Selama Seleniumperkembangannya, yang lain pengujian otomatis kerangka kerja ini populer dibuat oleh perusahaan yang disebut Mercury Interaktif (ya, perusahaan yang awalnya membuat QTP sebelum diakuisisi oleh HP). Sejak Selenium adalah obat penawar yang terkenal Mercury keracunan, Jason menyarankan nama itu dan rekan satu timnya mengambilnya. Jadi begitulah kami menyebut kerangka ini hingga saat ini.

Mengapa Namanya Selenium

Apa itu Selenium IDE?

Selenium Lingkungan Pengembangan Terpadu (IDE) adalah kerangka paling sederhana dalam Selenium suite dan yang paling mudah untuk dipelajari. Ini adalah Chrome dan Firefox Plugin yang dapat Anda instal semudah mungkin dengan plugin lain. Namun karena kesederhanaannya, Selenium IDE sebaiknya hanya digunakan sebagai a alat prototipe. Jika Anda ingin membuat kasus pengujian lebih lanjut, Anda perlu menggunakan salah satunya Selenium RC atau WebDriver.

Selenium IDE

Apa itu Selenium Kontrol Jarak Jauh (Selenium RC)?

Selenium RC adalah kerangka pengujian andalan dari keseluruhan Selenium proyek dalam waktu yang lama. Ini adalah yang otomatis pertama pengujian web alat itu memungkinkan pengguna untuk menggunakan bahasa pemrograman yang mereka sukaiSejak versi 2.25.0, RC dapat mendukung bahasa pemrograman berikut:

Selenium Kontrol Jarak Jauh (Selenium RC)

Apa itu WebDriver?

WebDriver terbukti lebih baik daripada Selenium IDE dan Selenium RC dalam banyak aspek. Ini menerapkan pendekatan yang lebih modern dan stabil dalam mengotomatiskan tindakan browser. WebDriver, tidak seperti Selenium RC, tidak bergantung pada JavaSkrip untuk Selenium Pengujian Otomasi. Ia mengontrol browser dengan berkomunikasi langsung dengannya.

Bahasa yang didukung sama dengan bahasa yang ada di dalamnya Selenium RC.

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Rubi

Driver web

Apa itu Selenium jaringan?

Selenium Grid adalah sebuah alat digunakan bersama dengan Selenium RC untuk dijalankan tes paralel di mesin yang berbeda dan browser yang berbeda secara bersamaan. Eksekusi paralel berarti menjalankan beberapa pengujian sekaligus.

Fitur:

  • memungkinkan menjalankan pengujian secara bersamaan in beberapa browser dan lingkungan.
  • Menghemat waktu sangat.
  • Memanfaatkan hub-dan-node konsep. Hub bertindak sebagai sumber utama Selenium perintah ke setiap node yang terhubung dengannya.

Selenium Dukungan Browser dan Lingkungan

Karena perbedaan arsitekturnya, Selenium SDI, Selenium RC dan WebDriver mendukung berbagai perangkat browser dan lingkungan operasi.

  Selenium IDE webdriver
Dukungan Browser Mozilla Firefox dan Chrome Google Chrome 12 +
Firefox
Internet Explorer 7+ dan Edge
safari,
HtmlUnit dan PhantomUnit
OperaSistem ting Windows, Mac OS X, Linux Semua sistem operasi tempat browser di atas dapat berjalan.

Catatan: Opera Pengemudi tidak lagi berfungsi

Cara Memilih yang Tepat Selenium Alat untuk Kebutuhan Anda

Alat Bantu Mengapa Memilih?
Selenium IDE
  • Untuk mempelajari konsep pengujian otomatis dan Selenium, Termasuk:
  • Perintah Selenese seperti ketik, buka, klikDanTunggu, tegaskan, verifikasi, dll.
  • Pencari lokasi seperti id, nama, xpath, pemilih css, dll.
  • Mengeksekusi disesuaikan JavaKode skrip menggunakan runScript
  • Mengekspor test case dalam berbagai format.
  • Untuk membuat tes dengan sedikit atau tanpa pengetahuan sebelumnya dalam pemrograman.
  • Untuk membuat kasus uji dan rangkaian pengujian sederhana yang dapat Anda ekspor nanti ke RC atau WebDriver.
  • Untuk menguji aplikasi web terhadap Firefox dan Chrome saja.
Selenium RC
  • Untuk merancang tes menggunakan bahasa yang lebih ekspresif dibandingkan bahasa Selenese
  • Untuk menjalankan pengujian Anda pada browser yang berbeda (kecuali HtmlUnit) pada sistem operasi yang berbeda.
  • Untuk menerapkan pengujian Anda di beberapa lingkungan menggunakan Selenium Kotak.
  • Untuk menguji aplikasi Anda terhadap browser baru yang mendukung JavaNaskah.
  • Untuk menguji aplikasi web dengan skenario berbasis AJAX yang kompleks.
webdriver
  • Untuk menggunakan bahasa pemrograman tertentu dalam merancang kasus uji Anda.
  • Untuk menguji aplikasi yang kaya akan fungsionalitas berbasis AJAX.
  • Untuk menjalankan tes pada browser HtmlUnit.
  • Untuk membuat hasil tes yang disesuaikan.
Selenium kisi
  • Untuk menjalankan Selenium Skrip RC di beberapa browser dan sistem operasi secara bersamaan.
  • Untuk menjalankan rangkaian pengujian besar yang perlu diselesaikan dalam waktu sesingkat mungkin.

Studi Kasus Dunia Nyata

🔍 Studi Kasus 1: Kompatibilitas Lintas-Browser untuk Dasbor SaaS

Contoh

Sebuah perusahaan perangkat lunak sebagai layanan sedang bersiap untuk merilis dasbor analitik yang harus berfungsi secara konsisten di seluruh browser modern (Chrome, Firefox, Edge, Safari).

Tantangan

Pengujian manual pada setiap browser memakan waktu, rawan kesalahan, dan tidak dapat mengimbangi iterasi pengembangan yang cepat.

Solusi dengan Selenium

Seorang insinyur QA membuat sebuah Selenium kisi pengaturan untuk menjalankan rangkaian pengujian yang sama secara bersamaan di beberapa browser dan kombinasi OS. Pengujian dibuat dalam Python menggunakan Selenium WebDriver untuk tindakan seperti login, pemfilteran grafik, dan ekspor data.

Hasil

  • Mengurangi durasi regresi hingga 80%.
  • Menemukan bug rendering khusus browser lebih awal (misalnya, grafik yang tidak selaras di IE).
  • Mempertahankan UX dasbor yang konsisten di seluruh matriks browser tanpa siklus manual tambahan.

⚙️ Studi Kasus 2: Integrasi CI/CD untuk Aplikasi Web melalui Selenium + TestNG

Contoh

Perusahaan pengembangan web menengah mengandalkan jalur CI/CD menggunakan Jenkins. Mereka perlu memastikan perjalanan pengguna inti berfungsi setelah setiap perubahan kode.

Tantangan

Penerapan versi baru terkadang merusak alur pengguna—login, pengiriman formulir—dan luput dari deteksi hingga pengujian manual di penghujung hari.

Solusi dengan Selenium

Seorang penguji menerapkan JavaBerbasis Selenium Suite WebDriver terintegrasi dengan TestNGPengujian meliputi autentikasi, pembaruan profil, dan fungsi pencarian. Pengujian ini berjalan pada setiap build Jenkins, memanfaatkan eksekusi paralel dan parameterisasi browser.

Hasil

  • Mendapatkan umpan balik yang cepat: aliran yang rusak segera ditandai.
  • Mengurangi bug pasca-penerapan lebih dari 60%.
  • Memungkinkan pengembang untuk mengatasi masalah sebelum mencapai QA.

🚀 Studi Kasus 3: Mempercepat Rilis Fitur untuk Agregator Perjalanan

Contoh

Platform agregator perjalanan perlu merilis fitur pemesanan tiket pesawat yang telah diperbarui. Pengujian regresi manual di lebih dari 10 halaman memakan waktu berhari-hari dan menghambat rilis.

Tantangan

Tekanan untuk mengurangi waktu ke pasar tidak dapat melampaui siklus pengujian manual, dengan risiko penundaan atau kualitas yang lebih rendah.

Solusi dengan Selenium & Model Objek Halaman

Seorang pemimpin otomatisasi QA memperkenalkan struktur Page Object Model (POM) dalam C#. Selenium Skrip WebDriver merangkum elemen dan tindakan halaman (pencarian penerbangan, penerapan filter, dan kasus pembayaran). Uji coba otomatis dipicu setiap malam di GitLab CI.

Hasil

  • Waktu pengujian turun dari 3 hari menjadi hanya 4 jam.
  • Penggunaan kembali skrip di beberapa fitur memangkas upaya penulisan skrip hingga 50%.
  • Kepercayaan meningkat: rilis dikirimkan sesuai jadwal dengan laporan bug minimal.

Umum Selenium Tantangan (dan Perbaikan)

Meskipun Selenium Meskipun kuat, penguji sering menghadapi tantangan yang dapat memengaruhi keandalan dan kecepatan. Berikut beberapa tantangan umum dan cara mengatasinya:

  1. Tes yang Tidak Menentu:
    Pengujian mungkin gagal secara acak karena masalah waktu atau jaringan.
    Fix: Gunakan penantian eksplisit dan penentu lokasi yang stabil; hindari Thread.sleep().
  2. Elemen Web Dinamis:
    Mengubah ID elemen atau XPath menyebabkan kesalahan elemen tidak ditemukan.
    Fix: Gunakan XPath relatif, pemilih CSS, atau penanganan atribut dinamis.
  3. SyncMasalah Kronisasi:
    Elemen dimuat lebih lambat daripada eksekusi skrip.
    Fix: Terapkan WebDriverWait dengan kondisi yang diharapkan.
  4. Ketidakkonsistenan Lintas-Browser:
    Pengujian berperilaku berbeda di Chrome, Firefox, atau Edge.
    Fix: Jalankan pengujian pada Selenium Platform grid atau cloud untuk validasi lintas-browser.
  5. Menangani Pop-up dan Peringatan:
    Munculan yang tidak terduga dapat mengganggu alur pengujian.
    Fix: penggunaan SeleniumAntarmuka Peringatan atau blok coba-tangkap untuk menanganinya dengan baik.
  6. Pengujian Pemeliharaan Overhead:
    Perubahan UI yang sering terjadi membuat pengujian menjadi rapuh.
    Fix: Terapkan Page Object Model (POM) dan kontrol versi untuk pembaruan yang mudah.
  7. Tantangan Integrasi:
    Pipa CI/CD mungkin gagal karena masalah driver.
    Fix: penggunaan Selenium Pengelola (Selenium 4+) atau WebDriver Manager untuk mengelola driver secara otomatis.

Singkatnya: jembatan Selenium Masalahnya berasal dari sinkronisasi yang buruk atau penentu lokasi yang rapuh—keduanya dapat dipecahkan melalui penantian yang lebih cerdas, desain modular, dan pemeliharaan berkelanjutan.

Tanya Jawab:

Selenium adalah kerangka kerja otomatisasi sumber terbuka yang digunakan untuk menguji aplikasi web di berbagai peramban dan platform. Kerangka kerja ini memungkinkan penguji untuk mensimulasikan interaksi pengguna seperti klik, pengiriman formulir, dan navigasi menggunakan berbagai bahasa pemrograman.

Selenium terutama digunakan untuk mengotomatiskan pengujian berbasis peramban. Ini membantu memastikan aplikasi web berfungsi dengan benar di seluruh peramban, mendukung pengujian regresi dan fungsional, serta mudah terintegrasi dengan alur kerja CI/CD untuk pengujian berkelanjutan.

Selenium terdiri dari empat komponen utama: Selenium IDE (alat perekam/pemutaran), Selenium RC (tidak digunakan lagi), Selenium webdriver (API otomatisasi modern), dan Selenium kisi (untuk eksekusi pengujian paralel lintas-browser).

Keempat jenis tersebut adalah: Selenium IDE untuk merekam tes, Selenium RC untuk otomatisasi warisan, Selenium webdriver untuk kontrol browser langsung, dan Selenium kisi untuk pengujian paralel yang terdistribusi di beberapa browser.

Selenium WebDriver adalah komponen inti yang berinteraksi langsung dengan browser menggunakan API asli. WebDriver memungkinkan pengembang untuk menulis skrip otomatisasi lintas-browser yang tangguh dalam bahasa seperti Java, Python, dan C#, tanpa bergantung pada JavaNaskah.

Selenium IDE ramah bagi pemula, menawarkan fungsionalitas rekam dan putar ulang melalui ekstensi browser. webdriver, di sisi lain, berbasis kode, mendukung banyak bahasa, dan menyediakan otomatisasi browser tingkat lanjut dan skalabel yang sesuai untuk kerangka kerja pengujian dunia nyata.

Ringkaslah postingan ini dengan: