Seleeni WebDriveris küpsiste käitlemine

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

Anonim

HTTP küpsis koosneb teabest kasutaja ja tema eelistuste kohta. See salvestab teavet võtme-väärtuste paari abil. See on väike osa veebirakendusest saadetud ja veebibrauserisse salvestatud andmetest, samal ajal kui kasutaja seda veebisaiti sirvib.

Küpsiste testimise kohta lisateabe saamiseks klõpsake siin.

Selles õpetuses õpime -

  • Seleeni päringukäsud küpsiste jaoks
  • Miks käsitseda seleenis küpsiseid?
  • Demo: küpsiste käitlemine seleenis.
  • 1. samm. Küpsiste teabe salvestamine.
  • 2. samm. Salvestatud küpsise kasutamine rakendusse sisselogimiseks.

Seleeni päringukäsud küpsiste jaoks

Selenium Webdriveris saame küpsiste abil päringuid teha ja nendega suhelda allpool oleva sisseehitatud meetodiga:

juht.halda (). getCookies (); // Tagastab kõigi küpsiste loendijuht.halda (). getCookieNamed (arg0); // Tagastage konkreetne küpsis vastavalt nimeledraiver.halda (). addCookie (arg0); // Looge ja lisage küpsisdriver.manage (). deleteCookie (arg0); // Kustuta konkreetne küpsisdriver.manage (). deleteCookieNamed (arg0); // Kustutage konkreetne küpsis vastavalt nimeledriver.manage (). deleteAllCookies (); // Kustuta kõik küpsised

Miks käsitseda seleenis küpsiseid?

Iga küpsis on seotud nime, väärtuse, domeeni, tee, aegumise ja olekuga, kas see on turvaline või mitte. Kliendi valideerimiseks sõelub server kõik need väärtused küpsises.

Veebirakenduse testimisel seleeni veebidraiveri abil peate võib-olla looma, värskendama või kustutama küpsise.

Näiteks veebipõhise osturakenduse automatiseerimisel peate paljudel automatiseerima teststsenaariumid, näiteks koha tellimine, ostukorvi vaatamine, makseteave, tellimuse kinnitus jne.

Kui küpsiseid ei salvestata, peate sisselogimistoimingu tegema iga kord, enne kui täidate ülaltoodud teststsenaariume. See pikendab teie kodeerimisvaeva ja täitmisaega.

Lahendus on küpsiste salvestamine faili. Hiljem hankige sellest failist küpsise väärtused ja lisage sellele oma praegune brauseriseanss. Selle tulemusena võite igal testimisjuhul sisselogimisetapid vahele jätta, kuna see teave on teie draiveri seansil.

Rakendusserver käsitleb teie brauseriseanssi nüüd autentituna ja viib teid otse teie taotletud URL-ile.

Demo: küpsiste käitlemine seleenis.

Demo eesmärgil kasutame veebisaiti http://demo.guru99.com/test/cookie/selenium_aut.php.

See on kaheastmeline protsess.

Samm 1) Logige rakendusse sisse ja salvestage loodud autentimisküpsis.

2. samm) kasutas salvestatud küpsist, et uuesti rakendusse sisse logida ilma kasutajatunnust ja parooli kasutamata.

1. samm. Küpsiste teabe salvestamine.

pakett CookieExample;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.util.Set;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.Cookie;avaliku klassi küpsisRead {public staatiline void main (String [] args){WebDriveri draiver;System.setProperty ("veebidraiver.chrome.driver", "G: ///chromedriver.exe");draiver = uus ChromeDriver ();driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// Sisestage e-posti aadressi ja parool, kui olete juba registreerunuddraiver.findElement (By.name ("kasutajanimi")). sendKeys ("abc123");draiver.findElement (By.name ("parool")). sendKeys ("123xyz");driver.findElement (By.name ("esita")). klõpsake ();// luua sisselogimisteabe salvestamiseks fail nimega KüpsisedFailifail = new File ("Küpsised.andmed");proovige{// Kustuta vana fail, kui see on olemasfile.delete ();file.createNewFile ();FileWriter fileWrite = uus FileWriter (fail);BufferedWriter Bwrite = uus BufferedWriter (fileWrite);// silmus küpsiseteabe saamiseks// silmus küpsiseteabe saamiseksjaoks (Cookie ck: driver.manage (). getCookies ()){Bwrite.write ((ck.getName () + ";" + ck.getValue () + ";" + ck.getDomain () + ";" + ck.getPath () + ";" + ck.getExpiry () + ";" + ck.isSecure ()));Bwrite.newLine ();}Bwrite.close ();fileWrite.close ();}saak (erand ex){ex.printStackTrace ();}}}

Koodi selgitus:

  • Looge WebDriveri eksemplar
  • Külastame veebisaiti, kasutades draiverit driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php")
  • Logige rakendusse sisse
  • Lugege küpsiste teavet kasutades
    juht.halda (). getCookies (); 
  • Salvestage küpsiseteave märkide voogude kirjutamiseks FileWriteri klassi abil ja BufferedWriter teksti kirjutamiseks faili, et luua faili Cookies.data
  • Fail "Cookies.data" salvestab kogu küpsiste teabe koos nimega "Name, Value, Domain, Path". Saame selle teabe hankida ja rakendusse sisse logida ilma sisselogimistunnuseid sisestamata.
  • Kui olete koodi ületanud, luuakse fail Cookie.data projekti kausta struktuuri, nagu on näidatud alloleval ekraanil. Avage fail Cookie.data, näete, et AUT-i sisselogimisandmed on salvestatud küpsise vormingus, vaadake allpool esile tõstetud ekraani

2. samm. Salvestatud küpsise kasutamine rakendusse sisselogimiseks.

Nüüd pääseme juurde 1. etapis loodud küpsisele ja kasutame loodud küpsist oma seansi autentimiseks rakenduses

pakett CookieExample;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.Date;import java.util.StringTokenizer;import org.openqa.selenium.Cookie;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;avalik klass CookieWrite{public staatiline void main (String [] args) {WebDriveri draiver;System.setProperty ("veebidraiver.chrome.driver", "G: //chromedriver.exe");draiver = uus ChromeDriver ();proovige {Failifail = new File ("Küpsised.andmed");FileReader fileReader = uus FileReader (fail);BufferedReader Buffreader = uus BufferedReader (fileReader);Stringi joon;while ((strline = Buffreader.readLine ())! = null) {StringTokenizer märgis = uus StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Stringi nimi = token.nextToken ();Stringi väärtus = token.nextToken ();Stringi domeen = token.nextToken ();Stringi tee = token.nextToken ();Kuupäeva aegumine = null;String val;kui (! (val = token.nextToken ()). võrdub ("null")){aegumiskuupäev = uus Kuupäev (val);}Boolean isSecure = uus loogiline (token.nextToken ()).booleanValue ();Küpsis ck = uus küpsis (nimi, väärtus, domeen, tee, aegumiskuupäev, isSecure);System.out.println (ck);juht.halda (). addCookie (ck); // See lisab salvestatud küpsise teie praegusele seansile}}} saak (erand ex) {ex.printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}

VÄLJUND: teid suunatakse otse sisselogimise edukuse ekraanile sisestamata kasutajatunnust ja parooli sisestamata

MÄRKUS. Kasutage tugevat värskendust, kui näete pärast ülaltoodud skripti käivitamist sisselogimislehte.

Järeldus

Seega võite Seleni veebidraiveri abil vältida serveris kasutajanime ja parooli sisestamist, kinnitades neid iga testi jaoks ikka ja jälle ning säästate sellega palju aega.

Selle artikli autor on Mangesh Waghmare