Plik cookie HTTP zawiera informacje o użytkowniku i jego preferencjach. Przechowuje informacje za pomocą pary klucz-wartość. Jest to niewielki fragment danych wysyłany z aplikacji internetowej i przechowywany w przeglądarce internetowej, podczas gdy użytkownik przegląda tę witrynę.
Kliknij tutaj, aby dowiedzieć się o testowaniu plików cookie.
W tym samouczku nauczymy się -
- Zapytanie selenowe Polecenia dotyczące plików cookie
- Po co obchodzić się z plikami cookie w selenie?
- Demo: Obsługa plików cookie w Selenium.
- Krok 1) Przechowywanie informacji o plikach cookie.
- Krok 2) Używanie zapisanego pliku cookie do logowania się do aplikacji.
Zapytanie selenowe Polecenia dotyczące plików cookie
W Selenium Webdriver możemy wysyłać zapytania i wchodzić w interakcje z plikami cookie za pomocą poniższej wbudowanej metody:
driver.manage (). getCookies (); // Zwróć listę wszystkich plików cookiedriver.manage (). getCookieNamed (arg0); // Zwróć określony plik cookie zgodnie z nazwądriver.manage (). addCookie (arg0); // Utwórz i dodaj plik cookiedriver.manage (). deleteCookie (arg0); // Usuń określony plik cookiedriver.manage (). deleteCookieNamed (arg0); // Usuń określony plik cookie zgodnie z nazwądriver.manage (). deleteAllCookies (); // Usuń wszystkie pliki cookie
Po co obchodzić się z plikami cookie w selenie?
Każdy plik cookie jest powiązany z nazwą, wartością, domeną, ścieżką, wygaśnięciem i stanem, czy jest bezpieczny, czy nie. Aby zweryfikować klienta, serwer analizuje wszystkie te wartości w pliku cookie.
Podczas testowania aplikacji internetowej przy użyciu sterownika internetowego selenium może być konieczne utworzenie, zaktualizowanie lub usunięcie pliku cookie.
Na przykład podczas automatyzacji aplikacji do zakupów online wiele osób musi zautomatyzować scenariusze testowe, takie jak złożenie zamówienia, wyświetlenie koszyka, informacje o płatności, potwierdzenie zamówienia itp.
Jeśli pliki cookie nie są przechowywane, przed wykonaniem powyższych scenariuszy testowych konieczne będzie każdorazowe logowanie. Zwiększy to wysiłek związany z kodowaniem i czas wykonania.
Rozwiązaniem jest przechowywanie plików cookie w pliku. Później pobierz wartości cookie z tego pliku i dodaj do niego aktualną sesję przeglądarki. W rezultacie możesz pominąć kroki logowania w każdym przypadku testowym, ponieważ sesja sterownika zawiera te informacje.
Serwer aplikacji traktuje teraz sesję przeglądarki jako uwierzytelnioną i kieruje bezpośrednio do żądanego adresu URL.
Demo: Obsługa plików cookie w Selenium.
Będziemy używać http://demo.guru99.com/test/cookie/selenium_aut.php do celów demonstracyjnych.
Będzie to proces dwuetapowy.
Krok 1) Zaloguj się do aplikacji i zapisz wygenerowany plik cookie uwierzytelniania.
Krok 2) Wykorzystał zapisany plik cookie, aby ponownie zalogować się do aplikacji bez użycia identyfikatora użytkownika i hasła.
Krok 1) Przechowywanie informacji o plikach cookie.
pakiet 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;public class cookieRead {public static void main (String [] args){Sterownik WebDriver;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe");sterownik = nowy ChromeDriver ();driver.get („http://demo.guru99.com/test/cookie/selenium_aut.php”);// Wprowadź identyfikator e-mail i hasło Jeśli jesteś już zarejestrowanydriver.findElement (By.name ("nazwa użytkownika")). sendKeys ("abc123");driver.findElement (By.name ("hasło")). sendKeys ("123xyz");driver.findElement (By.name ("wyślij")). click ();// utwórz plik o nazwie Cookies do przechowywania danych logowaniaPlik plik = nowy plik ("Cookies.data");próbować{// Usuń stary plik, jeśli istniejefile.delete ();file.createNewFile ();FileWriter fileWrite = nowy FileWriter (plik);BufferedWriter Bwrite = nowy BufferedWriter (fileWrite);// pętla do pobierania informacji o plikach cookie// pętla do pobierania informacji o plikach cookiefor (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 ();}catch (wyjątek z wyjątkiem){ex.printStackTrace ();}}}
Objaśnienie kodu:
- Utwórz instancję WebDriver
- Witrynę odwiedzamy za pomocą pliku driver.get („http://demo.guru99.com/test/cookie/selenium_aut.php”)
- Zaloguj się do aplikacji
- Przeczytaj informacje o plikach cookie za pomocą
driver.manage (). getCookies ();
- Przechowuj informacje o plikach cookie za pomocą klasy FileWriter do zapisywania strumieni znaków i funkcji BufferedWriter do zapisywania tekstu w pliku w celu utworzenia w pliku Cookies.data
- Plik „Cookies.data” przechowuje wszystkie informacje o plikach cookie wraz z „Nazwą, wartością, domeną, ścieżką”. Możemy pobrać te informacje i zalogować się do aplikacji bez podawania danych logowania.
- Po uruchomieniu powyższego kodu plik Cookie.data jest tworzony w strukturze folderów projektu, jak pokazano na poniższym ekranie. Otwórz plik Cookie.data, możesz zobaczyć poświadczenia logowania AUT jest zapisane w formacie Cookie, patrz poniżej podświetlony ekran
Krok 2) Używanie zapisanego pliku cookie do logowania się do aplikacji.
Teraz uzyskamy dostęp do pliku cookie wygenerowanego w kroku 1 i użyjemy wygenerowanego pliku cookie do uwierzytelnienia naszej sesji w aplikacji
pakiet 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;klasa publiczna CookieWrite{public static void main (String [] args) {Sterownik WebDriver;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");sterownik = nowy ChromeDriver ();próbować{Plik plik = nowy plik ("Cookies.data");FileReader fileReader = nowy FileReader (plik);BufferedReader Buffreader = nowy BufferedReader (fileReader);String strline;while ((strline = Buffreader.readLine ())! = null) {StringTokenizer token = new StringTokenizer (strline, ";");while (token.hasMoreTokens ()) {Nazwa ciągu = token.nextToken ();Wartość ciągu = token.nextToken ();String domain = token.nextToken ();String path = token.nextToken ();Data wygaśnięcia = null;String val;if (! (val = token.nextToken ()). equals ("null")){expiry = new Date (val);}Boolean isSecure = new Boolean (token.nextToken ()).booleanValue ();Cookie ck = new Cookie (nazwa, wartość, domena, ścieżka, wygaśnięcie, isSecure);System.out.println (ck);driver.manage (). addCookie (ck); // Spowoduje to dodanie zapisanego pliku cookie do bieżącej sesji}}} catch (Exception ex) {ex.printStackTrace ();}driver.get („http://demo.guru99.com/test/cookie/selenium_aut.php”);}}
WYJŚCIE: Zostaniesz przeniesiony bezpośrednio do ekranu pomyślnego logowania bez wprowadzania identyfikatora użytkownika i hasła
UWAGA: Użyj twardego odświeżania, jeśli zobaczysz stronę logowania po wykonaniu powyższego skryptu.
Wniosek
W ten sposób możesz uniknąć wpisywania nazwy użytkownika i hasła na serwerze, sprawdzając je wielokrotnie dla każdego testu za pomocą Selenium Webdriver, a tym samym oszczędzasz dużo czasu.
Ten artykuł jest autorstwa Mangesh Waghmare