توربەت ساقلانمىلىرى ( Cookies) دىگەن نىمە؟

Cookies ، تېخىمۇ توغرا ھالدا ئېيتقاندا HTTP ساقلانمىلىرى دەپ ئاتىلىدۇ ، بۇ  توركۆرگۈچتە تېكىست ھۆججىتى سۈپىتىدە ساقلانغان كىچىك سانلىق مەلۇماتلارنى كۆرسىتىدۇ. يەنى سىزنىڭ توربەت كۆرگۈچگۈچتىكى كىرگۈزگەن ئۇچۇرلىرىڭىزنى ساقلاش ئارقىلىق سىزنىڭ توربەتتە قىلغان ئىشلىرىڭىزنى ئىز قوغلايدۇ ۋەياكى بۇ ئۇچۇرلارنى ئىشلىتىپ سىزگە خاس ئۆزگىچە ئالاھىدىلىكلەرنى سۇنىدۇ. ھازىرىقى ۋاقىتتا ئەڭ كۆپ ئىشلىتىدىغان ئورۇنلىرىدىن بىرسى بولسا سىز ئىزدىگەن ئۇچۇرلارنى ساقلاپ كىيىنكى ۋاقىتلاردا شۇ ئۇچۇرلارغا مۇناسۋەتلىك ئېلانلارنى كۆرسىتىش.

بۇ يازمىدا بولسا  قانداق قىلىپ selenium webdriver ئارقىلىق Cookies نى ئېلىپ Rest Assured ئارقىلىق API غا يوللايمىز دىگەن مەسىلىگە جاۋاپ تاپىمىز. ھەممىڭلار بىلگىنىڭلاردەك API دا تەلەپ ( Request )  ۋە جاۋاپ ( Response ) ئېلىشنىڭ ھەرخىل ئۇسۇللىرى بار. بىز بۇ ئۇسۇللار ئارقىلىق ھەرخىل تەلەپ ( Request ياكى payload ) يوللاش ئارقىلىق Response قا ئېرىشىمىز. ئەڭ كۆپ ئىشلىتىدىغان ئۇسۇللاردىن بىرسى Rest Assured ئارقىلىق ھەل قىلىش. بۈگۈن بىز selenium webdriver ئارقىلىق توربەتتىكى تور ساقلانمىلىرى ( Cookies) لارنى ئېلىپ، بۇ ساقلانمىلارنى Rest Assured ئارقىلىق API غا يوللاشنى ئۈگىنىپ ئ‍ۆتىمىز.

import io.restassured.RestAssured;
import io.restassured.http.Cookies;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import static io.restassured.RestAssured.given;

public class RestAssuredWebDriverCookie {

    @Test
    public void cookieTest() {
        WebDriver driver = new ChromeDriver();

        driver.navigate().to("http://www.someurl.com");

        Set seleniumCookies = driver.manage().getCookies();

        // This is where the Cookies will live going forward
        List restAssuredCookies = new ArrayList();

        // Simply pull all the cookies into Rest-Assured
        for (org.openqa.selenium.Cookie cookie : seleniumCookies) {
            restAssuredCookies.add(new io.restassured.http.Cookie.Builder(cookie.getName(), cookie.getValue()).build());
        }

        // Pass them into the Rest-Assured Call
        given().spec(RestAssured.requestSpecification)
                .basePath("/some-path")
                .cookies(new Cookies(restAssuredCookies))
                .queryParam("id", "1234")
                .get()
                .then().statusCode(200);
    }
}