Arsitektur Selenium Webdriver: Kebanyakan Pemula Tidak Tahu

Kami akan mulai dengan Tutorial selenium Buku hitam dalam pendekatan yang lengkap dan berbeda, Pada segmen pertama dari tutorial Selenium ini, kita akan membahasnyaArsitektur Selenium Webdriver, apa itu Selenium Webdriver, Ikhtisar Selenium Webdriver, Sejarah Singkat Selenium, Keunggulan Selenium, Batasan Selenium, Komponen Selenium dan beberapa pertanyaan yang sering diajukan.

Apa itu Selenium Webdriver

Selenium adalah teknologi atau kerangka kerja sumber terbuka di mana kita dapat mengotomatisasi Aplikasi berbasis Web. Selenium Mendukung Pengujian Multi browser, Beberapa bahasa seperti Java, Ruby, Perl, Python juga didukung. Ini mendukung berbagai platform seperti Windows, Linux, macOS dll. Sebagai bagian dari platform.

Sejarah Singkat Tentang Selenium:

Selenium awalnya berevolusi dari alat internal oleh Jason Huggins pada tahun 2004 di ThoughtWorks.

Kemudian di tahun 2007, Huggins bergabung dengan organisasi Google, dan dengan orang lain seperti Jennifer Bevan, dia melanjutkan dengan desain dan pengembangan salah satu variasi awal Selenium yang disebut Selenium RC. Selama periode waktu yang sama, orang lain bernama Simon Stewart dari ThoughtWorks mengembangkan alat otomatisasi browser web canggih sebagai WebDriver. 

Pada tahun 2008, seseorang bernama Philippe Hanrigou dari ThoughtWorks datang dengan konsep Otomasi jarak jauh yang dikenal sebagai "Selenium Grid".

Pada tahun 2009, di Google Test Automation Conference, diputuskan untuk menggabungkan kedua proyek tersebut, dan diberi nama sebagai Selenium WebDriver, atau Selenium 2.0.

Keuntungan dari Selenium Webdriver:

A. Sumber Terbuka:

Selenium adalah teknologi / kerangka kerja sumber terbuka, oleh karena itu dukungan komunitas yang sangat besar tersedia di mana ruang lingkup pengembangan dan peningkatan cepat dan luas, juga sebagai sumber terbuka Anda dapat mengimplementasikan fitur spesifik apa pun yang Anda perlukan sebagai bagian dari pekerjaan Anda dan berkontribusi pada Open komunitas sumber. 

B.Bahasa Pemrograman Multi didukung:

Selenium didukung oleh bahasa yang banyak digunakan; itu datang dengan binding bahasa pemrograman yang berbeda, sehingga Anda dapat memilih bahasa yang Anda sukai untuk bekerja dengan selenium sesuai kebutuhan dan keahlian Anda.

Selenium memberikan dukungan untuk bahasa pemrograman di bawah ini: 

  • Jawa 
  • C#
  • Perl
  • ular sanca
  • Rubi  
  • Javascript

C.Platform independen:

Selenium tidak bergantung pada platform, sehingga Anda dapat mengotomatiskan aplikasi web Anda melalui platform apa pun dan Sistem Operasi apa pun, misalnya Windows, Linux, macOS, dll.

D. Kemampuan Pengujian Lintas Browser

Selenium mendukung kemampuan Pengujian lintas browser untuk aplikasi web Anda; Anda dapat menjalankan rangkaian pengujian Anda yang ditulis dengan Selenium di beberapa browser seperti Firefox, Chrome, IE, Safari, dll.

E. Kemampuan Pengujian Lintas Perangkat

Selenium Test Automation digunakan untuk otomatisasi pengujian aplikasi web seluler pada berbagai perangkat seperti Android, iOS. 

F. Eksekusi jarak jauh atau cloud:

Selenium GRID memberi Anda fitur untuk menjalankan dan mengontrol skrip pengujian otomatisasi aplikasi web Anda di cloud dengan menjadikan satu sistem sebagai node master dan sistem lain sebagai node slave, node slave terhubung ke satu node master, dan node master memantau slave node, jadi pengujian Anda berada di node budak yang berbeda dengan sistem operasi yang berbeda dan browser yang berbeda seperti Chrome, Firefox, Internet Explorer dll.

G.Kemampuan Pengujian Paralel:

Dengan Selenium, Anda dapat mencapai kemampuan pengujian Paralel Otomatis, yaitu Anda dapat menjalankan skrip pengujian atau kasus Pengujian otomatisasi ke browser yang berbeda atau sama dan sistem operasi yang berbeda atau sama secara paralel. Fitur ini membantu Anda mencapai waktu eksekusi yang lebih rendah untuk seluruh rangkaian Tes Otomasi yang Anda miliki, dan juga Anda dapat menguji kelayakan dan kompatibilitas aplikasi web Anda dengan beberapa sistem operasi dan beberapa browser secara paralel.   

H. Kompatibilitas dengan beberapa Framework dan alat serta teknologi pihak ketiga

Kerangka kerja selenium dapat dengan mudah diintegrasikan dengan berbagai teknologi dan kerangka kerja pihak ketiga seperti kerangka Unit Test yang berbeda, mis TestNg, JUnit, MbUnit, Nunit, dll., dll., Alat pembuatan yang berbeda seperti Ant, Maven, Gradle, dll., Alat integrasi berkelanjutan, yaitu Jenkins, Alat manajemen pengujian yang berbeda seperti Jira, testlink dll., berbagai alat pelaporan seperti Daya Tarik, Luas Laporkan dll.

I. Eksekusi Headless Browser: 

Selenium Webdriver mendukung driver browser tanpa kepala untuk otomatis eksekusi uji kasus, di mana semua kasus uji otomatisasi Anda berjalan dalam mode browser tanpa kepala, yaitu tidak ada browser yang dibuka dan eksekusi menjadi secepat kilat sehingga Anda dapat menyelesaikan skrip Uji dan fungsionalitas dengan cepat jika ada rilis dan validasi yang mendesak.

Anda pada dasarnya dapat menggunakan htmlUnitdriver or pengemudi hantu untuk eksekusi tanpa kepala dengan Selenium.  

Kekurangan Selenium:

  • Dukungan Aplikasi Berbasis Asli/Jendela, tidak ada: 
    • Selenium digunakan untuk aplikasi Automating Web Bade, tetapi tidak menyediakan dukungan untuk aplikasi native atau aplikasi berbasis windows.
  • Otomatisasi Berbasis Gambar Lengkap: 
    • Selenium tidak memberikan dukungan lengkap untuk mengotomatiskan masalah atau aplikasi berbasis gambar, meskipun kami dapat menggunakan beberapa alat pihak ketiga seperti Sikuli, solusi berbasis Tesseract ocr yang dapat diintegrasikan dengan Selenium untuk melakukan pekerjaan yang terkait dengan validasi / operasi Gambar atau ekstraksi dan validasi data gambar, mereka juga memiliki beberapa keterbatasan seperti Anda mungkin menghadapi masalah dengan pengujian Paralel, mengidentifikasi dokumen tulisan tangan dan memvalidasi dokumen yang sedang dalam proses mengotomatiskan aplikasi Anda jika ada kasus penggunaan seperti itu.
  • Integrasi dengan alat pihak ketiga : 
    • Satu kelemahan integrasi dengan beberapa alat pihak ketiga dengan selenium adalah skrip otomasi Anda mungkin menjadi lebih lambat pada waktu tertentu.
  • Kerangka selenium Pengembangan:
    • Merancang dan mengembangkan kerangka kerja Otomasi Tes lanjutan dengan Selenium membutuhkan banyak keahlian pada selenium dan tidak terlalu mudah untuk membangun kerangka Otomasi dengan banyak alat bersama dengan Selenium.
  • Masalah Khusus Peramban: 
    • Anda mungkin menghadapi beberapa masalah khusus browser saat bekerja dengan Selenium, terutama dengan IE, terkadang Anda mungkin tidak dapat menangani tindakan Web seperti klik, tombol kirim, dll., Dan browser mungkin mati. Oleh karena itu, Anda perlu memiliki pengetahuan lebih lanjut untuk menangani area tersebut sambil mengotomatiskan Aplikasi yang dibangun di atas Bootstrap JS dan menjalankannya di browser IE.
    • Selain itu, Anda mungkin menghadapi masalah kompatibilitas browser dengan versi Selenium Webdriver; Anda perlu memastikan Anda menggunakan Firefox, Chrome, atau browser lain yang kompatibel yang Anda gunakan dengan versi Selenium Webdriver.
  • Tidak ada dukungan resmi: 
    • Seperti alat Open Source lainnya, selenium juga merupakan alat sumber terbuka, yang berarti Anda tidak akan memiliki dukungan resmi untuk masalah Anda seperti Alat Berbayar, meskipun tersedia dukungan komunitas yang sangat besar, Anda dapat bekerja dengan mereka dengan pernyataan masalah Anda , tetapi itu bisa sangat memakan waktu.

Komponen Selenium: 

Selenium sebagai alat memiliki komponen-komponen di bawah ini, yaitu: 

Selenium IDE:

  • Selenium IDE atau Selenium Integrated Development environment adalah versi paling awal dari Selenium untuk Otomasi Aplikasi Web.
  • Selenium IDE adalah sejenis alat rekam dan pemutaran, yang dapat Anda gunakan sebagai plugin browser dan merekam tindakan web Anda pada aplikasi Anda dan yang dapat disimpan sebagai skrip dan kemudian Anda dapat menjalankan skrip rekaman yang sama untuk dijalankan dan dilakukan. validasi.
  • Tetapi memiliki beberapa batasan seperti:
    • Anda perlu menjalankan skrip yang direkam, memodifikasi skrip tidak begitu fleksibel atau Anda juga tidak dapat berkenan menggunakan case dan skrip dalam pendekatan independen Anda sendiri.
    • Eksekusi sangat lambat di alam.
    • Sebagian besar mendukung Firefox, meskipun ada beberapa penyesuaian yang dapat Anda lakukan untuk menjalankan skrip yang direkam di browser lain seperti Google Chrome.
    • eksekusi paralel tidak didukung.
    • Pengujian seluler tidak didukung.
    • Pembuatan laporan cukup tidak baik.
  • Ini sebenarnya versi Selenium yang sangat awal, dengan menggunakan ini Anda dapat melakukan Otomasi Tes yang sangat terbatas untuk Aplikasi Web Anda.

Selenium RC

  • Selenium Remote Control adalah versi Selenium berikutnya dan sangat sering disebut sebagai Selenium 1.0.

Bagaimana Selenium RC bekerja secara internal:

Selenium RC terdiri dari dua komponen utama, seperti Selenium Server, Selenium Client.

Server Selenium meluncurkan browser dan menjalankan perintah selenium yang telah Anda tulis sebagai skrip otomatisasi pengujian dengan menggunakan pustaka klien Selenium yang tersedia dalam berbagai bahasa.

Server Selenium mengubah perintah / skrip uji menjadi sesuatu yang disebut perintah Selenese, dan bertindak sebagai proxy HTTP.

Selenium Server berinteraksi dengan mesin Web Browser dan menjalankan operasi Web yang Anda coba Otomatisasi sebagai bagian dari kasus Uji untuk Aplikasi yang Sedang Diuji.

Langkah-langkah untuk menggunakan Selenium RC: 

  • Instal Server Selenium-RC.
    • Buat proyek menggunakan pilihan bahasa pemrograman dan bahasa khusus untuk driver browser.
  • Instal server selenium
    • Anda dapat mengatur Server Selenium hanya dengan mengunduh file selenium-server.jar dan menjalankannya di sistem Anda dengan menggunakan perintah di bawah ini: 
    • java -jar Selenium-server.jar
  • Tulis Script dengan menggunakan pustaka klien Selenium dan sama menggunakan Server Selenium.

Keterbatasan Selenium RC:

  • Pada Selenium Remote control, otomasi driver dan browser menjadi sedikit lebih lambat karena mesin browser tidak berinteraksi secara langsung, melainkan Selenium RC yang menginjeksikan javascript ke mesin browser, juga disebut sebagai Selenium Core.
  • Server yang harus aktif dan berjalan sebelum dan selama eksekusi skrip pengujian.
  • Tindakan Advance Web tidak dapat diotomatiskan dan ditangani menggunakan Selenium RC seperti Gerakan mouse, klik dua kali, mengambil input dari Keyboard, dll. Tidak seperti Selenium Webdriver.
  • Selenium RC tidak mendukung pengujian aplikasi Seluler.
  • Selenium RC bergantung pada browser asli untuk menjalankan skrip pengujian Otomasi, dan tidak mendukung browser tanpa kepala seperti HTMLUnitDriver atau GHostDriver dll. Tidak seperti Selenium Webdriver.

Pengandar Web Selenium:

Selenium Webdriver adalah versi lanjutan di antara komponen Selenium yang sangat kuat dan juga mendukung versi lanjutan dari interaksi Web dan juga tidak berinteraksi dengan Browser melalui Javascript tidak seperti Selenium RC dan memiliki dukungan pengujian Aplikasi Seluler juga. Ini sangat sering disebut sebagai bagian dari Selenium 2.0.

WebDriver dapat menangani elemen dinamis dan juga mendukung eksekusi paralel dengan beberapa browser berbeda.

Kami akan memiliki pembahasan rinci di segmen mendatang.

Selenium GRID: 

Selenium GRID adalah komponen lain dari Selenium di mana Anda dapat menjalankan skrip pengujian otomasi Anda dari jarak jauh dengan membuat node master-slave. Selenium GRID mendukung Pengujian paralel pada browser yang sama serta beberapa browser. 

Kami akan membahas lebih lanjut tentang Selenium GRID di bagian mendatang.

Driver Web 3.0

Selenium 3.0 adalah versi terbaru dari komponen Selenium yang pada dasarnya merupakan kombinasi dari WebDriver 2.0 dan evolusi GRID 3.

Pada segmen selanjutnya ini, kita akan membahas Arsitektur Selenium WebDriver secara detail, dan akhirnya, itu menggambarkan bagaimana Selenium bekerja secara internal,.

Arsitektur Selenium Webdriver  :

Ada lima atribut atau komponen utama sebagai bagian dari arsitektur Selenium Webdriver: 

    

  • Library Klien Selenium atau binding bahasa Pemrograman Selenium
  • Protokol WebDriver atau JSON Wire Protocol melalui HTTP
  • Driver Browser
  • Mesin Peramban
  • Mesin rendering browser
Arsitektur Selenium Webdriver
Tutorial Selenium-Arsitektur Selenium Webdriver

Perpustakaan Klien Selenium atau Binding Bahasa Pemrograman: 

Selenium menyediakan pengikatan bahasa yang berbeda, yaitu perpustakaan klien untuk mendukung banyak bahasa yang berbeda sebagai bagian dari skrip pengujian Pengembangan Otomasi dan Otomasi Anda. Misalnya, Selenium dengan C #, Selenium dengan Java, Selenium dengan Python dll.

Protokol WebDriver atau JSON WIRE PROTOCOL:

JSON yang pada dasarnya adalah singkatan dari JavaScript Object Notation. Protokol ini juga disebut sebagai protokol WebDriver, digunakan untuk transfer data klien-server melalui web. Setiap Driver Browser (misalnya FirefoxDriver, ChromeDriver, dll.) Memiliki server HTTP-nya sendiri dan menggunakan protokol ini untuk mentransfer data melalui Rest Webservices dalam bentuk permintaan HTTP dan respons HTTP.

 Driver Browser:

Setiap browser memiliki driver browsernya sendiri. Driver Browser menjalin komunikasi dengan browser masing-masing melalui mesin browser. 

Ketika skrip Otomasi dijalankan, itu langsung berkomunikasi ke driver browser dan akhirnya dengan browser masing-masing. Permintaan dan tanggapan ditransfer melalui permintaan HTTP dan tanggapan HTTP.

Mesin Peramban:

Setiap Peramban memiliki mesin perambannya sendiri; Mesin browser pada dasarnya bekerja sebagai lapisan perantara antara UI dan mesin rendering.

Mesin Peramban Peramban: 

Mesin rendering Browser bertanggung jawab untuk menampilkan dokumen yang diminta dengan menampilkan elemen spesifik yang diperlukan untuk respons permintaan dan data.

Singkatnya, Selenium Webdriver Architecture dan fungsionalitas kerja :

Selenium-WebDriver menjalankan browser secara langsung menggunakan dukungan asli setiap browser untuk otomatisasi dan mesin JavaScript-nya. Bagaimana panggilan ini dilakukan dan fitur yang didukungnya bergantung pada browser yang Anda gunakan.

Itu tidak menyuntikkan JavaScript seperti Selenium-RC saat browser memuat.

Insiden berikut ini terjadi saat menjalankan skrip Webdriver:

  •  Kami melakukan skrip otomatisasi menggunakan pengikatan bahasa apa pun (Java / C # dll.), dan itu memicu API WebDriver saat skrip sedang dieksekusi.
  •   Script dan akhirnya perintah (misalnya driver.findElement (By.id (“idName”))) adalah dikonversi ke JavaScript secara internal.
  •   Menggunakan Mesin Peramban, itu lagi dikonversi kembali ke JSON, yang merupakan jenis pasangan nilai kunci.
  •   Setelah mendapatkan nilai masing-masing dari masing-masing kunci, itu mengidentifikasi masing-masing WebElements dan melakukan tindakan pengguna masing-masing (seperti klik, kirim kunci, dll.).
  •   Semua komunikasi dilakukan menggunakan a Panggilan JSON-Wire atau Webdriver Protocol, dan komunikasi terjadi melalui HTTP dalam bentuk Rest API sebagai permintaan HTTP dan respons HTTP.

Selenium pertanyaan yang sering ditanyakan: 

Apa saja jenis API WebDriver yang tersedia di Selenium?

Selenium Webdriver adalah antarmuka dan memiliki binding bahasa yang berbeda untuk bahasa pemrograman yang berbeda seperti Java, C #, python dll., 

Selenium Webdriver memiliki dua varian yang berbeda seperti: 

  • Selenium Web driver lokal.
  • Remote driver Selenium Web. 

Driver Selenium Web Lokal menggunakan API untuk bekerja dengan pengikatan bahasa tertentu, dan Anda dapat bekerja dengan ini dengan Anda eksekusi lokal, sementara di sisi lain jika Anda ingin mengeksekusi skrip pengujian otomasi Anda di Remote, maka Anda perlu menggunakan API driver Web Selenium jarak jauh.

Jelaskan Skenario apa yang tidak dapat kita otomatisasi menggunakan Selenium?

Selenium tidak menyediakan cara untuk mengotomatiskan area aplikasi di bawah ini, yaitu: 

  • Pengujian kinerja Aplikasi
  • Pengujian Keamanan Aplikasi.
  • Pemrosesan dan otomatisasi berbasis gambar
  • Otomatisasi berbasis captcha.
  • Skenario streaming video.
  • Aplikasi asli atau aplikasi berbasis jendela.
  • Aplikasi Streaming

Perbedaan antara Selenium 2.0 dan Selenium 3.0?

  • Untuk Selenium 2.0 persyaratan minimum adalah Java 1.7, di sisi lain untuk Selenium 3.0, versi Java minimum yang diperlukan adalah 1.8
  • Selenium 3.0 membutuhkan GeckOdriver untuk Firefox versi di atas 47, tetapi ini tidak berlaku untuk Selenium 2.0 
  • Selenium 3.0 mendukung browser modern seperti Edge, Safari dll. tetapi di sisi lain untuk Selenium 2.0, driver browser untuk Mozilla, Chromedriver, IE yang dikembangkan oleh pengembang Selenium.
  • Di Selenium 3, dukungan untuk pengujian otomatisasi seluler dihapus, yaitu AndroidDriver dan iPhoneDriver, dan Anda harus menggunakan alat seperti Appium untuk pengujian otomatisasi seluler, yang tidak berlaku untuk Selenium 2.0.
  • Selenium 3.0 tidak mendukung driver Headless, yaitu HTMLUnitWebDriver, tetapi Selenium 2.0 mendukung eksekusi Headless, yaitu dengan HTMLUnitDriver atau ghostdriver.
  • Dalam Selenium 3, Selenium WebDriver telah menjadi standar W3C; di sisi lain, Selenium Webdriver di Selenium 2.0 tidak termasuk dalam standar W3C.

Kesimpulan : Dengan ini kami menyelesaikan segmen pertama Buku hitam tutorial selenium penutup Apa itu Selenium , Selenium Webdriver Arsitektur, ikhtisar Selenium, Pro dan kontra Selenium, Di segmen mendatang Tutorial selenium modul 2 kita akan membahas tentang Instalasi Selenium yaitu pengaturan, perintah Selenium dan topik dasar, menengah dan lanjutan lainnya dari Selenium

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai *

Gulir ke Atas