Menyiapkan Selenium Grid untuk pengujian Selenium terdistribusi



Blog ini akan membantu Anda memahami kebutuhan Selenium Grid dan manfaatnya. Bacalah untuk mengatur Selenium Grid pertama Anda dengan mengkonfigurasi hub & node.

Blog lain dalam rangkaian tutorial Selenium ini berbicara tentang pembuatan kasus uji dan menjalankan kasus uji tersebut secara berurutan dan paralel. Jadi, teknik terakhir yang tersisa untuk diskusi adalah eksekusi kasus uji di mesin jarak jauh. Selenium Grid dapat digunakan untuk menjalankan pengujian ini pada mesin / host jarak jauh. Makanya, itulah topik pembahasan blog hari ini.

  1. Mengapa dan kapan menggunakan Selenium Grid?
  2. Apa itu Selenium Grid?
  3. Selenium Grid 1 vs. Selenium Grid 2
  4. Arsitektur Grid Selenium
  5. Membangun Grid Selenium

Mengapa & Kapan Menggunakan Selenium Grid?

Ada begitu banyak browser web yang digunakan saat ini. Pengguna mungkin menggunakan Chrome atau Firefox atau Safari atau Opera atau bahkan Internet Explorer untuk membaca blog ini. Mereka mungkin menggunakan versi browser yang berbeda. Mereka juga dapat menjalankan browser ini di OS apa pun, baik itu Windows atau Mac atau Ubuntu atau distribusi Linux lainnya.





Bagaimana jika pengguna melihat sesuatu yang penting di internet? Sesuatu yang penting untuk bisnis Anda. Tidakkah Anda ingin bekerja ekstra (menguji aplikasi web) hanya untuk memastikan bahwa pengguna dan / atau pelanggan Anda mendapatkan pengalaman pengguna terbaik? Anda akan melakukannya, bukan?

Nah, kamu harus!



Tapi pertanyaannya adalah, seberapa mungkin itu? Apakah Anda dapat menghabiskan waktu untuk menguji aplikasi web Anda di setiap OS yang memungkinkan dan setiap browser web yang tersedia? Hmm, itu terdengar seperti tantangan. Di sinilah Selenium Grid cocok dengan tagihan dan membantuhemat waktu dan energi Anda.

Selain itu, satu pertanyaan lagi muncul, Apakah layak untuk memasang infrastruktur jaringan Selenium menggunakan sistem lokal? Mempertahankan kisi dengan semua browser dan sistem operasi yang diperlukan merupakan sebuah tantangan. Untuk ini, ada beberapa platform online yang menyediakan Selenium Grid online yang dapat Anda akses untuk menjalankan skrip otomatisasi selenium Anda. Misalnya, Anda bisa menggunakan LambdaTest . Ini memiliki lebih dari 2000 lingkungan browser di mana Anda dapat menjalankan pengujian Anda dan benar-benar pengujian lintas-browser otomatis.

Apa Itu Selenium Grid?

Selenium Grid adalah alat penting lainnya dalam rangkaian alat Selenium. Grid mampu mengoordinasikan pengujian WebDriver / pengujian RC yang dapat dijalankan secara bersamaan di beberapa browser web atau dapat dimulai pada sistem operasi yang berbeda atau bahkan dihosting di mesin yang berbeda.



kerja jaringan - jaringan seleniumJadi, bagaimana cara kerjanya? Grid menggunakan arsitektur Hub-Node di mana, terdapat satu Hub, yang bertindak sebagai master dan satu atau lebih Node yang bertindak sebagai budak.

Artinya, jika Anda memiliki total 100 pekerjaan / pengujian yang perlu dijalankan, maka pengujian tersebut dapat dijalankan secara bersamaan di 5 mesin, di mana setiap mesin akan menjalankan 20 pengujian. Faktanya, Anda dapat menjalankan pengujian ini dalam berbagai kombinasi sistem operasi dan browser. Setiap mesin di sini dapat memiliki OS yang berbeda dan di dalam setiap OS, pengujian dapat dilakukan pada browser yang berbeda.

Tindakan ini akan dengan mudah menghemat banyak waktu Anda dalam eksekusi uji. Jika Anda mempertimbangkan contoh di atas, maka kami dapat mengurangi waktu eksekusi menjadi sekitar 1/5 dari total waktu yang diperlukan untuk menjalankan pengujian pada satu mesin.

Jika Anda ingat dari blog saya sebelumnya, saya telah menyebutkan berkali-kali bahwa Grid adalah bagian dari proyek Selenium sejak awal yaitu sejak Selenium v1. Selenium Grid juga merupakan bagian dari Selenium v2 dan saat ini merupakan bagian dari Selenium v3. Tidak banyak perbedaan dalam Selenium Grid v2 dan v3. Namun, v1 memiliki banyak perbedaan secara komparatif. Jadi ayomemahami perbedaan antara v1 dan v2.

Selenium Grid 1 vs. Selenium Grid 2

Perbedaan mendasar antara Grid v1.0 dan v2.0 adalah, RC digunakan di Grid 1, dan WebDriver digunakan di Grid 2. Tabel di bawah menjelaskan perbedaan secara mendetail.

Kotak 1 Kotak 2
Membutuhkan Apache Ant untuk diinstalInstalasi Apache Ant tidak diperlukan
Memiliki remote control sendiri (Ini berbeda dengan RC server)Dibundel dengan file jar Selenium Server
Hanya mendukung perintah Selenium RCMendukung skrip Selenium RC dan WebDriver
Anda hanya dapat mengotomatiskan satu browser per remote controlAnda dapat mengotomatiskan hingga 5 browser per remote control


Sekarang kita telah mempelajari perbedaan mendasar antara kedua versi tersebut, mari kita selami lebih dalam ke Selenium Grid.

Arsitektur Grid Selenium

Seperti yang saya sebutkan sebelumnya, fungsi Grid berdasarkan satu Hub dan beberapa Node. Tapi, apa itu Hub dan Nodes dan apa fungsinya?

Hub

Dalam pengaturan Grid mana pun, hanya ada satu Hub dan itu akan menjadi titik pusat dalam pengaturan Grid itu. Semua pengujian yang perlu dijalankan harus dimuat di sini. Meskipun tes sedang dimuat di sini, mereka hanya akan dijalankan di Nodes. Kami dapat mengonfigurasi mesin host mana pun untuk menjadi Hub kami, dan itu akan mengoordinasikan aktivitas eksekusi uji di host lain.

Agar hal ini terjadi, pertama-tama kita perlu mengkonfigurasi Hub, lalu membuat Node lain untuk mendaftar ke Hub. Sebelum saya membahas terlalu banyak detail, izinkan saya menunjukkan kepada Anda perintah untuk mengkonfigurasi Hub.

Mengonfigurasi The Hub

Pertama-tama Anda harus mengunduh file JAR server Selenium dari situs web Seleniumhq. Tautannya adalah sini . Anda juga perlu memastikan bahwa Java diinstal di sistem Anda dan variabel lingkungan disetel.

ketik konversi di c ++

Setelah Anda mengunduh file jar, Anda harus meletakkannya di direktori yang sesuai. Demi kenyamanan saya, saya telah mendownloadnya dan meletakkannya di folder Selenium di Drive C. Disarankan agar Anda juga mengunduh file jar dan meletakkannya di direktori yang sama di semua node lainnya.

Untuk mengkonfigurasi Hub, Anda perlu menjalankan perintah di command prompt windows. Perintah ada di cuplikan di bawah ini.

C: UsersVardhan> cd .. C: Users> cd .. C:> cd Selenium C: Selenium> java -jar selenium-server-standalone-3.4.0.jar -peran hub

Itu selenium-server-standalone-3.4.0.jar adalah nama file jar yang saya unduh.
Itu -wewenang flag digunakan untuk menyetel mesin host tertentu sebagai Hub. Saat Anda menekan enter, Anda akan mendapatkan output di bawah ini di layar Anda.

Jika Anda gagal melihat tangkapan layar di atas, lihat lagi. Ia mengatakan ' -Node harus mendaftar ke http://192.168.0.11:4444/grid/register '. Sekarang Hub sudah dikonfigurasi, kita perlu mengatur Nodes dan menghubungkannya ke Hub ini.

192.168.0.11 adalah alamat IP dari Hub, dan setiap Node harus terhubung ke alamat IP ini. 4444 adalah nomor port default tempat Selenium Grid dihosting dan mendengarkan permintaan. Jika beberapa layanan lain berjalan pada port 4444 dan Anda ingin Selenium Grid dihosting di port lain, maka Anda dapat melakukannya dengan menentukan -Pelabuhan bendera diikuti dengan nomor port.

Node

Node adalah mesin host tempat pengujian dijalankan. Tes ini akan diluncurkan oleh Hub. Hub dapat meluncurkan satu atau lebih Node baik di mesin jarak jauh atau mesin yang sama di mana Hub itu sendiri berada. Pada setiap Node, sistem operasi yang berbeda dapat di-boot, dan pada sistem operasi yang berbeda, versi yang berbeda dari browser yang sama atau browser yang berbeda dapat dimulai.

Mengonfigurasi Nodes

Mirip dengan Hub, Anda harus mengunduh file Jar terlebih dahulu di mesin Node dan meletakkannya di Drive C atau direktori umum lainnya untuk kenyamanan Anda. Anda kemudian dapat menjalankan perintah di bawah ini di prompt perintah Windows. Jika Anda meluncurkan bahkan Node pada mesin yang sama dengan Hub Anda, maka Anda perlu menjalankan perintah dengan memulai prompt perintah lain.

java -Dwebdriver.chrome.driver = E: chromedriver.exe -jar selenium-server-standalone-3.4.0.jar -peran node -hub http://192.168.0.11:4444/grid/register

Hanya ada sedikit perbedaan dalam perintah ini dibandingkan dengan perintah yang diperlukan untuk memulai Hub.
-Dwebdriver.chrome.driver = E: chromedriver.exe digunakan untuk mengatur jalur driver browser. Serupa dengan menyetel jalur driver browser di kode WebDriver Anda, Anda menentukannya di sini agar Node dapat melakukan pengujian. Mulai Selenium v3 dan seterusnya, Anda perlu mengunduh browser driver untuk Firefox. Driver browser untuk Firefox adalah driver Gecko. Namun, di versi 1 dan 2, Anda perlu menyetel driver browser untuk semua browser selain Firefox.
node -peran flag digunakan untuk menyetel mesin host tertentu sebagai Node.
-hub http://192.168.0.11:4444/grid/register menginformasikan Node untuk terhubung ke Hub dengan menggunakan alamat IP Hub. Hal penting yang perlu diperhatikan adalah jika Anda meluncurkan Node apa pun pada mesin yang sama dengan Hub Anda, Anda dapat menentukan ' -hub http: // localhost: 4444 / grid / register 'Di perintah alih-alih alamat IP Hub.

cara menggunakan meja kerja mysql

Saat Anda menekan enter, Anda akan mendapatkan output di bawah ini pada command prompt.

Sekarang, Node telah terhubung ke Hub. Anda dapat memverifikasi itu dengan kembali ke prompt perintah yang digunakan untuk memulai Hub dan Anda akan melihat pesan berikut: ' Mendaftarkan node http://192.168.0.11:5555 '.

Alamat IP dan nomor port adalah dari Node Anda. Karena saya memiliki Node pada mesin yang sama dengan Hub saya, porta yang digunakan untuk Node adalah 5555. Saat Anda memulainya di komputer lain, port default akan digunakan.

Saat Anda meluncurkan URL berikut di mesin Hub Anda, Anda akan mendapatkan status Node yang terhubung ke Hub Anda. Lihat bagian yang disorot pada gambar di bawah.

Sekarang Selenium Grid Anda telah dikonfigurasi, Anda dapat melanjutkan ke eksekusi skrip uji coba pada Nodes. Izinkan saya menekankan kembali bahwa kita perlu menjalankan skrip di Hub kita dan skrip tersebut akan dieksekusi di Node kita. Skrip yang digunakan untuk menjalankan pengujian mirip dengan WebDrivertes.

Membangun Grid Selenium

Saya telah menjalankan skrip saya di Eclipse IDE. Eksekusi skrip ini bergantung pada dua paket perpustakaan penting. Mereka DesiredCapabilities objek dan RemoteWebDriver obyek.

DesiredCapabilities digunakan untuk mengatur jenis browser dan OS Node kami. Untuk mengimpor objek DesiredCapabilities, gunakan kode di bawah ini.

impor org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver digunakan untuk memilih Node tempat kita ingin menjalankan pengujian. Untuk mengimpor objek RemoteWebDriver, gunakan baris kode di bawah ini.

impor java.net.MalformedURLException impor java.net.URL impor org.openqa.selenium.remote.RemoteWebDriver

Saya telah mengimpor dua paket ini bersama dengan paket anotasi TestNG untuk skrip saya seperti yang ditunjukkan pada potongan kode di bawah ini. Saya telah mengimpor anotasi TestNG karena saya telah menjalankan ini sebagai pengujian TestNG yang laporan detailnya akan dibuat. Saya akan merekomendasikan Anda untuk mengimpor paket yang sama untuk kode Anda.

Saat Anda melakukan manuver di atas logo browser apa pun yang ada di konsol Selenium Hub, Anda akan mendapatkan detail seperti browserName dan peron dari Node yang ingin Anda otomatisasi. Gambar tersebut juga menunjukkan berapa banyak contoh browser yang dapat saya buka di Node saya. Saya dapat mengkonfigurasi maksimal 5 instance chrome, 5 Firefox dan 1 Internet Explorer. Detail ini ada di tangkapan layar di bawah ini.

Anda dapat menggunakan kode di cuplikan di bawah ini untuk menyiapkan Grid pertama Anda.

paket GridTest impor org.testng.annotations.AfterTest impor org.testng.annotations.BeforeTest impor org.testng.annotations.Test impor java.net.MalformedURLException import java.net.URL import org.junit.Assert import org.openqa.selenium .Platform import org.openqa.selenium.WebDriver import org.openqa.selenium.remote.DesiredCapabilities import org.openqa.selenium.remote.RemoteWebDriver public class TestGrid {static WebDriver driver static String nodeUrl @BeforeTest public void setup () melempar Malform {edURLException nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapabilities kapabilitas = DesiredCapabilities.chrome () kapabilitas.setBrowserName ('chrome') kapabilitas.setPlatform (Platform.WINDOWS) driver = RemoteWebDriver baru (URL baru (nodeUrl) ), kapabilitas)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest public void afterTest () {driver.quit ()}}

Saya telah membagi seluruh skrip pengujian menjadi tiga anotasi pengujian. @BeforeTest, @Test dan @AfterTest. Di @BeforeTest, saya telah menggunakan objek DesiredCapablities dan RemoteWebDriver untuk mengkonfigurasi Node saya. Di @Test, saya telah meminta Node untuk membuka halaman beranda Edureka dan menegaskan judul halaman. Di @AfterTest, saya telah meminta Node untuk keluar dari instance browser.

Saat pengujian Anda berhasil dijalankan, Anda akan mendapatkan output di bawah ini.

18 Mei 2017 15.09.07 org.openqa.selenium.remote.ProtocolHandshake create INFO Sesi: Dialek yang terdeteksi: OSS PASSED: simpleTest ===================== ========================== Tes tes default dijalankan: 1, Kegagalan: 0, Lewati: 0 ========== ===================================== ============= ================================== Suite default Total tes yang dijalankan: 1, Kegagalan: 0, Lewati: 0 = ==============================================

Karena ini dijalankan sebagai tes TestNG, Anda akan mendapatkan laporan pengujian terperinci yang mirip dengan tangkapan layar di bawah ini.

Jika Anda tidak tahu apa itu TestNG dan cara menggunakan anotasi pengujian, bacalah blog saya tentang cara menggunakan Selenium WebDriver dengan TestNG dari seri tutorial Selenium ini.

Anda dapat melihat video di bawah ini untuk menyaksikan demonstrasi bagaimana membangun Grid Selenium. Instruktur yang menyampaikan video menjelaskan konsep yang sama yang dijelaskan di blog ini.

Tutorial Grid Selenium Untuk Pemula | Tutorial Selenium | Edureka

Nah, itulah akhir dari blog Selenium Grid ini. Jika Anda memiliki keraguan atau masalah dengan kode / konten apa pun dari seri blog ini, silakan tinggalkan di bagian komentar di bawah ini dan saya akan menyelesaikan masalah Anda secepatnya.

Jika Anda ingin belajar Selenium dan membangun karir di domain pengujian, lihat interaktif kami, langsung online di sini, yang dilengkapi dengan dukungan 24 * 7 untuk memandu Anda selama periode belajar Anda.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar dan kami akan menghubungi Anda kembali.