Rinnakkaissuoritus sisään Selenium

Ymmärtääksemme skriptien ajamisen rinnakkain, ymmärrämme ensin

Miksi tarvitsemme istunnonkäsittelyä?

Testin suorittamisen aikana Selenium WebDriverin on oltava vuorovaikutuksessa selaimen kanssa koko ajan suorittaakseen annettuja komentoja. Suoritushetkellä on myös mahdollista, että joku muu aloittaa toisen skriptin suorittamisen ennen kuin nykyinen suoritus on valmis, samassa koneessa ja samantyyppisessä selaimessa.

Istunnon käsittely

Tällaisessa tilanteessa tarvitsemme mekanismin, jolla meidän kaksi erilaista teloitusta eivät saisi mennä päällekkäin. Tämä voidaan saavuttaa käyttämällä istunnonkäsittelyä Selenium.

Kuinka saavuttaa istunnon käsittely Selenium WebDriver?

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

Saavuta istunnon hallinta Selenium web-ajuri

Joten kaikki, mitä teemme tämän jälkeen, suoritetaan vain kyseisessä kohdassa Firefox selaimen istunto.

Saavuta istunnon hallinta Selenium web-ajuri

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

Esimerkki koodista: Tässä luodaan kaksi eri istuntoa kahdelle eri WebDriverille.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class SessionHandling {
public static void main(String...strings ){
    //First session of WebDriver
    WebDriver driver = new FirefoxDriver();
    //Goto guru99 site
    driver.get("https://demo.guru99.com/V4/");
    
    //Second session of WebDriver
    WebDriver driver2 = new FirefoxDriver();
    //Goto guru99 site
    driver2.get("https://demo.guru99.com/V4/");
}
}

Kuinka suorittaa rinnakkaistestejä Selenium

On tilanteita, joissa haluat suorittaa useita testejä samanaikaisesti.

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

Suorita rinnakkaistestit kanssa Selenium

Suite-tunnisteen rinnakkaisattribuutti voi hyväksyä neljä arvoa:

testit Kaikki testikotelot sisällä tunniste Testaus xml-tiedosto toimii rinnakkain.
luokat Kaikki testitapaukset sisällä a Java luokka kulkee rinnakkain
menetelmät Kaikki menetelmät, joissa on @Test-merkintä, suoritetaan rinnakkain.
tapauksia Saman esiintymän testitapaukset suoritetaan rinnakkain, mutta kahden eri esiintymän kaksi menetelmää suoritetaan eri säikeessä.

Attribuutilla thread-count voit määrittää, kuinka monta säiettä tälle suoritukselle varataan.

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

Täydellinen projekti näyttää tältä:

Suorita rinnakkaistestit kanssa Selenium

TestGuru99MultipleSession.java

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
public class TestGuru99MultipleSession {
    @Test    
    public void executSessionOne(){
            //First session of WebDriver
        System.setProperty("webdriver.chrome.driver","chromedriver.exe");
            WebDriver driver = new ChromeDriver();
            //Goto guru99 site
            driver.get("https://demo.guru99.com/V4/");
            //find user name text box and fill it
            driver.findElement(By.name("uid")).sendKeys("Driver 1");
            
        }
        
    @Test    
        public void executeSessionTwo(){
            //Second session of WebDriver
        System.setProperty("webdriver.chrome.driver","chromedriver.exe");
        WebDriver driver = new ChromeDriver();
            //Goto guru99 site
        driver.get("https://demo.guru99.com/V4/");
        //find user name text box and fill it
        driver.findElement(By.name("uid")).sendKeys("Driver 2");
        
        }
        
    @Test    
        public void executSessionThree(){
            //Third session of WebDriver
        System.setProperty("webdriver.chrome.driver","chromedriver.exe");
        WebDriver driver = new ChromeDriver();
            //Goto guru99 site
        driver.get("https://demo.guru99.com/V4/");
        //find user name text box and fill it
        driver.findElement(By.name("uid")).sendKeys("Driver 3");
        
        }        
}

TestNG.XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" thread-count="3" parallel="methods" >
<test name="testGuru">
<classes>
<class name="TestGuru99MultipleSession">
</class>
</classes>
</test>
</suite>

Testitapausten järjestys ja riippuvuus

Voit asettaa järjestyksen ja riippuvuuden Testitapaus suoritus.

Oletetaan, että sinulla on kaksi testitapausta 'testGuru99TC1' ja 'testGuru99TC2' ja haluat suorittaa testitapauksen 'testGuru99TC2' ennen 'testGuru99TC1'. Siinä tapauksessa käytämme 'dependsOnMethods' -attribuuttia riippuvuuden ja suoritusjärjestyksen määrittämiseen.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" thread-count="3" parallel="methods" >
<test name="testGuru">
<classes>
<class name="TestGuru99MultipleSession">
<include value="testGuru99TC1" dependsOnMethods=" testGuru99TC2"/>
<include value="testGuru99TC2"/>
</class>
</classes>
</test>
</suite>

Yhteenveto

  • Uusi istuntotunnus luodaan uudelle WebDriverin esiintymälle.
  • Yksi istunto sitoutuu yhteen tiettyyn selaimeen.
  • Attribuuttien säiettä ja rinnakkaisuutta käyttämällä suoritat skriptejäsi rinnakkain.
  • Voit käyttää attribuuttiriippuvuutta asettaaksesi järjestyksen testattavaksi