Evästeiden käsittely Selenium WebDriver -sovelluksessa

Sisällysluettelo:

Anonim

HTTP-eväste sisältää tietoja käyttäjästä ja hänen asetuksistaan. Se tallentaa tietoja avainarvoparin avulla. Se on pieni osa tietoa, joka lähetetään verkkosovelluksesta ja tallennetaan verkkoselaimeen, kun käyttäjä selaa kyseistä verkkosivustoa.

Napsauta tätä saadaksesi lisätietoja evästeiden testaamisesta.

Tässä opetusohjelmassa opimme -

  • Selenium Query -komennot evästeille
  • Miksi käsitellä evästeitä seleenissä?
  • Demo: Evästeiden käsittely Seleniumissa.
  • Vaihe 1) Evästetietojen tallentaminen.
  • Vaihe 2) Tallennetun evästeen käyttö kirjautumalla sovellukseen.

Selenium Query -komennot evästeille

Selenium Webdriver -sovelluksessa voimme tehdä kyselyjä ja olla yhteydessä evästeisiin alla olevalla sisäänrakennetulla menetelmällä:

kuljettaja.hallinta (). getCookies (); // Palauta kaikkien evästeiden luettelokuljettaja.hallinta (). getCookieNamed (arg0); // Palauta tietty eväste nimen mukaandriver.manage (). addCookie (arg0); // Luo ja lisää evästedriver.manage (). deleteCookie (arg0); // Poista tietty evästedriver.manage (). deleteCookieNamed (arg0); // Poista tietty eväste Nimen mukaandriver.manage (). deleteAllCookies (); // Poista kaikki evästeet

Miksi käsitellä evästeitä seleenissä?

Jokaiseen evästeeseen liittyy nimi, arvo, verkkotunnus, polku, vanhentuminen ja tila, onko se suojattu vai ei. Asiakkaan vahvistamiseksi palvelin jäsentää kaikki nämä arvot evästeessä.

Kun testaat verkkosovellusta seleeni-web-ohjaimella, sinun on ehkä luotava, päivitettävä tai poistettava eväste.

Esimerkiksi online-ostosovellusta automatisoitaessa sinun on automatisoitava testiskenaarioita, kuten paikkatilaus, Näytä ostoskori, Maksutiedot, tilauksen vahvistus jne.

Jos evästeitä ei ole tallennettu, sinun on suoritettava kirjautumistoiminto joka kerta ennen kuin suoritat yllä lueteltuja testiskenaarioita. Tämä lisää koodausta ja suoritusaikaa.

Ratkaisu on tallentaa evästeet tiedostoon. Hae myöhemmin evästeen arvot tästä tiedostosta ja lisää siihen nykyinen selainistuntosi. Tämän seurauksena voit ohittaa sisäänkirjautumisvaiheet jokaisessa testitapauksessa, koska kuljettajaistunnossasi on nämä tiedot.

Sovelluspalvelin käsittelee nyt selainistuntoasi todennettuna ja vie sinut suoraan pyydettyyn URL-osoitteeseen.

Demo: Evästeiden käsittely Seleniumissa.

Käytämme http://demo.guru99.com/test/cookie/selenium_aut.php esittelytarkoitukseemme.

Tämä on kaksivaiheinen prosessi.

Vaihe 1) Kirjaudu sovellukseen ja tallenna luotu todennuseväste.

Vaihe 2) Käytti tallennettua evästettä uudestaan ​​kirjautumiseen sovellukseen ilman käyttäjätunnusta ja salasanaa.

Vaihe 1) Evästetietojen tallentaminen.

paketti CookieExample;tuo java.io.BufferedWriter;tuo java.io.File;tuo java.io.FileWriter;tuo java.util.Set;tuo org.openqa.selenium.By;tuo org.openqa.selenium.WebDriver;tuo org.openqa.selenium.chrome.ChromeDriver;tuo org.openqa.selenium.Cookie;public class cookieRead {public staattinen void main (String [] väittää){WebDriver-ohjain;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe");ohjain = uusi ChromeDriver ();driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// Syötä sähköpostiosoite ja salasana, jos olet jo rekisteröitynytdriver.findElement (By.name ("käyttäjänimi")). sendKeys ("abc123");driver.findElement (By.name ("salasana")). sendKeys ("123xyz");driver.findElement (By.name ("lähetä")). napsauta ();// luo tiedosto nimeltä Evästeet kirjautumistietojen tallentamiseksiTiedosto = uusi tiedosto ("Cookies.data");yrittää{// Poista vanha tiedosto, jos sellainen onfile.delete ();file.createNewFile ();FileWriter fileWrite = uusi FileWriter (tiedosto);BufferedWriter Bwrite = uusi BufferedWriter (fileWrite);// silmukka evästetietojen saamiseksi// silmukka evästetietojen saamiseksivarten (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 ();}saalis (poikkeus ex){ex.printStackTrace ();}}}

Koodin selitys:

  • Luo WebDriver-ilmentymä
  • Vierailemme verkkosivustolla käyttäen driver.get-tiedostoa ("http://demo.guru99.com/test/cookie/selenium_aut.php")
  • Kirjaudu sovellukseen
  • Lue evästetiedot käyttämällä
    kuljettaja.hallinta (). getCookies (); 
  • Tallenna evästetiedot FileWriter-luokan avulla merkkivirtausten kirjoittamiseen ja BufferedWriter tekstin kirjoittamiseen tiedostoon luomiseksi tiedostoksi Cookies.data
  • "Cookies.data" -tiedosto tallentaa kaikki evästetiedot sekä "nimi, arvo, toimialue, polku". Voimme noutaa nämä tiedot ja kirjautua sovellukseen syöttämättä kirjautumistietoja.
  • Kun suoritat koodin yläpuolella, Cookie.data-tiedosto luodaan projektikansiorakenteeseen alla olevan näytön mukaisesti. Avaa Cookie.data-tiedosto, näet, että AUT: n kirjautumistiedot on tallennettu evästeen muotoon, katso alla korostettu näyttö

Vaihe 2) Tallennetun evästeen käyttö kirjautumalla sovellukseen.

Nyt pääsemme vaiheessa 1 luotuun evästeeseen ja käytämme luotua evästettä todentamaan istuntomme sovelluksessa

paketti CookieExample;tuo java.io.BufferedReader;tuo java.io.File;tuo java.io.FileReader;tuo java.util.Date;tuo java.util.StringTokenizer;tuo org.openqa.selenium.Cookie;tuo org.openqa.selenium.WebDriver;tuo org.openqa.selenium.chrome.ChromeDriver;julkisen luokan CookieWrite{public staattinen void main (String [] argumentoi) {WebDriver-ohjain;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");ohjain = uusi ChromeDriver ();yrittää{Tiedosto = uusi tiedosto ("Cookies.data");FileReader fileReader = uusi FileReader (tiedosto);BufferedReader Buffreader = uusi BufferedReader (fileReader);Merkkijono;while ((strline = Buffreader.readLine ())! = null) {StringTokenizer-tunnus = uusi StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Merkkijonon nimi = token.nextToken ();Merkkijonoarvo = token.nextToken ();Merkkijonotunnus = token.nextToken ();Merkkijonopolku = token.nextToken ();Viimeinen voimassaolopäivä = null;Merkkijono val;jos (! (val = token.nextToken ()). on yhtä suuri ("null")){voimassaolo = uusi päivämäärä (val);}Totuusarvo isSecure = uusi Totuusarvo (token.nextToken ()).booleanValue ();Eväste ck = uusi eväste (nimi, arvo, verkkotunnus, polku, vanhentuminen, isSecure);System.out.println (ck);driver.manage (). addCookie (ck); // Tämä lisää tallennetun evästeen nykyiseen istuntoosi}}} saalis (poikkeus ex) {ex.printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}

LÄHTÖ: Sinut ohjataan suoraan sisäänkirjautumisen onnistumisnäyttöön syöttämättä syötettyä käyttäjätunnusta ja salasanaa

HUOMAUTUS: Käytä kovaa päivitystä, jos näet kirjautumissivun yllä olevan komentosarjan suorittamisen jälkeen.

Johtopäätös

Siten voit välttää käyttäjänimen ja salasanan syöttämisen palvelimelle, joka vahvistaa ne uudestaan ​​ja uudestaan ​​jokaiselle testille Selenium Webdriverin avulla, mikä säästää paljon aikaa.

Tämän artikkelin on kirjoittanut Mangesh Waghmare