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 |
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
xml version = "1.0" encoding = "UTF-8"?>
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.
xml version = "1.0" encoding = "UTF-8"?>
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