Da bi razumeli, kako vzporedno izvajati skripte, najprej razumemo
Zakaj potrebujemo obravnavo sej?
Med izvajanjem preizkusa mora Selenium WebDriver ves čas sodelovati z brskalnikom za izvajanje danih ukazov. V času izvajanja je možno tudi, da preden konča trenutno izvajanje, nekdo drug začne izvajati drug skript v istem računalniku in v istem tipu brskalnika.
V takšnih razmerah potrebujemo mehanizem, po katerem se najini dve različni usmrtitvi ne bi smeli prekrivati. To lahko dosežemo z uporabo Session Handling v selenu.
Kako doseči obdelavo sej v programu Selenium WebDriver?
Če preverite izvorno kodo Selenium WebDriver, boste našli spremenljivko z imenom 'sessionId'. Kadar koli ustvarimo nov primerek predmeta WebDriver, bo ustvarjen nov 'sessionId', ki bo priložen temu gonilniku Firefox / Chrome / IE ().
Torej se vse, kar naredimo po tem, izvede samo v tej seji brskalnika Firefox.
Ker gre za vgrajeno funkcionalnost, ni nujno, da dodelite ID seje
Primer kode: Tu bosta ustvarjeni dve različni seji za dva različna WebDriver.
uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.firefox.FirefoxDriver;javni razred SessionHandling {javna statična void main (niz ... nizi) {// Prva seja WebDriverjaGonilnik WebDriver = novi FirefoxDriver ();// Pojdi na stran guru99driver.get ("http://demo.guru99.com/V4/");// Druga seja WebDriverjaGonilnik WebDriver2 = nov FirefoxDriver ();// Pojdi na stran guru99driver2.get ("http://demo.guru99.com/V4/");}}
Kako izvajati vzporedne teste s selenom
Obstajajo situacije, ko želite zagnati več preskusov hkrati.
V takih primerih lahko uporabimo "vzporedni" atribut
Vzporedni atribut suite tag lahko sprejme štiri vrednosti:
preskusi | Vsi testni primeri znotraj oznake |
razredih | Vsi testni primeri znotraj razreda Java se bodo izvajali vzporedno |
metode | Vse metode z oznako @Test se bodo izvajale vzporedno. |
primerov | Testni primeri v istem primerku se bodo izvajali vzporedno, dve metodi dveh različnih primerkov pa se bosta izvajali v različni niti. |
Atribut count-thread vam omogoča, da določite, koliko niti naj bo dodeljenih za to izvedbo.
Popoln primer: V tem primeru se bodo trije testni primeri izvajali vzporedno in izpolnili prijavne podatke na http://demo.guru99.com
Celoten projekt bo videti tako:
TestGuru99MultipleSession.java
uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;javni razred TestGuru99MultipleSession {@Testpublic void executSessionOne () {// Prva seja WebDriverjaSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");Gonilnik WebDriver = nov ChromeDriver ();// Pojdi na stran guru99driver.get ("http://demo.guru99.com/V4/");// poiščemo besedilno polje z uporabniškim imenom in ga izpolnimodriver.findElement (By.name ("uid")). sendKeys ("Driver 1");}@Testjavna praznina executeSessionTwo () {// Druga seja WebDriverjaSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");Gonilnik WebDriver = nov ChromeDriver ();// Pojdi na stran guru99driver.get ("http://demo.guru99.com/V4/");// poiščemo besedilno polje z uporabniškim imenom in ga izpolnimodriver.findElement (By.name ("uid")). sendKeys ("Driver 2");}@Testpublic void executSessionThree () {// Tretja seja WebDriverjaSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");Gonilnik WebDriver = nov ChromeDriver ();// Pojdi na stran guru99driver.get ("http://demo.guru99.com/V4/");// poiščemo besedilno polje z uporabniškim imenom in ga izpolnimodriver.findElement (By.name ("uid")). sendKeys ("Driver 3");}}
TestNG.XML
xml version = "1.0" encoding = "UTF-8"?>
Vrstni red in odvisnost testnega primera
Nastavite lahko vrstni red in odvisnost izvedbe testnega primera.
Recimo, da imate dva testna primera, 'testGuru99TC1' in 'testGuru99TC2' in želite zagnati testni primer 'testGuru99TC2' pred 'testGuru99TC1'. V tem primeru bomo uporabili atribut 'dependOnMethods' za določitev odvisnosti in vrstni red izvedbe.
xml version = "1.0" encoding = "UTF-8"?>
Povzetek
- Za nov primerek WebDriverja je ustvarjen nov sessionID.
- Ena seja bo vezana na en določen brskalnik.
- Z uporabo niti atributov in vzporedno izvajate svoje skripte vzporedno.
- Z odvisnostjo od atributov lahko nastavite vrstni red za preizkus izvajanja