Kuki HTTP terdiri daripada maklumat mengenai pengguna dan pilihan mereka. Ia menyimpan maklumat menggunakan pasangan kunci-nilai. Ini adalah sekeping kecil data yang dikirim dari Aplikasi Web dan disimpan dalam Penyemak Imbas Web, sementara pengguna melayari laman web tersebut.
Klik di sini untuk mengetahui mengenai pengujian kuki.
Dalam tutorial ini, kita akan belajar -
- Selenium Query Perintah untuk kuki
- Mengapa Mengendalikan Kuki di Selenium?
- Demo: Pengendalian kuki di Selenium.
- Langkah 1) Menyimpan maklumat kuki.
- Langkah 2) Menggunakan kuki yang tersimpan untuk log masuk ke dalam aplikasi.
Selenium Query Perintah untuk kuki
Di Selenium Webdriver, kita boleh membuat pertanyaan dan berinteraksi dengan kuki dengan kaedah terbina dalam:
driver.manage (). getCookies (); // Kembalikan Senarai Semua Kukidriver.manage (). getCookieNamed (arg0); // Kembalikan kuki tertentu mengikut namadriver.manage (). addCookie (arg0); // Buat dan tambah kukidriver.manage (). deleteCookie (arg0); // Padamkan kuki tertentudriver.manage (). deleteCookieNamed (arg0); // Padamkan kuki tertentu mengikut Namadriver.manage (). deleteAllCookies (); // Padamkan semua kuki
Mengapa Mengendalikan Kuki di Selenium?
Setiap kuki dikaitkan dengan nama, nilai, domain, jalan, luput, dan status sama ada selamat atau tidak. Untuk mengesahkan klien, pelayan menguraikan semua nilai ini dalam kuki.
Semasa Menguji aplikasi web menggunakan pemacu web selenium, anda mungkin perlu membuat, mengemas kini atau menghapus kuki.
Contohnya, semasa mengautomasikan Aplikasi Belanja Dalam Talian, anda perlu mengautomasikan senario ujian seperti pesanan tempat, Lihat Keranjang, Maklumat Pembayaran, pengesahan pesanan, dll.
Sekiranya kuki tidak disimpan, anda perlu melakukan tindakan log masuk setiap kali sebelum anda melaksanakan senario ujian yang disenaraikan di atas. Ini akan meningkatkan usaha pengekodan dan masa pelaksanaan anda.
Penyelesaiannya adalah dengan menyimpan kuki dalam Fail. Kemudian, ambil nilai kuki dari fail ini dan tambahkan padanya sesi penyemak imbas anda sekarang. Hasilnya, anda boleh melangkau langkah masuk dalam setiap Kes Ujian kerana sesi pemandu anda mempunyai maklumat ini.
Pelayan aplikasi sekarang memperlakukan sesi penyemak imbas anda sebagai disahkan dan langsung membawa anda ke URL yang anda minta.
Demo: Pengendalian kuki di Selenium.
Kami akan menggunakan http://demo.guru99.com/test/cookie/selenium_aut.php untuk tujuan demo kami.
Ini akan menjadi proses 2 langkah.
Langkah 1) Log masuk ke dalam aplikasi dan simpan kuki pengesahan yang dihasilkan.
Langkah 2) Menggunakan kuki yang disimpan, untuk masuk semula ke dalam aplikasi tanpa menggunakan userid dan kata laluan.
Langkah 1) Menyimpan maklumat kuki.
pakej CookieContoh;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;kuki kelas awamBaca {utama kekosongan statik awam (String [] args){Pemacu WebDriver;System.setProperty ("webdriver.chrome.driver", "G: ///chromedriver.exe");pemacu = ChromeDriver baru ();driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");// Masukkan id E-mel dan Kata Laluan Sekiranya anda sudah Mendaftardriver.findElement (By.name ("nama pengguna")). sendKeys ("abc123");driver.findElement (By.name ("kata laluan")). sendKeys ("123xyz");driver.findElement (By.name ("submit")). klik ();// buat fail bernama Cookies untuk menyimpan Maklumat Log MasukFail fail = Fail baru ("Cookies.data");cuba{// Padamkan fail lama jika adafile.delete ();file.createNewFile ();FileWriter fileWrite = FileWriter baru (fail);BufferedWriter Bwrite = BufferedWriter baru (fileWrite);// gelung untuk mendapatkan maklumat kuki// gelung untuk mendapatkan maklumat kukiuntuk (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 ();}tangkapan (Pengecualian ex){ex.printStackTrace ();}}}
Penjelasan Kod:
- Buat contoh WebDriver
- Kami melayari laman web menggunakan driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php")
- Log masuk ke dalam Aplikasi
- Baca maklumat kuki menggunakan
driver.manage (). getCookies ();
- Simpan maklumat kuki menggunakan Kelas FileWriter untuk menulis aliran watak dan BufferedWriter untuk menulis teks ke dalam fail untuk dibuat ke dalam fail Cookies.data
- Fail "Cookies.data" menyimpan semua maklumat kuki bersama dengan "Nama, Nilai, Domain, Laluan". Kami boleh mendapatkan maklumat ini dan log masuk ke dalam aplikasi tanpa memasukkan bukti masuk.
- Sebaik sahaja anda menjalankan kod di atas, fail Cookie.data dibuat ke dalam struktur folder projek seperti yang ditunjukkan di skrin di bawah. Buka fail Cookie.data, anda dapat melihat kelayakan log masuk AUT disimpan dalam format Cookie, lihat di bawah skrin yang disorot
Langkah 2) Menggunakan kuki yang tersimpan untuk log masuk ke dalam aplikasi.
Sekarang, kami akan mengakses cookie yang dihasilkan pada langkah 1 dan menggunakan cookie yang dihasilkan untuk mengesahkan sesi kami dalam aplikasi
pakej CookieContoh;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;kelas awam CookieWrite{utama kekosongan statik awam (String [] args) {Pemacu WebDriver;System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");pemacu = ChromeDriver baru ();cuba {Fail fail = Fail baru ("Cookies.data");FileReader fileReader = FileReader baru (fail);BufferedReader Buffreader = BufferedReader baru (fileReader);Garisan tali;sementara ((strline = Buffreader.readLine ())! = null) {Token StringTokenizer = StringTokenizer baru (garis, ";");sementara (token.hasMoreTokens ()) {Nama rentetan = token.nextToken ();Nilai rentetan = token.nextToken ();String domain = token.nextToken ();Jalur rentetan = token.nextToken ();Tarikh luput = null;String val;jika (! (val = token.nextToken ()). sama dengan ("null")){luput = Tarikh baru (val);}Boolean isSecure = Boolean baru (token.nextToken ()).booleanValue ();Cookie ck = Cookie baru (nama, nilai, domain, jalan, luput, isSecure);System.out.println (ck);driver.manage (). addCookie (ck); // Ini akan menambahkan kuki yang disimpan ke sesi semasa anda}}} tangkapan (Pengecualian) {ex.printStackTrace ();}driver.get ("http://demo.guru99.com/test/cookie/selenium_aut.php");}}
OUTPUT: Anda dibawa terus ke skrin kejayaan masuk tanpa memasukkan id pengguna dan kata laluan input
CATATAN: Gunakan penyegaran keras sekiranya anda melihat halaman log masuk setelah menjalankan skrip di atas.
Kesimpulannya
Oleh itu, anda boleh mengelakkan memasukkan nama pengguna dan kata laluan di pelayan yang mengesahkannya berulang kali untuk setiap ujian dengan bantuan Selenium Webdriver, dan dengan itu menjimatkan banyak masa.
Artikel ini disumbangkan oleh Mangesh Waghmare