Menyiapkan Selenium Grid untuk ujian Selenium yang diedarkan



Blog ini akan membantu anda memahami keperluan Selenium Grid dan faedahnya. Bacalah untuk menyiapkan Selenium Grid pertama anda dengan mengkonfigurasi hab & nod.

Blog lain dalam siri tutorial Selenium ini membicarakan tentang pembuatan kes ujian dan melaksanakan kes ujian tersebut secara berurutan dan selari. Jadi, teknik terakhir yang perlu dibincangkan adalah pelaksanaan kes ujian di mesin jarak jauh. Selenium Grid dapat digunakan untuk menjalankan ujian ini pada mesin / host jarak jauh. Oleh itu, itulah topik perbincangan blog hari ini.

  1. Mengapa dan kapan menggunakan Selenium Grid?
  2. Apa itu Selenium Grid?
  3. Selenium Grid 1 berbanding Selenium Grid 2
  4. Senibina Selenium Grid
  5. Membina Selenium Grid

Mengapa & Bilakah Menggunakan Selenium Grid?

Terdapat begitu banyak penyemak imbas web yang digunakan hari ini. Pengguna mungkin menggunakan Chrome atau Firefox atau Safari atau Opera atau bahkan Internet Explorer untuk membaca blog ini. Mereka mungkin menggunakan versi penyemak imbas yang berbeza. Mereka juga mungkin menjalankan penyemak imbas ini pada OS apa pun, sama ada Windows atau Mac atau Ubuntu atau sebaran Linux yang lain.





Bagaimana jika pengguna melihat sesuatu yang penting di internet? Sesuatu yang penting bagi perniagaan anda. Tidakkah anda mahu berusaha lebih jauh (menguji aplikasi web) hanya untuk memastikan pengguna dan / atau pelanggan anda mendapat pengalaman pengguna terbaik? Anda akan, bukan?

Baiklah, anda mesti!



Tetapi persoalannya, seberapa layak itu? Adakah anda dapat meluangkan masa untuk menguji aplikasi web anda pada setiap OS yang mungkin dan setiap penyemak imbas web yang ada? Hmm, itu sepertinya sedikit cabaran. Di sinilah Selenium Grid sesuai dengan bil dan membantumenjimatkan masa dan tenaga anda.

Di samping itu, timbul satu lagi pertanyaan, Apakah layak untuk membangun infrastruktur grid Selenium menggunakan sistem tempatan? Menjaga grid dengan semua penyemak imbas dan sistem operasi yang diperlukan adalah satu cabaran. Untuk ini, terdapat beberapa platform dalam talian yang menyediakan Selenium Grid dalam talian yang boleh anda akses untuk menjalankan skrip automasi selenium anda. Contohnya, anda boleh menggunakan Ujian Lambda . Ia mempunyai lebih daripada 2000 persekitaran penyemak imbas di mana anda boleh menjalankan ujian dan ujian penyemak imbas automatik melintasi.

Apa itu Selenium Grid?

Selenium Grid adalah alat penting lain dalam rangkaian alat Selenium. Grid mampu menyelaraskan ujian WebDriver / ujian RC yang dapat berjalan serentak di beberapa penyemak imbas web atau boleh dimulakan pada sistem operasi yang berbeza atau bahkan dihoskan pada mesin yang berbeza.



grid berfungsi - grid seleniumJadi, bagaimana ia berfungsi? Grid menggunakan senibina Hub-Node di mana, terdapat satu Hub, yang bertindak sebagai tuan dan satu atau lebih Node bertindak sebagai hamba.

Artinya, jika anda mempunyai 100 pekerjaan / ujian yang perlu dilaksanakan, maka ujian tersebut dapat dijalankan secara serentak di 5 mesin, di mana setiap mesin akan menjalankan 20 ujian. Sebenarnya, anda boleh menjalankan ujian ini dalam pelbagai kombinasi sistem operasi dan penyemak imbas. Setiap mesin di sini boleh mempunyai OS yang berbeza dan di dalam setiap OS, ujian dapat dilakukan pada penyemak imbas yang berbeza.

Tindakan ini dapat menjimatkan banyak masa anda dengan mudah dalam pelaksanaan ujian. Sekiranya anda mempertimbangkan contoh di atas, maka kita dapat mengurangkan waktu pelaksanaan menjadi sekitar 1/5 dari jumlah masa yang diperlukan untuk melaksanakan ujian pada satu mesin.

Sekiranya anda dapat mengingat kembali dari blog saya sebelumnya, saya telah menyebut berkali-kali bahawa Grid merupakan sebahagian daripada projek Selenium sejak ia dimulakan iaitu sejak Selenium v1. Selenium Grid juga merupakan bagian dari Selenium v2 dan pada masa ini ia adalah bahagian dari Selenium v3. Tidak ada banyak perbezaan dalam v2 dan v3 Selenium Grid. Walau bagaimanapun, v1 mempunyai banyak perbezaan secara perbandingan. Jadi, marimemahami perbezaan antara v1 dan v2.

Selenium Grid 1 berbanding Selenium Grid 2

Perbezaan asas antara Grid v1.0 dan v2.0 adalah bahawa, RC digunakan di Grid 1, dan WebDriver digunakan di Grid 2. Jadual di bawah menerangkan perbezaan secara terperinci.

Grid 1 Grid 2
Memerlukan Apache Ant untuk dipasangPemasangan Apache Ant tidak diperlukan
Mempunyai alat kawalan jauh sendiri (Ini berbeza dengan pelayan RC)Digabungkan dengan fail balang Selenium Server
Hanya menyokong arahan Selenium RCMenyokong skrip Selenium RC dan WebDriver
Anda boleh mengautomatikkan hanya satu penyemak imbas setiap alat kawalan jauhAnda boleh mengautomasikan sehingga 5 penyemak imbas setiap alat kawalan jauh


Setelah kita mengetahui perbezaan mendasar antara kedua versi, mari kita selami Selenium Grid dengan lebih mendalam.

Senibina Selenium Grid

Seperti yang saya nyatakan sebelumnya, Grid berfungsi berdasarkan satu Hub dan beberapa Node. Tetapi, apa itu Hub dan Node dan apa yang mereka lakukan?

Hab

Dalam penyediaan Grid, hanya ada satu Hub dan itu akan menjadi titik pusat dalam penyediaan Grid tersebut. Semua ujian yang perlu dilaksanakan harus dimuatkan di sini. Walaupun ujian dimuat di sini, ujian akan dijalankan hanya di Node. Kami dapat mengkonfigurasi mana-mana mesin host untuk menjadi Hub kami, dan ini akan menyelaraskan aktiviti pelaksanaan ujian di host lain.

Untuk ini berlaku, kita perlu mengkonfigurasi Hub terlebih dahulu, dan kemudian membuat Node lain untuk mendaftar ke Hub. Sebelum saya membincangkan terlalu banyak butiran, izinkan saya menunjukkan kepada anda arahan untuk mengkonfigurasi Hub.

Mengkonfigurasi Hab

Anda perlu memuat turun fail JAR pelayan Selenium terlebih dahulu dari laman web Seleniumhq. Pautan adalah di sini . Anda juga perlu memastikan bahawa Java dipasang di sistem anda dan pemboleh ubah persekitaran ditetapkan.

Setelah memuat turun fail jar, anda perlu meletakkannya di direktori yang sesuai. Untuk kemudahan saya, saya telah memuat turunnya dan meletakkannya di folder Selenium di C Drive. Sebaiknya anda juga memuat turun fail jar dan meletakkannya di direktori serupa di semua nod lain.

Untuk mengkonfigurasi Hub, anda perlu menjalankan perintah di command prompt windows. Perintah terdapat dalam coretan di bawah.

C: UsersVardhan> cd .. C: Pengguna> cd .. C:> cd Selenium C: Selenium> java -jar selenium-server-standalone-3.4.0.jar -role hub

The selenium-server-standalone-3.4.0.jar adalah nama fail balang yang saya muat turun.
The -peranan bendera digunakan untuk menetapkan mesin hos tertentu sebagai Hub. Apabila anda menekan enter, anda akan mendapat output di bawah pada skrin anda.

menaikkan sesuatu menjadi kekuatan di java

Sekiranya anda tidak dapat melihat tangkapan skrin di atas, kemudian lihat lagi. Ia berkata ' -Node harus mendaftar ke http://192.168.0.11:4444/grid/register '. Setelah Hub dikonfigurasi, kita perlu menyiapkan Node dan menghubungkannya ke Hub ini.

192.168.0.11 adalah alamat IP Hub, dan setiap Node harus menyambung ke alamat IP ini. 4444 adalah nombor port lalai di mana Selenium Grid dihoskan dan mendengar permintaan. Sekiranya beberapa perkhidmatan lain dijalankan di port 4444 dan anda mahu Selenium Grid dihoskan di port lain, maka anda boleh melakukannya dengan menentukan -port bendera diikuti dengan nombor port.

Nod

Node adalah mesin hos di mana ujian dijalankan. Ujian ini akan dilancarkan oleh Hub. Hub boleh melancarkan satu atau lebih Nod sama ada pada mesin jarak jauh atau mesin yang sama di mana Hub itu sendiri berada. Pada setiap Node, sistem operasi yang berbeza dapat di-boot, dan pada sistem operasi yang berlainan, versi yang berbeza dari penyemak imbas yang sama atau penyemak imbas yang berbeza dapat dimulai.

Mengkonfigurasi Nod

Sama seperti Hub, anda perlu memuat turun fail Jar terlebih dahulu di mesin Node dan meletakkannya di C Drive atau direktori umum lain untuk kemudahan anda. Anda kemudian boleh menjalankan perintah di bawah ini pada command prompt Windows. Sekiranya anda melancarkan Node walaupun pada mesin yang sama dengan Hub anda, maka anda perlu menjalankan perintah dengan memulakan command prompt yang lain.

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

Terdapat hanya beberapa perbezaan dalam perintah ini berbanding dengan perintah yang diperlukan untuk memulakan Hub.
-Dwebdriver.chrome.driver = E: chromedriver.exe digunakan untuk mengatur jalan pemacu penyemak imbas. Sama seperti menetapkan jalan pemacu penyemak imbas dalam kod WebDriver anda, anda menentukannya di sini supaya Node dapat menjalankan ujian. Dari Selenium v3 dan seterusnya, anda perlu memuat turun penyemak imbas pemacu untuk Firefox. Pemacu penyemak imbas untuk Firefox adalah pemandu Gecko. Walau bagaimanapun, dalam versi 1 dan 2, anda perlu menetapkan pemacu penyemak imbas untuk semua penyemak imbas selain daripada Firefox.
-rod simpul bendera digunakan untuk menetapkan mesin hos tertentu sebagai Node.
-hub http://192.168.0.11:4444/grid/register memberitahu Node untuk menyambung ke Hub dengan menggunakan alamat IP Hub. Perkara penting yang perlu diperhatikan ialah jika anda melancarkan Node pada mesin yang sama dengan Hub anda, maka anda boleh menentukan ' -hub http: // localhost: 4444 / grid / daftar ‘Dalam arahan dan bukannya alamat IP Hub.

idea java terbaik untuk windows

Apabila anda menekan enter, anda akan mendapat output di bawah pada command prompt.

Pada masa ini, Node sudah disambungkan ke Hub. Anda boleh mengesahkannya dengan kembali ke command prompt yang digunakan untuk memulakan Hub dan anda akan melihat mesej berikut: ‘ Mendaftar nod http://192.168.0.11:5555 '.

Alamat IP dan nombor port adalah Node anda. Oleh kerana saya mempunyai Node pada mesin yang sama dengan Hub saya, port yang digunakan untuk Node adalah 5555. Apabila anda memulakannya pada beberapa mesin lain, port lalai akan digunakan.

Apabila anda melancarkan URL berikut di mesin Hub anda, anda akan mendapat status Node yang disambungkan ke Hub anda. Lihat bahagian yang diserlahkan dalam tangkapan skrin di bawah.

Setelah Selenium Grid anda dikonfigurasi, anda boleh meneruskan pelaksanaan skrip ujian di Nodes. Izinkan saya menegaskan kembali bahawa kita perlu menjalankan skrip di Hub kita dan skrip tersebut akan dilaksanakan di Node kita. Skrip yang digunakan untuk menjalankan ujian serupa dengan WebDriverujian.

Membina Selenium Grid

Saya telah menjalankan skrip saya di Eclipse IDE. Pelaksanaan skrip ini bergantung pada dua pakej perpustakaan penting. Mereka Keupayaan yang diinginkan objek dan RemoteWebDriver objek.

DesiredCapabilities digunakan untuk menetapkan jenis penyemak imbas dan OS Node kami. Untuk mengimport objek DesiredCapabilities, gunakan kod di bawah.

import org.openqa.selenium.remote.DesiredCapabilities

RemoteWebDriver digunakan untuk memilih Node di mana kita ingin menjalankan ujian. Untuk mengimport objek RemoteWebDriver, gunakan baris kod di bawah.

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

Saya telah mengimport dua pakej ini bersama dengan pakej anotasi TestNG untuk skrip saya seperti yang ditunjukkan dalam coretan kod di bawah. Saya telah mengimport anotasi TestNG kerana saya telah melaksanakannya sebagai ujian TestNG yang mana laporan terperinci akan dihasilkan. Saya mengesyorkan anda mengimport set pakej yang sama untuk kod anda.

Apabila anda menggerakkan logo mana-mana penyemak imbas yang ada di Selenium Hub konsol, anda akan mendapat perincian seperti Nama penyemak imbas dan juga pelantar Node yang anda mahu automatikkan. Gambar juga menunjukkan berapa banyak penyemak imbas yang boleh saya buka di Node saya. Saya dapat mengkonfigurasi maksimum 5 krom, 5 Firefox dan 1 contoh Internet Explorer. Butiran ini terdapat dalam tangkapan skrin di bawah.

Anda boleh menggunakan kod dalam coretan di bawah untuk menyiapkan Grid pertama anda.

pakej GridTest import org.testng.annotations.AfterTest import org.testng.annotations.BeforeTest import org.testng.annotations.Test import java.net.MalformedURLException import java.net.URL import org.junit.Asert import org.openqa.selenium .Platform import org.openqa.selenium.WebDriver import org.openqa.selenium.remote.DesiredCapabilities import org.openqa.selenium.remote.RemoteWebDriver kelas awam TestGrid {pemandu WebDriver statik statik String nodeUrl @BeforeTest public voided setup) nodeUrl = 'http://192.168.0.11:5555/wd/hub' Keupayaan DesiredCapilities = Keupayaan DesiredCapabilities.chrome () .setBrowserName ('chrome') ), keupayaan)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest public void afterTest () {driver.quit ()}}

Saya telah membahagikan keseluruhan skrip ujian kepada tiga anotasi ujian. @BeforeTest, @Test dan @AfterTest. Di @BeforeTest, saya telah menggunakan objek DesiredCapablities dan RemoteWebDriver untuk mengkonfigurasi Node saya. Di @Test, saya telah meminta Node menavigasi ke halaman utama Edureka dan menegaskan tajuk halaman. Di @AfterTest, saya telah meminta Node untuk menghentikan contoh penyemak imbas.

Apabila ujian anda lulus pelaksanaan, anda akan mendapat output di bawah.

18 Mei 2017 3:09:07 PM org.openqa.selenium.remote.ProtocolHandshake create INFO Sesi: Dialek yang dikesan: OSS LULUS: simpleTest ===================== ========================== Ujian lalai Ujian dijalankan: 1, Kegagalan: 0, Langkau: 0 ========== ===================================== ============= ================================== Default suite Jumlah ujian dijalankan: 1, Kegagalan: 0, Langkau: 0 = ==============================================

Oleh kerana ini dilaksanakan sebagai ujian TestNG, anda akan mendapat laporan ujian terperinci yang serupa dengan tangkapan skrin di bawah.

Sekiranya anda tidak tahu apa itu TestNG dan bagaimana menggunakan anotasi ujian, baca blog saya mengenai cara menggunakan Selenium WebDriver dengan TestNG dari siri tutorial Selenium ini.

Anda dapat melihat video di bawah ini untuk menyaksikan demonstrasi bagaimana membina Selenium Grid. Pengajar menyampaikan video menerangkan konsep yang sama yang dijelaskan dalam blog ini.

Tutorial Selenium Grid Untuk Pemula | Tutorial Selenium | Edureka

Jadi, itu membawa kita ke akhir blog Selenium Grid ini. Sekiranya anda mempunyai keraguan atau masalah dengan kod / kandungan siri blog ini, silakan tinggalkan di bahagian komen di bawah dan saya akan menyelesaikan masalah anda secepat mungkin.

Sekiranya anda ingin belajar Selenium dan membina karier dalam domain ujian, maka periksa interaktif kami, dalam talian di sini, disertakan dengan sokongan 24 * 7 untuk membimbing anda sepanjang tempoh pembelajaran anda.

Ada soalan untuk kami? Sila sebutkan di bahagian komen dan kami akan menghubungi anda.