Paralelno izvršavanje u selenu: Rukovanje sesijom & Ovisnost o testNG-u

Sadržaj:

Anonim

Da bismo razumjeli kako paralelno pokretati skripte, prvo shvatimo

Zašto nam treba rukovanje sesijom?

Tijekom izvršavanja testa, Selenium WebDriver mora cijelo vrijeme komunicirati s preglednikom kako bi izvršio zadane naredbe. U vrijeme izvršavanja također je moguće da, prije trenutnog izvršavanja, netko drugi započne izvršavanje druge skripte, na istom stroju i u istoj vrsti preglednika.

U takvoj situaciji potreban nam je mehanizam po kojem se naše dvije različite egzekucije ne bi trebale međusobno preklapati. To se može postići korištenjem Session Handlinga u selenu.

Kako postići rukovanje sesijama u Selenium WebDriver?

Ako provjerite izvorni kod programa Selenium WebDriver, pronaći ćete varijablu nazvanu 'sessionId'. Kad god kreiramo novu instancu objekta WebDriver, generirat će se novi 'sessionId' i priložiti uz taj određeni upravljački program Firefox / Chrome / IE ().

Dakle, sve što radimo nakon ovoga izvršit ćemo samo u toj određenoj sesiji preglednika Firefox.

Budući da je ovo ugrađena funkcionalnost, nema izričite potrebe za dodjeljivanjem ID-a sesije

Primjer koda: Ovdje će se generirati dvije različite sesije za dva različita WebDrivera.

uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.firefox.FirefoxDriver;javni razred SessionHandling {javna statička void glavna (String ... stringovi) {// Prva sesija WebDriveraUpravljački program za WebDriver = novi FirefoxDriver ();// Idite na web mjesto guru99driver.get ("http://demo.guru99.com/V4/");// Druga sesija WebDriveraUpravljački program WebDriver2 = novi FirefoxDriver ();// Idite na web mjesto guru99driver2.get ("http://demo.guru99.com/V4/");}}

Kako pokrenuti paralelne testove sa selenom

Postoje situacije u kojima želite istodobno pokrenuti više testova.

U takvim se slučajevima može koristiti atribut "paralelno"

Paralelni atribut suite oznake može prihvatiti četiri vrijednosti:

ispitivanja Svi test slučajevi unutar oznake datoteke Testing xml vršit će se paralelno.
razreda Svi testovi unutar Java klase izvodit će se paralelno
metode Sve metode s oznakom @Test izvršavat će se paralelno.
instanci Test slučajevi u istoj instanci izvršavat će se paralelno, ali dvije metode dviju različitih instanci pokrenut će se u različitim nitima.

Atribut count-count omogućuje vam određivanje koliko niti treba biti dodijeljeno za ovo izvršavanje.

Potpuni primjer: U ovom će se primjeru tri testna slučaja odvijati paralelno i ispunjavati podatke za prijavu na http://demo.guru99.com

Kompletni projekt izgledat će ovako:

TestGuru99MultipleSession.java

uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;javna klasa TestGuru99MultipleSession {@Testjavna praznina executSessionOne () {// Prva sesija WebDriveraSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");Upravljački program WebDriver = novi ChromeDriver ();// Idite na web mjesto guru99driver.get ("http://demo.guru99.com/V4/");// pronađite okvir za tekst korisničkog imena i popunite gadriver.findElement (By.name ("uid")). sendKeys ("Driver 1");}@Testjavna praznina executeSessionTwo () {// Druga sesija WebDriveraSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");Upravljački program WebDriver = novi ChromeDriver ();// Idite na web mjesto guru99driver.get ("http://demo.guru99.com/V4/");// pronađite okvir za tekst korisničkog imena i popunite gadriver.findElement (By.name ("uid")). sendKeys ("Driver 2");}@Testjavna void executSessionThree () {// Treća sesija WebDriveraSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");Upravljački program WebDriver = novi ChromeDriver ();// Idite na web mjesto guru99driver.get ("http://demo.guru99.com/V4/");// pronađite okvir za tekst korisničkog imena i popunite gadriver.findElement (By.name ("uid")). sendKeys ("Driver 3");}}

TestNG.XML

Redoslijed i ovisnost testnog slučaja

Možete postaviti redoslijed i ovisnost izvršenja test slučaja.

Pretpostavimo da imate dva test slučaja, 'testGuru99TC1' i 'testGuru99TC2' i želite izvršiti test slučaj 'testGuru99TC2' prije 'testGuru99TC1'. U tom ćemo slučaju koristiti atribut 'dependOnMethods' za izradu ovisnosti i redoslijed izvršenja.

Sažetak

  • Stvoren je novi sessionID za novu instancu WebDrivera.
  • Jedna se sesija veže uz određeni preglednik.
  • Koristeći nit atributa i paralelno, paralelno pokrećete svoje skripte.
  • Ovisnost o atributima možete koristiti za postavljanje naloga za testiranje izvršenja