Piškotek HTTP je sestavljen iz informacij o uporabniku in njegovih željah. Informacije shranjuje s pomočjo para ključ-vrednost. Gre za majhen delček podatkov, poslanih iz spletne aplikacije in shranjenih v spletnem brskalniku, medtem ko uporabnik brska po tej spletni strani.
Kliknite tukaj, če želite izvedeti več o testiranju piškotkov.
V tej vadnici se bomo naučili -
- Ukazi za poizvedbo selena za piškotke
- Zakaj ravnati s piškotki v selenu?
- Predstavitev: Ravnanje s piškotki v selenu.
- Korak 1) Shranjevanje informacij o piškotkih.
- 2. korak) Uporaba shranjenega piškotka za prijavo v aplikacijo.
Ukazi za poizvedbo selena za piškotke
V programu Selenium Webdriver lahko poizvedujemo in uporabljamo piškotke s spodnjo vgrajeno metodo:
driver.manage (). getCookies (); // Vrni seznam vseh piškotkovdriver.manage (). getCookieNamed (arg0); // Vrni določen piškotek glede na imedriver.manage (). addCookie (arg0); // Ustvari in dodaj piškotekdriver.manage (). deleteCookie (arg0); // Izbriši določen piškotekdriver.manage (). deleteCookieNamed (arg0); // Izbriši določen piškotek glede na Imedriver.manage (). deleteAllCookies (); // Izbriši vse piškotke
Zakaj ravnati s piškotki v selenu?
Vsak piškotek je povezan z imenom, vrednostjo, domeno, potjo, potekom in statusom, ali je varen ali ne. Za potrditev odjemalca strežnik razčleni vse te vrednosti v piškotku.
Pri preizkušanju spletne aplikacije z uporabo spletnega gonilnika selena boste morda morali ustvariti, posodobiti ali izbrisati piškotek.
Na primer, ko avtomatizirate aplikacijo za spletno nakupovanje, morate veliko avtomatizirati testne scenarije, kot so naročilo naročil, ogled košarice, podatki o plačilu, potrditev naročila itd.
Če piškotki niso shranjeni, boste morali vsakič izvesti prijavno dejanje, preden izvedete zgoraj navedene preizkusne scenarije. To bo povečalo vaš trud pri kodiranju in čas izvedbe.
Rešitev je shranjevanje piškotkov v datoteko. Kasneje iz te datoteke pridobite vrednosti piškotka in mu dodajte trenutno sejo brskalnika. Posledično lahko v vsakem preizkusnem primeru preskočite prijavne korake, ker so v seji gonilnika te informacije.
Aplikacijski strežnik zdaj obravnava vašo sejo brskalnika kot preverjeno pristnost in vas neposredno pripelje do zahtevanega URL-ja.
Predstavitev: Ravnanje s piškotki v selenu.
Za svoj demo namen bomo uporabili http://demo.guru99.com/test/cookie/selenium_aut.php.
To bo dvostopenjski postopek.
1. korak) Prijavite se v aplikacijo in shranite ustvarjeni piškotek za preverjanje pristnosti.
2. korak) Uporabili smo shranjeni piškotek za ponovno prijavo v program brez uporabe uporabniškega imena in gesla.
Korak 1) Shranjevanje informacij o piškotkih.
paket CookieExample;import java.io.BufferedWriter;import java.io.File;uvoz java.io.FileWriter;import java.util.Set;uvoz org.openqa.selenium.By;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;uvoz org.openqa.selenium.Cookie;javni razred cookieRead {public static void main (String [] args){Gonilnik WebDriver;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe");gonilnik = nov ChromeDriver ();driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// Vnesite ID e-pošte in geslo, če ste že registriranidriver.findElement (By.name ("uporabniško ime")). sendKeys ("abc123");driver.findElement (By.name ("geslo")). sendKeys ("123xyz");driver.findElement (By.name ("submit")). click ();// ustvarimo datoteko z imenom Piškotki za shranjevanje prijavnih informacijDatoteka datoteke = nova datoteka ("Cookies.data");poskusite{// Izbriši staro datoteko, če obstajafile.delete ();file.createNewFile ();FileWriter fileWrite = nov FileWriter (datoteka);BufferedWriter Bwrite = nov BufferedWriter (fileWrite);// zanka za pridobivanje informacij o piškotkih// zanka za pridobivanje informacij o piškotkihza (piškotek ck: driver.manage (). getCookies ()){Bwrite.write ((ck.getName () + ";" + ck.getValue () + ";" + ck.getDomain () + ";" + ck.getPath () + ";" + ck.getExpiry () + ";" + ck.isSecure ()));Bwrite.newLine ();}Bwrite.close ();fileWrite.close ();}ulov (izjema ex){ex.printStackTrace ();}}}
Razlaga kode:
- Ustvarite primerek WebDriver
- Spletno mesto obiskujemo s pomočjo driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php")
- Prijavite se v aplikacijo
- Preberite informacije o piškotkih
driver.manage (). getCookies ();
- Podatke o piškotkih shranite z uporabo razreda FileWriter za pisanje tokov znakov in BufferedWriter za zapis besedila v datoteko, ki jo želite ustvariti v datoteko Cookies.data
- Datoteka "Cookies.data" shranjuje vse podatke o piškotkih skupaj z "Ime, vrednost, domena, pot". Te podatke lahko pridobimo in se prijavimo v aplikacijo brez vnosa poverilnic za prijavo.
- Ko zaženete nad kodo, se datoteka Cookie.data ustvari v strukturi mape projekta, kot je prikazano na spodnjem zaslonu. Odprite datoteko Cookie.data, lahko vidite, da se prijavne poverilnice AUT shranijo v obliki piškotka, glejte spodnji zaslon
2. korak) Uporaba shranjenega piškotka za prijavo v aplikacijo.
Zdaj bomo dostopali do piškotka, ustvarjenega v 1. koraku, in z ustvarjenim piškotkom potrdili svojo sejo v aplikaciji
paket CookieExample;import java.io.BufferedReader;import java.io.File;uvoz java.io.FileReader;uvoz java.util.Date;uvoz java.util.StringTokenizer;uvoz org.openqa.selenium.Cookie;uvoz org.openqa.selenium.WebDriver;uvoz org.openqa.selenium.chrome.ChromeDriver;javni razred CookieWrite{public static void main (String [] args) {Gonilnik WebDriver;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");gonilnik = nov ChromeDriver ();poskusite {Datoteka datoteke = nova datoteka ("Cookies.data");FileReader fileReader = nov FileReader (datoteka);BufferedReader Buffreader = nov BufferedReader (fileReader);Niz strline;while ((strline = Buffreader.readLine ())! = null) {StringTokenizer token = nov StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Ime niza = token.nextToken ();Vrednost niza = token.nextToken ();Domena niza = token.nextToken ();Pot niza = token.nextToken ();Datum izteka = ničen;String val;if (! (val = token.nextToken ()). je enako ("null")){iztek = nov datum (val);}Logično isSecure = novo logično (token.nextToken ()).booleanValue ();Piškotek ck = nov piškotek (ime, vrednost, domena, pot, iztek, isSecure);System.out.println (ck);driver.manage (). addCookie (ck); // S tem bomo shranjeni piškotek dodali v trenutno sejo}}} ulov (izjema ex) {ex.printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}
IZHOD: Preusmerjeni boste neposredno na zaslon za uspešno prijavo, ne da bi vnesli vneseni ID uporabnika in geslo
OPOMBA: Uporabite močno osvežitev, če po izvedbi zgornjega skripta vidite prijavno stran.
Zaključek
Tako se lahko izognete vnosu uporabniškega imena in gesla na strežnik, ki jih znova in znova validirate za vsak test s pomočjo programa Selenium Webdriver in s tem prihranite veliko časa.
Ta članek prispeva Mangesh Waghmare