Rinnakkainen suoritus seleenissä: Istunnon käsittely & TestNG-riippuvuus

Sisällysluettelo:

Anonim

Ymmärrämme ensin komentosarjojen suorittamisen rinnakkain

Miksi tarvitsemme istuntojen käsittelyä?

Testin suorittamisen aikana Selenium WebDriverin on oltava jatkuvasti selaimen kanssa tekemisissä annettujen komentojen kanssa. Suoritushetkellä on myös mahdollista, että joku muu aloittaa toisen komentosarjan suorittamisen ennen nykyisen suorituksen päättymistä samassa koneessa ja samantyyppisessä selaimessa.

Tällaisessa tilanteessa tarvitsemme mekanismin, jolla kaksi erilaista teloitustamme ei saisi olla päällekkäisiä. Tämä voidaan saavuttaa käyttämällä seleniumin istuntojen käsittelyä.

Kuinka saavuttaa istunnon käsittely Selenium WebDriver -sovelluksessa?

Jos tarkistat Selenium WebDriverin lähdekoodin, löydät muuttujan nimeltä 'sessionId'. Aina kun luot uuden WebDriver-objektin esiintymän, uusi 'sessionId' luodaan ja liitetään kyseiseen Firefox / Chrome / IE-ohjaimeen ().

Joten mitä teemme tämän jälkeen, suoritetaan vain kyseisessä Firefox-selainistunnossa.

Koska tämä on sisäänrakennettu toiminto, istuntotunnusta ei tarvitse nimenomaisesti määrittää

Koodiesimerkki: Täällä luodaan kaksi erilaista istuntoa kahdelle eri WebDriverille.

tuo org.openqa.selenium.WebDriver;tuo org.openqa.selenium.firefox.FirefoxDriver;julkisen luokan SessionHandling {public staattinen void main (String… merkkijonot) {// WebDriverin ensimmäinen istuntoWebDriver-ohjain = uusi FirefoxDriver ();// Siirry guru99-sivustoondriver.get ("http://demo.guru99.com/V4/");// WebDriverin toinen istuntoWebDriver-ohjain2 = uusi FirefoxDriver ();// Siirry guru99-sivustoondriver2.get ("http://demo.guru99.com/V4/");}}

Kuinka suorittaa rinnakkaiset testit seleenillä

On tilanteita, joissa haluat suorittaa useita testejä samanaikaisesti.

Tällaisissa tapauksissa voidaan käyttää "parallel" -attribuuttia

Suite-tunnisteen rinnakkainen attribuutti voi hyväksyä neljä arvoa:

testit Kaikki testitapaukset Xml-tiedoston testaamisen -tagin sisällä kulkevat rinnakkain.
luokat Kaikki Java-luokan testitapaukset suoritetaan rinnakkain
menetelmiä Kaikki @Test-merkinnällä varustetut menetelmät suoritetaan rinnakkain.
tapauksia Testitapaukset samassa instanssissa suoritetaan rinnakkain, mutta kaksi eri instanssin menetelmää suoritetaan eri säikeessä.

Määritteen säikeiden määrä avulla voit määrittää, kuinka monta säiettä tulisi allokoida tälle suoritukselle.

Täydellinen esimerkki: Tässä esimerkissä kolme testitapausta kulkee rinnakkain ja täyttävät kirjautumistiedot osoitteessa http://demo.guru99.com

Koko projekti näyttää tältä:

TestGuru99MultipleSession.java

tuo org.openqa.selenium.WebDriver;tuo org.openqa.selenium.chrome.ChromeDriver;tuo org.testng.annotations.Test;julkinen luokka TestGuru99MultipleSession {@Testatapublic void executSessionOne () {// WebDriverin ensimmäinen istuntoSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver-ohjain = uusi ChromeDriver ();// Siirry guru99-sivustoondriver.get ("http://demo.guru99.com/V4/");// etsi käyttäjänimi -tekstikenttä ja täytä sedriver.findElement (By.name ("uid")). sendKeys ("Driver 1");}@Testatapublic void executeSessionTwo () {// WebDriverin toinen istuntoSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver-ohjain = uusi ChromeDriver ();// Siirry guru99-sivustoondriver.get ("http://demo.guru99.com/V4/");// etsi käyttäjänimi -tekstikenttä ja täytä sedriver.findElement (By.name ("uid")). sendKeys ("Driver 2");}@Testatapublic void executSessionThree () {// WebDriverin kolmas istuntoSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver-ohjain = uusi ChromeDriver ();// Siirry guru99-sivustoondriver.get ("http://demo.guru99.com/V4/");// etsi käyttäjänimi -tekstikenttä ja täytä sedriver.findElement (By.name ("uid")). sendKeys ("Driver 3");}}

TestNG.XML

Testitapausten järjestys ja riippuvuus

Voit asettaa testitapauksen suorittamisen järjestyksen ja riippuvuuden.

Oletetaan, että sinulla on kaksi testitapausta, 'testGuru99TC1' ja 'testGuru99TC2', ja haluat suorittaa testitapauksen 'testGuru99TC2' ennen 'testGuru99TC1'. Tällöin käytämme riippuvuutta ja suoritusjärjestystä 'attribOnMethods' -attribuutilla.

Yhteenveto

  • Uusi sessionID luodaan uudelle WebDriver-ilmentymälle.
  • Yksi istunto sitoutuu yhteen tiettyyn selaimeen.
  • Käyttäen attribuuttiketjua ja rinnakkaista, suoritat komentosarjat rinnakkain.
  • Määrityksen riippuvuuden avulla voit asettaa tilauksen testaamaan suorituksen