Pagse-set up ng isang Selenium Grid para sa ibinahagi na pagsubok sa Selenium



Tutulungan ka ng blog na ito na maunawaan ang pangangailangan para sa Selenium Grid at mga benepisyo nito. Basahin ito upang mai-set up ang iyong unang Selenium Grid sa pamamagitan ng pag-configure ng mga hub at node.

Ang iba pang mga blog sa Selenium tutorial series na ito ay nagsasalita tungkol sa paglikha ng mga kaso ng pagsubok at pagpapatupad ng mga kaso ng pagsubok na magkakasunud-sunod at magkapareho. Kaya, ang pangwakas na pamamaraan na natitira para sa talakayan ay pagpapatupad ng mga kaso ng pagsubok sa mga malalayong machine. Maaaring magamit ang Selenium Grid para sa pagpapatupad ng mga pagsubok na ito sa mga remote machine / host. Samakatuwid, iyon ang paksa ng talakayan ng blog ngayon.

  1. Bakit at kailan gagamitin ang Selenium Grid?
  2. Ano ang Selenium Grid?
  3. Selenium Grid 1 kumpara sa Selenium Grid 2
  4. Arkitektura ng Selenium Grid
  5. Pagbuo ng isang Selenium Grid

Bakit at Kailan Gumamit ng Selenium Grid?

Maraming mga web browser na ginagamit ngayon. Ang mga gumagamit ay maaaring gumagamit ng alinman sa Chrome o Firefox o Safari o Opera o maging sa Internet Explorer para sa pagbabasa ng mismong blog na ito. Maaaring gumagamit sila ng iba't ibang mga bersyon ng mga browser. Maaari din nilang patakbuhin ang mga browser na ito sa anumang OS, maging sa Windows o Mac o Ubuntu o anumang iba pang pamamahagi ng Linux.





Paano kung ang mga gumagamit ay nakakakita ng isang bagay na mahalaga sa internet? Isang bagay na mahalaga sa iyong negosyo. Hindi mo nais na pumunta sa labis na milyang iyon (pagsubok sa web app) upang matiyak lamang na ang iyong mga gumagamit at / o mga customer ay nakakuha ng pinakamahusay na karanasan ng gumagamit? Gusto mo, tama?

Kaya, dapat!



Ngunit ang tanong ay, gaano ito magagawa? Magagastos mo ba ang oras sa pagsubok sa iyong web app sa bawat posibleng OS at bawat magagamit na web browser? Hmm, parang hamon iyon. Dito nababagay ang Selenium Grid sa singil at tumutulongmakatipid ng iyong oras at lakas.

Bilang karagdagan sa ito, isa pang tanong ang lumitaw, Posible bang i-set up ang imprastraktura ng Selenium grid gamit ang mga lokal na system? Ang pagpapanatili ng isang grid sa lahat ng kinakailangang mga browser at operating system ay isang hamon. Para sa mga ito, maraming mga online platform na nagbibigay ng isang online na Selenium Grid na maaari mong ma-access upang patakbuhin ang iyong mga script ng awtomatikong selenium. Halimbawa, maaari mong gamitin LambdaTest . Mayroon itong higit sa 2000 mga kapaligiran sa browser kung saan maaari mong patakbuhin ang iyong mga pagsubok at tunay na pagsubok sa automatecross-browser.

Ano ang Selenium Grid?

Ang Selenium Grid ay isa pang mahalagang tool sa Selenium suite ng mga tool. May kakayahang i-coordinate ang Grid ng mga pagsubok sa WebDriver / RC test na maaaring tumakbo nang sabay-sabay sa maraming mga web browser o maaaring simulan sa iba't ibang mga operating system o kahit na mai-host sa iba't ibang mga machine.



nagtatrabaho ang grid - selenium gridKaya, paano ito gagana? Gumagamit ang Grid ng isang arkitektura ng Hub-Node kung saan, mayroong isang Hub, na gumaganap bilang master at isa o higit pang mga Node na kumikilos bilang mga alipin.

Ang ibig sabihin nito ay, kung mayroon kang isang kabuuang 100 mga trabaho / pagsubok na kailangang maipatupad, pagkatapos ang mga pagsubok ay maaaring maisagawa nang sabay-sabay sa 5 mga makina, kung saan ang bawat machine ay tatakbo sa 20 mga pagsubok. Sa katunayan, maaari mong maisagawa ang mga pagsubok na ito sa iba't ibang mga kumbinasyon ng mga operating system at browser. Ang bawat machine dito ay maaaring magkakaibang OS at sa loob ng bawat OS, ang mga pagsubok ay maaaring isagawa sa iba't ibang mga browser.

Ang kilos na ito ay madaling makatipid sa maraming oras mo sa pagpapatupad ng pagsubok. Kung isasaalang-alang mo ang halimbawa sa itaas, maaari naming bawasan ang oras ng pagpapatupad sa halos 1/5 ng kabuuang oras na ginugol upang magpatupad ng mga pagsubok sa isang solong makina.

Kung maaari mong isipin mula sa aking nakaraang mga blog, nabanggit ko ang isang hindi mabilang na bilang ng beses na ang Grid ay bahagi ng proyekto ng Selenium mula nang magsimula ito ibig sabihin mula noong Selenium v1. Ang Selenium Grid ay bahagi din ng Selenium v2 at kasalukuyang bahagi ito ng Selenium v3. Walang gaanong pagkakaiba sa v2 at v3 ng Selenium Grid. Gayunpaman, ang v1 ay may maraming mga pagkakaiba kumpara. Kaya, tayomaunawaan ang mga pagkakaiba sa pagitan ng v1 at v2.

Selenium Grid 1 kumpara sa Selenium Grid 2

Ang pangunahing pagkakaiba sa pagitan ng Grid v1.0 at v2.0 ay iyon, ang RC ay ginamit sa Grid 1, at ang WebDriver ay ginamit sa Grid 2. Ipinapaliwanag ng talahanayan sa ibaba ang mga pagkakaiba-iba sa detalye.

Grid 1 Grid 2
Kinakailangan na mai-install ang Apache AntHindi kinakailangan ang pag-install ng Apache Ant
May sariling remote control (Iba ito sa RC server)Naka-bundle sa file ng jar ng Selenium Server
Sinusuportahan lamang ang mga utos ng Selenium RCSinusuportahan ang parehong mga script ng Selenium RC at WebDriver
Maaari mo lamang i-automate ang isang browser bawat remote controlMaaari mong i-automate ang hanggang sa 5 mga browser bawat remote control


Ngayong natutunan natin ang mga pangunahing pagkakaiba sa pagitan ng dalawang bersyon, hayaang sumisid tayo sa Selenium Grid.

Arkitektura Ng Selenium Grid

Tulad ng nabanggit ko kanina, gumana ang Grid batay sa isang Hub at maraming Node. Ngunit, ano ang Hub at Nodes at ano ang ginagawa nila?

Ang Hub

Sa anumang pag-set up ng Grid, maaaring magkaroon lamang ng isang Hub at iyon ang magiging gitnang punto sa setup ng Grid na iyon. Ang lahat ng mga pagsubok na kailangang ipatupad ay dapat na mai-load dito. Sa kabila ng mga pagsubok na nai-load dito, isasagawa lamang ito sa mga Node. Maaari naming mai-configure ang anumang host machine upang maging aming Hub, at ito ay magsasama sa mga aktibidad ng pagpapatupad ng pagsubok sa iba pang mga host.

Upang mangyari ito, kailangan muna naming i-configure ang Hub, at pagkatapos ay gumawa ng iba pang mga Node upang magparehistro sa Hub. Bago ako magpunta sa napakaraming mga detalye, hayaan mo akong ipakita sa iyo ang utos na i-configure ang Hub.

Pag-configure ng Hub

Kailangan mo munang i-download ang Selenium server JAR file mula sa website ng Seleniumhq. Ang link ay dito . Kailangan mo ring tiyakin na ang Java ay naka-install sa iyong system at ang mga variable ng kapaligiran ay nakatakda.

Kapag na-download mo ang jar file, kailangan mong ilagay ito sa isang naaangkop na direktoryo. Para sa aking kaginhawaan, na-download ko ito at inilagay sa Selenium folder sa C Drive. Inirerekumenda na i-download mo rin ang file ng jar at ilagay ito sa isang katulad na direktoryo sa lahat ng iba pang mga node.

Upang mai-configure ang Hub, kailangan mong patakbuhin ang utos sa windows command prompt. Ang utos ay naroroon sa snippet sa ibaba.

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

Ang selenium-server-standalone-3.4.0.jar ang pangalan ng file ng jar na na-download ko.
Ang -gampanan ginagamit ang watawat upang itakda ang partikular na host machine bilang Hub. Kapag na-hit ang enter, makukuha mo ang output sa ibaba sa iyong screen.

Kung sakaling hindi mo napansin ang screenshot sa itaas, pagkatapos ay makita itong muli. Sinasabi nito na ' -Node dapat magparehistro sa http://192.168.0.11iputi444/grid/register ‘. Ngayon na na-configure ang Hub, kailangan naming i-set up ang Mga Node at ikonekta ang mga ito sa Hub na ito.

Ang 192.168.0.11 ay ang IP address ng Hub, at ang bawat Node ay dapat na kumonekta sa IP address na ito. Ang 4444 ay ang default na numero ng port kung saan nai-host ang Selenium Grid at nakikinig para sa mga kahilingan. Kung ang ilang iba pang serbisyo ay tumatakbo sa port 4444 at nais mong i-host ang Selenium Grid sa ibang port, maaari mo itong gawin sa pamamagitan ng pagtukoy sa -port bandila na sinusundan ng numero ng port.

Ang mga Node

Ang mga Node ay ang mga host machine kung saan pinapatakbo ang mga pagsubok. Ang mga pagsubok na ito ay ilulunsad ng Hub. Ang Hub ay maaaring maglunsad ng isa o higit pang mga Node alinman sa mga remote machine o sa parehong makina kung saan matatagpuan ang Hub mismo. Sa bawat isa sa mga Node, ang iba't ibang mga operating system ay maaaring ma-boot, at sa iba't ibang mga operating system, maaaring simulan ang iba't ibang mga bersyon ng parehong browser o iba't ibang mga browser.

Pag-configure ng Mga Node

Katulad ng Hub, kailangan mo munang i-download ang Jar file sa mga Node machine at ilagay ito sa C Drive o anumang iba pang karaniwang direktoryo para sa iyong kaginhawaan. Pagkatapos ay maaari mong patakbuhin ang utos sa ibaba sa prompt ng utos ng Windows. Kung naglulunsad ka kahit ng Node sa parehong makina ng iyong Hub, kailangan mong patakbuhin ang utos sa pamamagitan ng pagsisimula ng isa pang prompt ng utos.

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

Mayroong ilang mga pagkakaiba lamang sa utos na ito kumpara sa kinakailangang utos upang simulan ang Hub.
-Dwebdriver.chrome.driver = E: chromedriver.exe ay ginagamit upang itakda ang landas ng driver ng browser. Katulad ng pagtatakda ng landas ng driver ng browser sa iyong WebDriver code, tinukoy mo ito dito upang paganahin ang Node upang magsagawa ng mga pagsubok. Mula sa Selenium v3 pataas, kailangan mong i-download ang driver browser para sa Firefox. Ang driver ng browser para sa Firefox ay driver ng Gecko. Gayunpaman, sa mga bersyon 1 at 2, kailangan mong itakda ang driver ng browser para sa lahat ng mga browser bukod sa Firefox.
-butang node ginagamit ang watawat upang itakda ang partikular na host machine bilang Node.
-hub http://192.168.0.11iputi444/grid/register ipinapaalam sa Node upang kumonekta sa Hub sa pamamagitan ng paggamit ng IP address ng Hub. Ang isang mahalagang puntong dapat tandaan ay na kung naglulunsad ka ng anumang Node sa parehong makina ng iyong Hub, maaari mong tukuyin ang ‘ -hub http: // localhost: 4444 / grid / register ‘Sa utos sa halip na ang IP address ng Hub.

Kapag na-hit ang enter, makukuha mo ang output sa ibaba sa prompt ng utos.

Sa ngayon, ang Node ay konektado sa Hub. Maaari mong i-verify na sa pamamagitan ng pagbalik sa command prompt na ginamit para sa pagsisimula ng Hub at mapapansin mo ang sumusunod na mensahe: ‘ Nirehistro ang isang node http://192.168.0.11 Agosto555 ‘.

Ang IP address at numero ng port ay ang iyong Node. Dahil nasa akin ang aking Node sa parehong makina ng aking Hub, ang port na ginamit para sa Node ay 5555. Kapag pinasimulan mo ito sa ilang iba pang makina, gagamitin ang default port.

Kapag inilunsad mo ang sumusunod na URL sa machine ng iyong Hub, makukuha mo ang katayuan ng mga Node na konektado sa iyong Hub. Tingnan ang naka-highlight na bahagi sa screenshot sa ibaba.

Ngayon na ang iyong Selenium Grid ay na-configure, maaari kang magpatuloy sa pagpapatupad ng mga script ng pagsubok sa Mga Node. Hayaan mo akong bigyang-diin ulit na kailangan naming magpatakbo ng mga script sa aming Hub at isasagawa ito sa aming mga Node. Ang script na ginamit upang maipatupad ang mga pagsubok ay pareho sa WebDrivermga pagsubok.

Pagbuo ng Isang Selenium Grid

Pinatakbo ko ang aking script sa Eclipse IDE. Ang pagpapatupad ng script na ito ay nakasalalay sa dalawang mahahalagang package ng library. Sila ay Mga Kakayahang nais bagay at RemoteWebDriver bagay

Ginagamit ang DesiredCapilities upang maitakda ang uri ng browser at ang OS ng aming Node. Upang mai-import ang bagay na DesiredCapilities, gamitin ang code sa ibaba.

import org.openqa.selenium.remote.DesiredCapilities

Ginagamit ang RemoteWebDriver upang piliin ang Node kung saan nais naming maisagawa ang pagsubok. Upang mag-import ng RemoteWebDriver object, gamitin ang mga linya sa ibaba ng code.

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

Na-import ko ang dalawang package na ito kasama ang pakete ng mga anotasyon ng TestNG para sa aking script tulad ng ipinakita sa ibaba ng code na snippet. Nag-import ako ng mga anotasyon ng TestNG dahil naisakatuparan ko ito bilang isang pagsubok sa TestNG kung saan bubuo ang isang detalyadong ulat. Inirerekumenda ko sa iyo na mag-import ng parehong hanay ng mga pakete para sa iyong code.

Kapag nagmaniobra ka sa mga logo ng anumang browser na naroroon sa Selenium Hub console, makukuha mo ang mga detalye tulad ng browserName at ang platform ng Node na nais mong i-automate. Ipinapahiwatig din ng imahe kung gaano karaming mga pagkakataon ng mga browser ang maaari kong buksan sa aking Node. Maaari kong i-configure ang maximum na 5 chrome, 5 Firefox at 1 mga pagkakataon sa Internet Explorer. Ang mga detalyeng ito ay naroroon sa screenshot sa ibaba.

Maaari mong gamitin ang code sa snippet sa ibaba upang mai-set up ang iyong unang Grid.

package GridTest import org.testng.annotations. AfterTest import org.testng.annotations. BagoTest import org.testng.annotations. Subukan ang pag-import ng 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.DesiredCapilities import org.openqa.selenium.remote.RemoteWebDriver public class TestGrid {static WebDriver driver static String nodeUrl @BeforeTest public malided setup (LE throws nodeUrl = 'http://192.168.0.11dagdag555/wd/hub' Mga kakayahan ng DesiredCapilities = Mga kakayahan na DesiredCapability.chrome () .setBrowserName ('chrome') mga kakayahan. setPlatform (Platform.WINDOWS) driver = bagong RemoteWebDriver (bagong URL (nodeUrl ), mga kakayahan)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest public void afterTest () {driver.quit ()}}

Hinati ko ang buong script ng pagsubok sa tatlong pagsubok na anotasyon. @BeforeTest, @Test at @AfterTest. Sa @BeforeTest, ginamit ko ang mga bagay na DesiredCapablities at RemoteWebDriver upang mai-configure ang aking Node. Sa @Test, tinanong ko ang Node na mag-navigate sa home page ng Edureka at igiit ang pamagat ng pahina. Sa @AfterTest, tinanong ko ang Node na umalis sa halimbawa ng browser.

Kapag ang iyong pagsubok ay pumasa sa pagpapatupad, makakakuha ka ng output sa ibaba.

Mayo 18, 2017 3:09:07 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Natukoy na dayalekto: OSS PASSED: simpleTest =________________________ ==== Tumatakbo ang mga default na pagsubok sa pagsubok: 1, Mga pagkabigo: 0, Mga Skip: 0 =________________ =________________________________________ == ================================== Default na suite Kabuuang mga pagsubok na tumatakbo: 1, Mga pagkabigo: 0, Mga Laktawan: 0 = =________________________________________________________

Dahil ito ay naisakatuparan bilang isang pagsubok sa TestNG, makakakuha ka ng isang detalyadong ulat sa pagsubok na katulad ng pagbaril sa screen sa ibaba.

Kung hindi mo alam kung ano ang TestNG at kung paano gamitin ang mga anotasyon sa pagsubok, pagkatapos basahin ang aking blog tungkol sa kung paano gamitin Selenium WebDriver kasama ang TestNG mula sa seryeng serye ng tutorial na ito.

Maaari mong makita ang video sa ibaba upang saksihan ang isang pagpapakita kung paano bumuo ng isang Selenium Grid. Ang nagtuturo na naghahatid ng video ay nagpapaliwanag ng parehong mga konsepto na ipinaliwanag sa blog na ito.

Selenium Grid Tutorial Para sa Mga Nagsisimula | Selenium Tutorial | Edureka

Kaya, dadalhin tayo nito sa pagtatapos ng Selenium Grid blog na ito. Kung mayroon kang anumang pag-aalinlangan o isyu sa anumang code / nilalaman ng seryeng blog na ito, mangyaring iwanan ang mga ito sa seksyon ng mga komento sa ibaba at malulutas ko ang iyong problema sa pinakamaagang.

ano ang isang token java

Kung nais mong malaman ang Selenium at bumuo ng isang karera sa domain ng pagsubok, pagkatapos suriin ang aming interactive, live-online dito, kasama yan ng 24 * 7 na suporta upang gabayan ka sa buong panahon ng iyong pag-aaral.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento at babalikan ka namin.