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