Parallell utförande i selen: sessionhantering & TestNG Beroende

Innehållsförteckning:

Anonim

För att förstå hur man kör skript parallellt, låt oss först förstå det

Varför behöver vi sessionhantering?

Under testkörningen måste Selenium WebDriver interagera med webbläsaren hela tiden för att utföra givna kommandon. Vid tidpunkten för körningen är det också möjligt att någon annan, innan den aktuella körningen är klar, körning av ett annat skript, i samma maskin och i samma typ av webbläsare.

I en sådan situation behöver vi en mekanism genom vilken våra två olika avrättningar inte bör överlappa varandra. Detta kan uppnås med Session Handling in Selenium.

Hur uppnås sessionhantering i Selen WebDriver?

Om du kontrollerar källkoden för Selenium WebDriver hittar du en variabel med namnet 'sessionId'. Närhelst vi skapar en ny instans av ett WebDriver-objekt kommer en ny 'sessionId' att genereras och bifogas med just den Firefox / Chrome / IE-drivrutinen ().

Så allt vi gör efter detta kommer bara att köras i just den Firefox-webbläsarsessionen.

Eftersom detta är en inbyggd funktionalitet finns det inget uttryckligt behov av att tilldela session-id

Kodexempel: Här skapas två olika sessioner för två olika WebDriver.

importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.firefox.FirefoxDriver;public class SessionHandling {public static void main (String ... strings) {// Första sessionen i WebDriverWebDriver-drivrutin = ny FirefoxDriver ();// Gå till webbplatsen Guru99driver.get ("http://demo.guru99.com/V4/");// Andra sessionen i WebDriverWebDriver driver2 = ny FirefoxDriver ();// Gå till webbplatsen Guru99driver2.get ("http://demo.guru99.com/V4/");}}

Hur man kör parallella tester med selen

Det finns situationer där du vill köra flera tester samtidigt.

I sådana fall kan man använda "parallellt" attribut

Det parallella attributet för svitstaggen kan acceptera fyra värden:

tester Alla testfall i -taggen för Testing xml-filen körs parallellt.
klasser Alla testfall i en Java-klass körs parallellt
metoder Alla metoder med @Test-anteckningen körs parallellt.
instanser Testfall i samma instans körs parallellt men två metoder för två olika instanser körs i olika trådar.

Attributtrådräkningen låter dig ange hur många trådar som ska tilldelas för denna körning.

Komplett exempel: I det här exemplet körs tre testfall parallellt och fyller inloggningsdata på http://demo.guru99.com

Hela projektet kommer att se ut:

TestGuru99MultipleSession.java

importera org.openqa.selenium.WebDriver;importera org.openqa.selenium.chrome.ChromeDriver;importera org.testng.annotations.Test;offentlig klass TestGuru99MultipleSession {@Testapublic void executSessionOne () {// Första sessionen i WebDriverSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver-drivrutin = ny ChromeDriver ();// Gå till webbplatsen Guru99driver.get ("http://demo.guru99.com/V4/");// hitta användarnamns textruta och fyll i dendriver.findElement (By.name ("uid")). sendKeys ("Driver 1");}@Testapublic void executeSessionTwo () {// Andra sessionen i WebDriverSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver-drivrutin = ny ChromeDriver ();// Gå till webbplatsen Guru99driver.get ("http://demo.guru99.com/V4/");// hitta användarnamns textruta och fyll i dendriver.findElement (By.name ("uid")). sendKeys ("Driver 2");}@Testapublic void executSessionThree () {// Tredje sessionen för WebDriverSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver-drivrutin = ny ChromeDriver ();// Gå till webbplatsen Guru99driver.get ("http://demo.guru99.com/V4/");// hitta användarnamns textruta och fyll i dendriver.findElement (By.name ("uid")). sendKeys ("Driver 3");}}

TestNG.XML

Testa fallordning och beroende

Du kan ställa in ordning och beroende av utförandet av testfall.

Antag att du har två testfall, 'testGuru99TC1' och 'testGuru99TC2' och att du vill köra testfall 'testGuru99TC2' före 'testGuru99TC1'. I så fall använder vi attributet 'dependsOnMethods' för att göra beroende och ordning på utförandet.

Sammanfattning

  • Ett nytt sessionID skapas för en ny instans av WebDriver.
  • En session kommer att bindas med en viss webbläsare.
  • Med attributtråd och parallell kör du dina skript parallellt.
  • Du kan använda attributberoende för att ställa in ordningen för testutförande