Apa itu Selenium Webdriver?
Selenium Webdriver adalah kumpulan API sumber terbuka yang digunakan untuk menguji aplikasi web. Alat Selenium Webdriver digunakan untuk mengotomatiskan pengujian aplikasi web untuk memverifikasi bahwa itu berfungsi seperti yang diharapkan atau tidak. Ini terutama mendukung browser seperti Firefox, Chrome, Safari dan Internet Explorer. Ini juga memungkinkan Anda untuk menjalankan pengujian lintas-browser.
WebDriver juga memungkinkan Anda untuk menggunakan bahasa pemrograman dalam membuat skrip pengujian Anda (tidak mungkin di Selenium IDE).
Anda sekarang dapat menggunakan operasi bersyarat seperti if-then-else atau switch-case. Anda juga dapat melakukan perulangan seperti do-while.
Bahasa pemrograman berikut ini didukung oleh WebDriver
- Jawa
- .Bersih
- PHP
- Python
- Perl
- Rubi
Anda tidak harus mengetahui semuanya. Anda hanya perlu memiliki pengetahuan tentang salah satunya. Namun, dalam tutorial ini, kami akan menggunakan Java dengan Eclipse sebagai IDE kami.
Perbedaan antara Selenium RC dan Webdriver
Sebelum munculnya WebDriver pada tahun 2006, ada alat otomasi lain yang disebut Selenium Remote Control. Baik WebDriver dan Selenium RC memiliki fitur berikut:
- Keduanya memungkinkan Anda menggunakan bahasa pemrograman dalam mendesain skrip pengujian Anda.
- Keduanya memungkinkan Anda menjalankan pengujian pada browser yang berbeda.
Jadi bagaimana perbedaannya? Mari kita bahas jawabannya.
1. Arsitektur
Arsitektur WebDriver lebih sederhana daripada Selenium RC .
- Ini mengontrol browser dari tingkat OS
- Yang Anda butuhkan hanyalah IDE bahasa pemrograman Anda (yang berisi perintah Selenium Anda) dan browser.
Arsitektur Selenium RC jauh lebih rumit.
- Anda harus terlebih dahulu meluncurkan aplikasi terpisah yang disebut Selenium Remote Control (RC) Server sebelum Anda dapat memulai pengujian
- Selenium RC Server bertindak sebagai "perantara" antara perintah Selenium dan browser Anda
- Saat Anda memulai pengujian, Selenium RC Server "menyuntikkan" program Javascript bernama Selenium Core ke dalam browser.
- Setelah diinjeksi, Selenium Core akan mulai menerima instruksi yang disampaikan oleh RC Server dari program pengujian Anda.
- Saat instruksi diterima, Selenium Core akan menjalankannya sebagai perintah Javascript.
- Browser akan mematuhi instruksi dari Selenium Core dan akan menyampaikan responnya ke RC Server.
- RC Server akan menerima respon dari browser dan kemudian menampilkan hasilnya kepada Anda.
- RC Server akan mengambil instruksi berikutnya dari skrip pengujian Anda untuk mengulangi seluruh siklus.
2. Kecepatan
WebDriver lebih cepat daripada Selenium RC karena berbicara langsung ke browser menggunakan mesin browser sendiri untuk mengontrolnya.
Selenium RC lebih lambat karena menggunakan program Javascript yang disebut Selenium Core. Inti Selenium inilah yang secara langsung mengontrol browser, bukan Anda.
3. Interaksi dalam Kehidupan Nyata
WebDriver berinteraksi dengan elemen halaman dengan cara yang lebih realistis. Misalnya, jika Anda memiliki kotak teks yang dinonaktifkan pada halaman yang Anda uji, WebDriver benar-benar tidak dapat memasukkan nilai apa pun di dalamnya seperti yang tidak bisa dilakukan orang sungguhan.
Selenium Core, seperti kode JavaScript lainnya, dapat mengakses elemen yang dinonaktifkan. Di masa lalu, penguji Selenium mengeluh bahwa Selenium Core dapat memasukkan nilai ke kotak teks yang dinonaktifkan dalam pengujian mereka. Perbedaan dalam API
4. API
API Selenium RC lebih matang tetapi berisi redundansi dan perintah yang sering membingungkan . Misalnya, sebagian besar waktu, penguji bingung apakah akan menggunakan type atau typeKeys; atau apakah akan menggunakan click, mouseDown, atau mouseDownAt. Lebih buruk lagi, browser yang berbeda menafsirkan masing-masing perintah ini dengan cara yang berbeda juga!
API WebDriver lebih sederhana daripada Selenium RC . Itu tidak mengandung perintah yang berlebihan dan membingungkan.
5. Dukungan Browser
WebDriver dapat mendukung browser HtmlUnit headless
HtmlUnit disebut sebagai "headless" karena ini adalah browser yang tidak terlihat - tanpa GUI.
Ini adalah browser yang sangat cepat karena tidak ada waktu yang dihabiskan untuk menunggu elemen halaman dimuat. Ini mempercepat siklus eksekusi pengujian Anda.
Karena tidak terlihat oleh pengguna, itu hanya dapat dikontrol melalui cara otomatis.
Selenium RC tidak dapat mendukung browser HtmlUnit headless. Ini membutuhkan browser yang nyata dan terlihat untuk beroperasi.
Batasan WebDriver
WebDriver Tidak Dapat Mendukung Browser Baru
Ingatlah bahwa WebDriver beroperasi pada level OS. Juga, ingatlah bahwa browser yang berbeda berkomunikasi dengan OS dengan cara yang berbeda. Jika browser baru keluar, mungkin memiliki proses komunikasi yang berbeda dengan OS dibandingkan dengan browser lain. Jadi, Anda harus memberi tim WebDriver cukup waktu untuk memikirkan proses baru tersebut sebelum mereka dapat menerapkannya pada rilis WebDriver berikutnya.
Namun, terserah tim pengembang WebDriver untuk memutuskan apakah mereka harus mendukung browser baru atau tidak.
Selenium RC Memiliki Generator Hasil Uji Built-In
Selenium RC secara otomatis menghasilkan file HTML dari hasil tes . Format laporan telah ditentukan sebelumnya oleh RC itu sendiri. Lihat contoh laporan di bawah ini.
WebDriver tidak memiliki perintah bawaan yang secara otomatis menghasilkan File Hasil Tes . Anda harus bergantung pada jendela keluaran IDE Anda, atau merancang laporan sendiri menggunakan kemampuan bahasa pemrograman Anda dan menyimpannya sebagai teks, HTML, dll.
Ringkasan
- WebDriver adalah alat untuk menguji aplikasi web di berbagai browser menggunakan bahasa pemrograman yang berbeda.
- Anda sekarang dapat melakukan pengujian yang andal karena WebDriver memungkinkan Anda menggunakan bahasa pemrograman pilihan Anda dalam mendesain pengujian.
- WebDriver lebih cepat daripada Selenium RC karena arsitekturnya yang lebih sederhana.
- WebDriver langsung berbicara ke browser sementara Selenium RC membutuhkan bantuan RC Server untuk melakukannya.
- API WebDriver lebih ringkas daripada Selenium RC.
- WebDriver dapat mendukung HtmlUnit sementara Selenium RC tidak dapat.
- Satu-satunya kekurangan WebDriver adalah:
- Itu tidak dapat langsung mendukung browser baru , tetapi Selenium RC bisa.
- Itu tidak memiliki perintah built-in untuk pembuatan otomatis hasil tes.