Parallel udførelse i selen: Sessionshåndtering & TestNG-afhængighed

Indholdsfortegnelse:

Anonim

Lad os først forstå, hvordan man kører scripts parallelt

Hvorfor har vi brug for sessionhåndtering?

Under testudførelse skal Selenium WebDriver interagere med browseren hele tiden for at udføre givne kommandoer. På tidspunktet for udførelsen er det også muligt, at før en anden udførelse er afsluttet, starter en anden udførelse af et andet script i samme maskine og i samme type browser.

I en sådan situation har vi brug for en mekanisme, hvormed vores to forskellige henrettelser ikke skal overlappe hinanden. Dette kan opnås ved hjælp af Session Handling i Selen.

Hvordan opnås sessionhåndtering i Selen WebDriver?

Hvis du tjekker kildekoden til Selenium WebDriver, finder du en variabel, der hedder 'sessionId'. Når vi opretter en ny forekomst af et WebDriver-objekt, genereres en ny 'sessionId' og vedhæftes med den pågældende Firefox / Chrome / IE-driver ().

Så alt, hvad vi gør efter dette, udføres kun i den pågældende Firefox-browsersession.

Da dette er en indbygget funktionalitet, er der ikke noget eksplicit behov for at tildele session-id'et

Kodeeksempel: Her genereres to forskellige sessioner til to forskellige WebDriver.

import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;offentlig klasse SessionHandling {public static void main (String ... strings) {// Første session med WebDriverWebDriver-driver = ny FirefoxDriver ();// Gå til guru99-websteddriver.get ("http://demo.guru99.com/V4/");// Anden session af WebDriverWebDriver driver2 = ny FirefoxDriver ();// Gå til guru99-websteddriver2.get ("http://demo.guru99.com/V4/");}}

Sådan køres parallelle tests med selen

Der er situationer, hvor du vil køre flere tests på samme tid.

I sådanne tilfælde kan man bruge "parallel" attribut

Den parallelle attribut for suite-tag kan acceptere fire værdier:

test Alle testtilfælde i -tagget for Testing xml-fil kører parallelt.
klasser Alle testcases i en Java-klasse kører parallelt
metoder Alle metoder med @Test-kommentar udføres parallelt.
tilfælde Testsager i samme instans udføres parallelt, men to metoder i to forskellige forekomster kører i forskellige tråde.

Attributttrådtællingen giver dig mulighed for at specificere, hvor mange tråde der skal tildeles til denne udførelse.

Komplet eksempel: I dette eksempel kører tre testsager parallelt og udfylder logindata på http://demo.guru99.com

Det komplette projekt vil se ud som:

TestGuru99MultipleSession.java

import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;offentlig klasse TestGuru99MultipleSession {@Prøvepublic void executSessionOne () {// Første session med WebDriverSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver-driver = ny ChromeDriver ();// Gå til guru99-websteddriver.get ("http://demo.guru99.com/V4/");// find tekstfelt brugernavn og udfyld detdriver.findElement (By.name ("uid")) sendKeys ("Driver 1");}@Prøvepublic void executeSessionTwo () {// Anden session af WebDriverSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver-driver = ny ChromeDriver ();// Gå til guru99-websteddriver.get ("http://demo.guru99.com/V4/");// find tekstfelt brugernavn og udfyld detdriver.findElement (By.name ("uid")). sendKeys ("Driver 2");}@Prøvepublic void executSessionThree () {// Tredje session af WebDriverSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver-driver = ny ChromeDriver ();// Gå til guru99-websteddriver.get ("http://demo.guru99.com/V4/");// find tekstfelt brugernavn og udfyld detdriver.findElement (By.name ("uid")) sendKeys ("Driver 3");}}

TestNG.XML

Test sagsrækkefølge og afhængighed

Du kan indstille rækkefølge og afhængighed af udførelse af testsag.

Antag, at du har to testsager, 'testGuru99TC1' og 'testGuru99TC2', og at du vil udføre testcase 'testGuru99TC2' før 'testGuru99TC1'. I så fald bruger vi attributten 'dependsOnMethods' til at gøre afhængighed og rækkefølge for udførelse.

Resumé

  • Et nyt sessionID oprettes til en ny forekomst af WebDriver.
  • Én session bindes med en bestemt browser.
  • Ved hjælp af attributtråd og parallel kører du dine scripts parallelt.
  • Du kan bruge attributafhængighed til at indstille rækkefølgen til testudførelse