Paralleelne täitmine seleenis: seansside haldamine & TestNG sõltuvus

Lang L: none (table-of-contents):

Anonim

Et mõista, kuidas skripte paralleelselt käivitada, mõistame kõigepealt

Miks me vajame seansihaldust?

Testi käivitamise ajal peab Selenium WebDriver antud käskude täitmiseks kogu aeg brauseriga suhtlema. Käivitamise ajal on ka võimalik, et enne praeguse käivitamise alustamist alustab keegi teine ​​teise skripti käivitamist samas masinas ja sama tüüpi brauseris.

Sellises olukorras vajame mehhanismi, mille abil meie kaks erinevat hukkamist ei tohiks üksteisega kattuda. Seda saab saavutada seleenikäsitluse abil seleenis.

Kuidas saavutada seansikäsitlus seleeni WebDriveris?

Kui kontrollite Seleeni WebDriveri lähtekoodi, leiate muutuja nimega 'sessionId'. Alati, kui loome uue WebDriveri objekti eksemplari, genereeritakse ja kinnitatakse Firefoxi / Chrome'i / IE draiveriga () uus 'sessionId'.

Nii et kõik, mida me pärast seda teeme, täidetakse ainult selles konkreetses Firefoxi brauseriseansis.

Kuna see on sisseehitatud funktsionaalsus, pole seansi ID määramist selgesõnaliselt vaja

Koodinäide: Siin luuakse kahe erineva WebDriveri jaoks kaks erinevat seanssi.

import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;avaliku klassi SessionHandling {avalik staatiline void main (String ... stringid) {// WebDriveri esimene seanssWebDriveri draiver = uus FirefoxDriver ();// Goto guru99 saitdriver.get ("http://demo.guru99.com/V4/");// WebDriveri teine ​​seanssWebDriver driver2 = uus FirefoxDriver ();// Goto guru99 saitdraiver2.get ("http://demo.guru99.com/V4/");}}

Kuidas paralleelseid katseid seleeniga läbi viia

On olukordi, kus soovite korraldada mitu testi korraga.

Sellistel juhtudel võib kasutada atribuuti "paralleelne"

Suite-märgendi paralleelne atribuut võib aktsepteerida nelja väärtust:

testid Kõik xml-faili testimise sildi sees olevad testjuhtumid jooksevad paralleelselt.
klassides Kõik Java klassi sees olevad testjuhtumid jooksevad paralleelselt
meetodid Kõiki meetodeid, millel on @Test annotatsioon, käivitatakse paralleelselt.
juhtumeid Samal eksemplaril olevad testjuhtumid viivad läbi paralleelselt, kuid erinevas lõimes töötavad kaks meetodit kahest erinevast eksemplarist.

Atribuudi thread-count abil saate määrata, mitu lõime peaks selle täitmise jaoks eraldama.

Täielik näide: Selles näites töötab kolm testjuhtumit paralleelselt ja täidavad sisselogimisandmed saidil http://demo.guru99.com

Kogu projekt näeb välja selline:

TestGuru99MultipleSession.java

import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;avalik klass TestGuru99MultipleSession {@Testpublic void executSessionOne () {// WebDriveri esimene seanssSystem.setProperty ("veebidraiver.chrome.driver", "chromedriver.exe");WebDriveri draiver = uus ChromeDriver ();// Goto guru99 saitdriver.get ("http://demo.guru99.com/V4/");// leia kasutajanime tekstikast ja täida seedriver.findElement (By.name ("uid")). sendKeys ("Driver 1");}@Testpublic void executeSessionTwo () {// WebDriveri teine ​​seanssSystem.setProperty ("veebidraiver.chrome.driver", "chromedriver.exe");WebDriveri draiver = uus ChromeDriver ();// Goto guru99 saitdriver.get ("http://demo.guru99.com/V4/");// leia kasutajanime tekstikast ja täida seedraiver.findElement (By.name ("uid")). sendKeys ("Driver 2");}@Testpublic void executSessionThree () {// WebDriveri kolmas seanssSystem.setProperty ("veebidraiver.chrome.driver", "chromedriver.exe");WebDriveri draiver = uus ChromeDriver ();// Goto guru99 saitdriver.get ("http://demo.guru99.com/V4/");// leia kasutajanime tekstikast ja täida seedriver.findElement (By.name ("uid")). sendKeys ("Driver 3");}}

TestNG.XML

Testjuhtumite järjekord ja sõltuvus

Saate määrata testjuhtumi täitmise järjekorra ja sõltuvuse.

Oletame, et teil on kaks testjuhtu „testGuru99TC1” ja „testGuru99TC2” ning soovite enne testi „testGuru99TC1” käivitada testjuhtumi „testGuru99TC2”. Sel juhul kasutame sõltuvuse ja täitmise järjekorra määramiseks atribuuti 'dependOnMethods'.

Kokkuvõte

  • WebDriveri uue eksemplari jaoks luuakse uus sessionID.
  • Üks seanss seotakse ühe konkreetse brauseriga.
  • Atribuutide lõime ja paralleeli abil käivitate skriptid paralleelselt.
  • Atribuudisõltuvuse abil saate määrata tellimuse täitmise testimiseks