Web Automation
Belajar Selenium Python untuk Automation Testing
Selenium mengendalikan browser melalui WebDriver dan memiliki ekosistem yang matang. Dengan Python, Anda dapat memulai dari script kecil lalu bertahap membangun test suite yang terstruktur. Fokus utama sebaiknya pada locator yang stabil, explicit wait, assertion, dan pengelolaan test dengan framework seperti pytest.
Lihat kelas yang tersediaPanduan Ini Cocok untuk Siapa?
- Pemula yang memilih Python untuk web automation
- Manual tester yang ingin mengotomasi regression test browser
- QA yang bekerja dengan project atau tim berbasis Selenium
Roadmap Belajar Bertahap
-
Langkah 1
Pelajari Python dasar
Kuasai fungsi, list, dictionary, class dasar, exception, module, dan virtual environment secukupnya untuk membaca serta merawat test.
-
Langkah 2
Kuasai WebDriver
Buka browser, navigasi, gunakan locator, lakukan interaksi, dan pahami lifecycle driver.
-
Langkah 3
Tambahkan pytest dan pola desain
Ubah script menjadi test dengan assertion, fixture, parameterisasi, serta page object ketika pengulangan mulai nyata.
-
Langkah 4
Siapkan eksekusi berulang
Tambahkan konfigurasi, report, screenshot kegagalan, dan eksekusi headless di CI setelah suite stabil.
Dasar Selenium dan Python yang Wajib Dipahami
WebDriver menjadi penghubung antara kode test dan browser. Test perlu mengelola kapan browser dibuat, bagaimana halaman dinavigasi, dan kapan resource ditutup. Gunakan virtual environment agar dependency project tidak bercampur dengan instalasi Python lain.
Pilih locator yang dekat dengan makna elemen. ID yang stabil, name, accessible attribute, atau selector yang disepakati dengan developer biasanya lebih baik daripada XPath absolut yang mengikuti seluruh struktur halaman.
- Navigasi, window, frame, alert, dan cookie
- find_element serta strategi locator
- Action sederhana seperti click, send_keys, dan select
- Assertion melalui test framework, bukan print manual
Explicit Wait: Kunci Selenium Test yang Stabil
Halaman modern memuat data secara asynchronous. Elemen mungkin sudah ada tetapi belum dapat diklik, atau URL sudah berubah sementara konten belum siap. Explicit wait memungkinkan test menunggu kondisi tertentu seperti visibility, clickability, atau perubahan teks.
Hindari mengandalkan time.sleep sebagai mekanisme utama. Jeda tetap selalu menunggu selama nilai tersebut ketika aplikasi cepat, tetapi masih dapat gagal ketika aplikasi lebih lambat.
- Tunggu kondisi yang dapat diamati dan berkaitan dengan aksi berikutnya
- Gunakan timeout yang masuk akal serta pesan kegagalan yang informatif
- Jangan mencampur implicit dan explicit wait tanpa memahami dampaknya
- Cari penyebab sinkronisasi sebelum menaikkan timeout
Dari Script Selenium ke Test Suite
Script satu file berguna untuk eksperimen, tetapi suite membutuhkan struktur. Pytest dapat menangani discovery, fixture, parameterisasi, marker, dan report. Page Object dapat memusatkan locator serta action yang berulang, sementara assertion utama tetap terlihat di test.
- Fixture driver dengan teardown yang selalu dijalankan
- Konfigurasi base URL dan browser di satu tempat
- Data test terpisah dari locator dan flow
- Screenshot atau page source ketika test gagal
Project Latihan Selenium Python
Pilih aplikasi latihan yang legal untuk diuji. Dokumentasikan versi Python, instalasi dependency, perintah test, dan batasan project agar orang lain dapat mereproduksi hasilnya.
- Login dan logout dengan beberapa data menggunakan parameterisasi
- Form dinamis yang membutuhkan explicit wait
- Page object untuk dua atau tiga halaman yang sering dipakai
- Eksekusi headless dan artifact kegagalan di CI
Pertanyaan yang Sering Ditanyakan
Berapa banyak Python yang perlu dikuasai untuk Selenium?
Cukup mulai dari tipe data, kondisi, perulangan, fungsi, module, exception, dan class dasar. Kemampuan membaca traceback serta mengelola virtual environment juga sangat membantu.
Mengapa Selenium test sering gagal padahal aplikasi normal?
Penyebab umum meliputi locator rapuh, kondisi belum siap, data saling bertabrakan, environment lambat, atau state antar-test bocor. Gunakan explicit wait dan artifact debugging untuk menemukan penyebabnya.
Apakah XPath tidak boleh digunakan?
XPath boleh digunakan ketika tepat. Hindari XPath absolut atau selector yang sangat bergantung pada susunan elemen. Pilih ekspresi singkat, bermakna, dan stabil.
Apa peran pytest dalam Selenium Python?
Pytest menyediakan struktur test, assertion, fixture, parameterisasi, marker, serta integrasi plugin. Selenium menangani browser, sedangkan pytest membantu mengelola suite.