Kad suprastume, kaip scenarijus paleisti lygiagrečiai, pirmiausia supraskime
Kodėl mums reikia seansų tvarkymo?
Vykdant bandymą, „Selenium WebDriver“ turi nuolat bendrauti su naršykle, kad vykdytų nurodytas komandas. Vykdymo metu taip pat gali būti, kad prieš užbaigiant dabartinį vykdymą, kažkas kitas pradeda vykdyti kitą scenarijų tame pačiame kompiuteryje ir to paties tipo naršyklėje.
Tokioje situacijoje mums reikia mechanizmo, pagal kurį mūsų dvi skirtingos egzekucijos neturėtų sutapti viena su kita. Tai galima pasiekti naudojant „Session Handling in Selenium“.
Kaip pasiekti sesijų valdymą „Selenium WebDriver“?
Jei patikrinsite „Selenium WebDriver“ šaltinio kodą, rasite kintamąjį, pavadintą „sessionId“. Kai sukursime naują „WebDriver“ objekto egzempliorių, bus sukurtas naujas „sessionId“ ir pridėtas prie to konkretaus „Firefox“ / „Chrome“ / IE tvarkyklės ().
Taigi viskas, ką darome po to, bus vykdoma tik toje „Firefox“ naršyklės sesijoje.
Kadangi tai yra įmontuota funkcionalumas, nėra aiškaus poreikio priskirti seanso ID
Kodo pavyzdys: Čia bus sugeneruoti du skirtingi seansai dviem skirtingiems „WebDriver“.
importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.firefox.FirefoxDriver;viešosios klasės „SessionHandling“ {public static void main (Stygos ... stygos) {// Pirmasis „WebDriver“ seansas„WebDriver“ tvarkyklė = nauja „FirefoxDriver“ ();// Goto guru99 svetainėdriver.get („http://demo.guru99.com/V4/“);// Antrasis „WebDriver“ seansas„WebDriver“ tvarkyklė2 = nauja „FirefoxDriver“ ();// Goto guru99 svetainėvairuotojas2.get ("http://demo.guru99.com/V4/");}}
Kaip atlikti lygiagrečius bandymus su selenu
Yra situacijų, kai norite vienu metu atlikti kelis testus.
Tokiais atvejais galima naudoti „paralelinį“ atributą
Lygiagretus „suite“ žymos atributas gali priimti keturias reikšmes:
testai | Visi bandymo atvejai, esantys testavimo xml failo žymoje |
klasės | Visi „Java“ klasės bandomieji atvejai bus vykdomi lygiagrečiai |
metodai | Visi metodai su @Test anotacija bus vykdomi lygiagrečiai. |
atvejų | Bandomieji atvejai tuo pačiu atveju bus vykdomi lygiagrečiai, tačiau du skirtingų skirtingų atvejų metodai bus vykdomi skirtingose gijose. |
Atributas „thread-count“ leidžia nurodyti, kiek gijų reikėtų skirti šiam vykdymui.
Pilnas pavyzdys: Šiame pavyzdyje trys bandymo atvejai bus vykdomi lygiagrečiai ir užpildys prisijungimo duomenis svetainėje http://demo.guru99.com
Visas projektas atrodys taip:
TestGuru99MultipleSession.java
importuoti org.openqa.selenium.WebDriver;importuoti org.openqa.selenium.chrome.ChromeDriver;importuoti org.testng.annotations.Test;viešoji klasė TestGuru99MultipleSession {@Testpublic void executSessionOne () {// Pirmasis „WebDriver“ seansasSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");„WebDriver“ tvarkyklė = nauja „ChromeDriver“ ();// Goto guru99 svetainėdriver.get („http://demo.guru99.com/V4/“);// raskite vartotojo vardo teksto laukelį ir jį užpildykitedriver.findElement (By.name ("uid")). sendKeys ("Driver 1");}@Testpublic void executeSessionTwo () {// Antrasis „WebDriver“ seansasSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");„WebDriver“ tvarkyklė = nauja „ChromeDriver“ ();// Goto guru99 svetainėdriver.get („http://demo.guru99.com/V4/“);// raskite vartotojo vardo teksto laukelį ir jį užpildykitedriver.findElement (By.name ("uid")). sendKeys ("Driver 2");}@Testpublic void executSessionThree () {// Trečioji „WebDriver“ sesijaSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");„WebDriver“ tvarkyklė = nauja „ChromeDriver“ ();// Goto guru99 svetainėdriver.get („http://demo.guru99.com/V4/“);// raskite vartotojo vardo teksto laukelį ir jį užpildykitedriver.findElement (By.name ("uid")). sendKeys ("Driver 3");}}
TestNG.XML
xml version = "1.0" encoding = "UTF-8"?>
Testo atvejo tvarka ir priklausomybė
Galite nustatyti „Test Case“ vykdymo tvarką ir priklausomybę.
Tarkime, kad turite du bandymo atvejus „testGuru99TC1“ ir „testGuru99TC2“ ir norite prieš „testGuru99TC1“ atlikti bandomąjį atvejį „testGuru99TC2“. Tokiu atveju priklausomybei ir vykdymo tvarkai nustatyti naudosime atributą 'dependOnMethods'.
xml version = "1.0" encoding = "UTF-8"?>
Santrauka
- Naujam „WebDriver“ egzemplioriui sukuriamas naujas sessionID.
- Vienas seansas bus susietas su viena konkrečia naršykle.
- Naudodami atributų giją ir lygiagretę, scenarijus vykdote lygiagrečiai.
- Norėdami nustatyti užsakymą vykdyti bandymą, galite naudoti priklausomybę nuo atributo