Paralēla izpilde selēnā: sesiju apstrāde & TestNG atkarība

Satura rādītājs:

Anonim

Lai saprastu, kā skriptus darbināt paralēli, vispirms sapratīsim

Kāpēc mums ir nepieciešama sesiju apstrāde?

Testa izpildes laikā Selenium WebDriver ir nepārtraukti jāsadarbojas ar pārlūku, lai izpildītu dotās komandas. Izpildes laikā ir arī iespējams, ka pirms pašreizējās izpildes pabeigšanas kāds cits sāk izpildīt citu skriptu tajā pašā mašīnā un tāda paša veida pārlūkprogrammā.

Šādā situācijā mums ir nepieciešams mehānisms, ar kura palīdzību mūsu divi dažādi nāvessodi nedrīkst pārklāties. To var panākt, izmantojot sesiju apstrādi selēnā.

Kā panākt sesiju apstrādi selēna WebDriver?

Pārbaudot Selenium WebDriver pirmkodu, jūs atradīsit mainīgo ar nosaukumu 'sessionId'. Ikreiz, kad mēs izveidojam jaunu WebDriver objekta gadījumu, tiks izveidots jauns 'sessionId' un pievienots konkrētajam Firefox / Chrome / IE draiverim ().

Tātad viss, ko mēs darīsim pēc tam, tiks izpildīts tikai konkrētajā Firefox pārlūka sesijā.

Tā kā šī ir iebūvēta funkcionalitāte, nav skaidri jāpiešķir sesijas ID

Koda piemērs: Šeit tiks ģenerētas divas dažādas sesijas diviem dažādiem WebDriver.

importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.firefox.FirefoxDriver;publiskā klase SessionHandling {public static void main (Stīgas ... stīgas) {// WebDriver pirmā sesijaWebDriver draiveris = jauns FirefoxDriver ();// Goto guru99 vietnedriver.get ("http://demo.guru99.com/V4/");// WebDriver otrā sesijaWebDriver draiveris2 = new FirefoxDriver ();// Goto guru99 vietnedraiveris2.get ("http://demo.guru99.com/V4/");}}

Kā veikt paralēlus testus ar selēnu

Pastāv situācijas, kad vēlaties vienlaikus veikt vairākus testus.

Šādos gadījumos var izmantot atribūtu "paralēli"

Paralēla komplekta taga atribūts var pieņemt četras vērtības:

testi Visi testa gadījumi, kas atrodas tagā Testēšanas xml failā, darbosies paralēli.
klases Visi testa gadījumi Java klasē notiks paralēli
metodes Visas metodes ar @Tot anotāciju tiks izpildītas paralēli.
gadījumi Pārbaudes gadījumi vienā un tajā pašā instancē tiks izpildīti paralēli, bet divas dažādu eksemplāru metodes darbosies dažādos pavedienos.

Atribūts thread-count ļauj norādīt, cik pavedienu jāpiešķir šai izpildei.

Pilnīgs piemērs: Šajā piemērā trīs testa gadījumi darbosies paralēli un aizpildīs pieteikšanās datus vietnē http://demo.guru99.com

Pilns projekts izskatīsies šādi:

TestGuru99MultipleSession.java

importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.chrome.ChromeDriver;importēt org.testng.annotations.Test;publiskā klase TestGuru99MultipleSession {@Pārbaudepublic void executSessionOne () {// WebDriver pirmā sesijaSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver draiveris = jauns ChromeDriver ();// Goto guru99 vietnedriver.get ("http://demo.guru99.com/V4/");// atrodiet lietotāja vārda tekstlodziņu un aizpildiet todriver.findElement (By.name ("uid")). sendKeys ("Driver 1");}@Pārbaudepublic void executeSessionTwo () {// WebDriver otrā sesijaSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver draiveris = jauns ChromeDriver ();// Goto guru99 vietnedriver.get ("http://demo.guru99.com/V4/");// atrodiet lietotāja vārda tekstlodziņu un aizpildiet todriver.findElement (By.name ("uid")). sendKeys ("Driver 2");}@Pārbaudepublic void executSessionThree () {// WebDriver trešā sesijaSystem.setProperty ("webdriver.chrome.driver", "chromedriver.exe");WebDriver draiveris = jauns ChromeDriver ();// Goto guru99 vietnedriver.get ("http://demo.guru99.com/V4/");// atrodiet lietotāja vārda tekstlodziņu un aizpildiet todriver.findElement (By.name ("uid")). sendKeys ("Driver 3");}}

TestNG.XML

Testa lietu kārtība un atkarība

Jūs varat iestatīt testa gadījuma izpildes kārtību un atkarību.

Pieņemsim, ka jums ir divi testa gadījumi: “testGuru99TC1” un “testGuru99TC2”, un pirms testa “testGuru99TC1” vēlaties izpildīt testa gadījumu “testGuru99TC2”. Tādā gadījumā mēs izmantosim atribūtu 'dependOnMethods', lai izveidotu atkarību un izpildes kārtību.

Kopsavilkums

  • Jaunam WebDriver gadījumam tiek izveidots jauns sessionID.
  • Viena sesija tiks piesaistīta vienam konkrētam pārlūkam.
  • Izmantojot atribūtu pavedienu un paralēli, skripti tiek palaisti paralēli.
  • Varat izmantot atribūta atkarību, lai iestatītu pasūtījumu izpildes pārbaudei