Seleno tinklelio nustatymas paskirstytam seleno tyrimui



Šis tinklaraštis padės suprasti „Selenium Grid“ poreikį ir jo pranašumus. Perskaitykite jį, kad sukonfigūruotumėte pirmąjį „Selenium“ tinklelį sukonfigūruodami centrą ir mazgus.

Kituose šios „Selenium“ vadovėlių ciklo tinklaraščiuose kalbama apie bandomųjų atvejų kūrimą ir tų bandomųjų atvejų vykdymą nuosekliai ir lygiagrečiai. Taigi paskutinė diskusijoms palikta technika yra bandomųjų atvejų vykdymas nuotolinėse mašinose. „Selenium Grid“ gali būti naudojamas atliekant šiuos bandymus nuotolinėse mašinose / pagrindiniuose kompiuteriuose. Vadinasi, šiandienos dienoraščio tema yra diskusijų tema.

  1. Kodėl ir kada naudoti seleno tinklelį?
  2. Kas yra seleno tinklelis?
  3. 1 seleno tinklelis ir 2 seleno tinklelis
  4. Seleno tinklelio architektūra
  5. Seleno tinklelio statyba

Kodėl ir kada naudoti seleno tinklelį?

Yra tiek daug žiniatinklio naršyklių, kurios naudojamos šiandien. Vartotojai gali skaityti šį tinklaraštį naudodami „Chrome“ ar „Firefox“, „Safari“ ar „Opera“ ar net „Internet Explorer“. Jie gali naudoti skirtingas naršyklių versijas. Jie taip pat gali naudoti šias naršykles bet kurioje OS, ar tai būtų „Windows“, ar „Mac“, ar „Ubuntu“, ar bet kuris kitas „Linux“ platintojas.





Ką daryti, jei vartotojai mato ką nors svarbaus internete? Kažkas svarbaus jūsų verslui. Ar nenorite nueiti tą papildomą mylią (išbandyti žiniatinklio programą), tik norėdami užtikrinti, kad jūsų vartotojai ir (arba) klientai gautų geriausią vartotojo patirtį? Norėtum, tiesa?

Na, jūs turėtumėte!



Tačiau kyla klausimas, kiek tai įmanoma? Ar galėsite praleisti laiką išbandydami savo žiniatinklio programą visose įmanomose OS ir visose prieinamose žiniatinklio naršyklėse? Hmm, tai skamba kaip šioks toks iššūkis. Štai kur „Selenium Grid“ atitinka sąskaitą ir padedataupykite savo laiką ir energiją.

Be to, kyla dar vienas klausimas: Ar įmanoma Selenium tinklo infrastruktūrą sukurti naudojant vietines sistemas? Tinklelio su visomis reikalingomis naršyklėmis ir operacinėmis sistemomis palaikymas yra iššūkis. Tam yra kelios internetinės platformos, teikiančios internetinį „Selen“ tinklelį, prie kurio galite prieiti, norėdami paleisti savo seleno automatikos scenarijus. Pavyzdžiui, galite naudoti „LambdaTest“ . Jame yra daugiau nei 2000 naršyklės aplinkų, kuriose galite atlikti savo bandymus ir tikrai automatizuoti naršyklės testavimą.

Kas yra seleno tinklelis?

„Selenium Grid“ yra dar viena svarbi „Selenium“ įrankių rinkinio priemonė. „Grid“ gali koordinuoti „WebDriver“ testus / RC testus, kurie vienu metu gali būti vykdomi keliose žiniatinklio naršyklėse arba gali būti inicijuojami skirtingose ​​operacinėse sistemose arba netgi talpinami skirtingose ​​mašinose.



tinklelio darbas - seleno tinklelisTaigi, kaip tai pavyksta? „Grid“ naudoja „Hub-Node“ architektūrą, kur yra vienas centras, kuris veikia kaip pagrindinis, ir vienas ar daugiau mazgų, veikiančių kaip vergai.

Tai reiškia, kad jei turite iš viso 100 darbų / testų, kuriuos reikia atlikti, tada testus galima vienu metu atlikti 5 mašinose, kur kiekviena mašina atliks 20 bandymų. Tiesą sakant, šiuos bandymus galite atlikti skirtingose ​​operacinių sistemų ir naršyklių kombinacijose. Kiekviena mašina čia gali būti skirtingos OS, o kiekvienos OS viduje bandymai gali būti atliekami skirtingose ​​naršyklėse.

Šis veiksmas lengvai sutaupys daug jūsų laiko atliekant bandymą. Jei atsižvelgsite į pirmiau pateiktą pavyzdį, vykdymo laiką galime sutrumpinti iki maždaug 1/5 viso laiko, reikalingo atlikti bandymus vienoje mašinoje.

Jei galite prisiminti iš mano ankstesnių tinklaraščių, aš daugybę kartų minėjau, kad „Grid“ buvo projekto „Selenium“ dalis nuo pat jo įkūrimo, t. Y. Nuo „Selenium v1“. „Selenium Grid“ taip pat buvo „Selenium v2“ dalis ir šiuo metu ji yra „Selenium v3“ dalis. Seleno tinklelio v2 ir v3 skirtumų nėra daug. Tačiau v1 palyginti turi daug skirtumų. Taigi, leiskimesuprasti skirtumus tarp v1 ir v2.

1 seleno tinklelis ir 2 seleno tinklelis

Esminis skirtumas tarp „Grid v1.0“ ir „v2.0“ yra tas, kad RC buvo naudojamas 1 tinklelyje, o „WebDriver“ - 2 tinklelyje. Toliau pateiktoje lentelėje išsamiai paaiškinami skirtumai.

1 tinklelis 2 tinklelis
Reikia įdiegti „Apache Ant“„Apache Ant“ diegti nereikia
Turi savo nuotolinio valdymo pultą (tai skiriasi nuo RC serverio)Komplekte su „Selenium Server“ indelio failu
Palaiko tik „Selenium RC“ komandasPalaiko „Selenium RC“ ir „WebDriver“ scenarijus
Kiekviename nuotolinio valdymo pulte galite automatizuoti tik vieną naršyklęViename nuotolinio valdymo pulte galite automatizuoti iki 5 naršyklių


Sužinoję esminius abiejų versijų skirtumus, pasinerkime į seleno tinklelį.

Seleno tinklelio architektūra

Kaip jau minėjau anksčiau, „Grid“ veikia pagal vieną centrą ir kelis mazgus. Bet kas yra „Hub“ ir „Nodes“ ir ką jie veikia?

Stebulė

Bet kurioje tinklelio sąrankoje gali būti tik vienas koncentratorius ir tai bus centrinis taškas toje tinklelio sąrankoje. Visi bandymai, kuriuos reikia atlikti, turėtų būti įkelti čia. Nepaisant čia įkeliamų bandymų, jie bus vykdomi tik mazguose. Mes galime sukonfigūruoti bet kurią pagrindinę mašiną kaip savo centrą, ir ji koordinuos bandymo vykdymo veiklą kituose pagrindiniuose kompiuteriuose.

Kad tai įvyktų, pirmiausia turime sukonfigūruoti koncentratorių ir tada padaryti kitus mazgus, kad jie galėtų užsiregistruoti centre. Prieš pradėdamas per daug detalių, leiskite man parodyti komandą sukonfigūruoti stebulę.

Konfigūruoti stebulę

Pirmiausia turite atsisiųsti „Selenium“ serverio JAR failą iš „Seleniumhq“ svetainės. Nuoroda yra čia . Taip pat turite įsitikinti, kad jūsų sistemoje įdiegta „Java“ ir nustatyti aplinkos kintamieji.

Atsisiųsdami „jar“ failą, turite jį įdėti į atitinkamą katalogą. Kad būtų patogiau, atsisiunčiau ir įdėjau į aplanką „Selenium“, esantį C diske. Taip pat rekomenduojama atsisiųsti „jar“ failą ir įdėti jį į panašų katalogą visuose kituose mazguose.

Norėdami sukonfigūruoti koncentratorių, turite paleisti komandą „Windows“ komandų eilutėje. Komanda pateikiama žemiau esančiame fragmente.

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

selen-server-standalone-3.4.0.jar yra atsisiųsto jar failo pavadinimas.
vaidmuo vėliava naudojama nustatyti tą pagrindinę kompiuterį kaip stebulę. Paspaudę „Enter“, ekrane gausite žemiau pateiktą išvestį.

kas yra egzemplioriaus kintamasis java

Jei nepastebėjote minėtos ekrano kopijos, pamatykite ją dar kartą. Tai sako ' -Nodes turėtų užsiregistruoti adresu http://192.168.0.11:4444/grid/register „. Dabar, kai koncentratorius yra sukonfigūruotas, turime nustatyti mazgus ir prijungti juos prie šio centro.

192.168.0.11 yra koncentratoriaus IP adresas, o kiekvienas mazgas turėtų prisijungti prie šio IP adreso. 4444 yra numatytasis prievado numeris, kuriuo „Selenium Grid“ priglobiama ir jis klauso užklausų. Jei 4444 uoste veikia kita paslauga ir norite, kad „Selenium Grid“ būtų priglobtas kitame uoste, tai galite padaryti nurodydami -portas vėliava ir uosto numeris.

Mazgai

„Nodes“ yra pagrindinės mašinos, kuriomis vykdomi bandymai. Šiuos bandymus pradės centras. Stebulė gali paleisti vieną ar daugiau mazgų nuotolinėse mašinose arba toje pačioje mašinoje, kurioje yra pats stebulė. Kiekviename iš mazgų galima paleisti skirtingas operacines sistemas, o skirtingose ​​operacinėse sistemose galima inicijuoti skirtingas tos pačios naršyklės ar skirtingų naršyklių versijas.

Konfigūruoti mazgus

Panašiai kaip ir „Hub“, pirmiausia turite atsisiųsti „Jar“ failą į „Node“ mašinas ir savo patogumui įdėti jį į „C“ diską ar bet kurį kitą įprastą katalogą. Tada galite paleisti žemiau esančią komandą „Windows“ komandų eilutėje. Jei net „Node“ paleidžiate tame pačiame kompiuteryje kaip ir „Hub“, turite paleisti komandą paleidę kitą komandų eilutę.

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

Šioje komandoje yra tik keli skirtumai, palyginti su komanda, reikalinga „Hub“ paleisti.
-Dwebdriver.chrome.driver = E: chromedriver.exe naudojamas nustatyti naršyklės tvarkyklės kelią. Panašiai kaip nustatydami naršyklės tvarkyklės kelią „WebDriver“ kode, čia nurodykite jį taip, kad mazgas galėtų atlikti bandymus. Nuo „Selenium v3“ turite atsisiųsti tvarkyklės naršyklę, skirtą „Firefox“. „Firefox“ naršyklės tvarkyklė yra „Gecko“ tvarkyklė. Tačiau 1 ir 2 versijose turite nustatyti naršyklės tvarkyklę visoms naršyklėms, išskyrus „Firefox“.
vaidmens mazgas vėliava naudojama nustatyti tą pagrindinę kompiuterį kaip mazgą.
-hub http://192.168.0.11:4444/grid/register informuoja Mazgą prisijungti prie „Hub“ naudojant „Hub“ IP adresą. Svarbu atkreipti dėmesį į tai, kad jei paleidžiate bet kurį mazgą tame pačiame kompiuteryje, kuriame yra jūsų „Hub“, tada galite nurodyti -hub http: // localhost: 4444 / grid / register ‘Komandoje vietoj„ Hub “IP adreso.

kaip rasti duomenų tipą python

Paspaudę Enter, komandinėje eilutėje gausite žemiau pateiktą išvestį.

Dabar mazgas jau būtų prijungtas prie stebulės. Galite įsitikinti, kad grįžę į komandų eilutę, naudojamą „Hub“ paleidimui, pastebėsite šį pranešimą: Užregistruotas mazgas http://192.168.0.11:5555 „.

IP adresas ir prievado numeris yra jūsų mazgo adresas. Kadangi savo mazgą turiu tame pačiame kompiuteryje, kaip ir „Hub“, mazgui naudojamas prievadas yra 5555. Kai jį inicijuosite kitoje mašinoje, bus naudojamas numatytasis prievadas.

Paleisdami šį URL į savo „Hub“ įrenginį, gausite prie jūsų „Hub“ prijungtų mazgų būseną. Žr. Paryškintą dalį toliau pateiktoje ekrano kopijoje.

Dabar, kai jūsų „Selen“ tinklelis sukonfigūruotas, galite pradėti vykdyti bandomuosius scenarijus „Nodes“. Leiskite man dar kartą pabrėžti, kad mes turime paleisti scenarijus savo centre ir jie bus vykdomi mūsų mazguose. Testams atlikti naudojamas scenarijus yra panašus į „WebDriver“testai.

A seleno tinklelio statyba

Vykdžiau scenarijų „Eclipse IDE“. Šio scenarijaus vykdymas priklauso nuo dviejų svarbių bibliotekos paketų. Jie yra Norimos galimybės objektas ir „RemoteWebDriver“ objektas.

„DesiredCapability“ naudojama norint nustatyti naršyklės tipą ir mūsų mazgo OS. Norėdami importuoti „DesiredCapabilities“ objektą, naudokite žemiau pateiktą kodą.

importuoti org.openqa.selenium.remote.DesiredCapabilities

„RemoteWebDriver“ naudojamas pasirinkti mazgą, kuriame norime atlikti bandymą. Norėdami importuoti „RemoteWebDriver“ objektą, naudokite toliau nurodytas kodo eilutes.

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

Importavau šiuos du paketus kartu su „TestNG“ komentarų paketu savo scenarijui, kaip parodyta žemiau esančiame kodo fragmente. Importavau „TestNG“ anotacijas, nes tai įvykdžiau kaip „TestNG“ testą, kuriam bus sukurta išsami ataskaita. Aš rekomenduočiau jums importuoti tą patį paketų rinkinį savo kodui.

Manevruodami bet kurios naršyklės, esančios „Selenium Hub“ konsolėje, logotipus, gausite tokią informaciją kaip: naršyklės vardas ir platforma mazgo, kurį norite automatizuoti. Vaizde taip pat nurodoma, kiek naršyklių egzempliorių galiu atidaryti savo mazge. Galiu sukonfigūruoti ne daugiau kaip 5 „Chrome“, 5 „Firefox“ ir 1 „Internet Explorer“ egzempliorius. Ši informacija pateikiama toliau pateiktoje ekrano kopijoje.

Norėdami nustatyti pirmąjį tinklelį, galite naudoti žemiau esančiame fragmente pateiktą kodą.

paketas „GridTest“ importas org.testng.annotations. AfterTest importas org.testng.annotations.BeforeTest importuoti org.testng.annotations.Test importuoti java.net.MalformedURLException importuoti java.net.URL importuoti org.junit.Assert importuoti org.openqa.selenium .Platform importuoti org.openqa.selenium.WebDriver importuoti org.openqa.selenium.remote.DesiredCapilities importuoti org.openqa.selenium.remote.RemoteWebDriver viešosios klasės „TestGrid“ {statinės „WebDriver“ tvarkyklės statinės eilutės nodeUrl @BeforeTest viešosios negalios nustatymas nodeUrl = 'http://192.168.0.11:5555/wd/hub' DesiredCapilities pajėgumai = DesiredCapabilities.chrome () képességės.setBrowserName ('chrome') galimybės.setPlatform (Platform.WINDOWS) tvarkyklė = naujas RemoteWebDriver (naujas URL (nodeUrl) ), pajėgumai)} @Test public void simpleTest () Edureka ', driver.getTitle ()) @AfterTest public void afterTest () {driver.quit ()}}

Visą testo scenarijų padalinau į tris testo anotacijas. @BeforeTest, @Test ir @AfterTest. „@BeforeTest“ naudodamas „DesiredCapablities“ ir „RemoteWebDriver“ objektus sukonfigūravau savo mazgą. „@Test“ metu paprašiau Mazgo pereiti į pagrindinį „Edureka“ puslapį ir patvirtinti puslapio pavadinimą. Programoje @AfterTest paprašiau mazgo uždaryti naršyklės egzempliorių.

Kai jūsų testas bus vykdomas, gausite žemiau pateiktą išvestį.

2017 m. Gegužės 18 d. 15:09:07 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Aptikta tarmė: OSS PASSED: simpleTest ===================== ========================== Numatytasis bandymas Testai vykdomi: 1, Gedimai: 0, Praleidimai: 0 ========== ===================================== ============= ================================== Numatytasis rinkinys Iš viso atliktų bandymų: 1, Gedimai: 0, Praleidimai: 0 = =================================================

Kadangi tai vykdoma kaip „TestNG“ testas, gausite išsamią bandymo ataskaitą, panašią į toliau pateiktą ekrano kopiją.

Jei nežinote, kas yra „TestNG“ ir kaip naudoti testo anotacijas, perskaitykite mano tinklaraštį, kaip naudoti „Selen WebDriver“ su „TestNG“ iš šios „Selenium“ mokymo programos.

Toliau pateiktą vaizdo įrašą galite pamatyti, kaip parodyti, kaip pastatyti seleno tinklelį. Vaizdo įrašą pristatantis instruktorius paaiškina tas pačias šiame tinklaraštyje paaiškintas sąvokas.

Seleno tinklelio pamoka pradedantiesiems Seleno pamoka | Edureka

Taigi, tai atveda prie šio „Selenium Grid“ tinklaraščio pabaigos. Jei turite kokių nors abejonių ar problemų dėl šio tinklaraščio serijos kodo / turinio, palikite juos toliau pateiktame komentarų skyriuje ir aš išspręsiu jūsų problemą anksčiausiai.

Jei norite išmokti seleno ir kurti karjerą bandymų srityje, peržiūrėkite mūsų interaktyvų internetą čia yra 24 * 7 palaikymas, kuris padės jums mokytis.

Turite mums klausimą? Prašau paminėti tai komentarų skiltyje ir mes su jumis susisieksime.