Как настроить библиотеку Java Resassured, чтобы не использовать куки - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь повторно использовать переадресованный вызов get в тестах api testng, но перезагружен экземпляр при использовании файлов cookie, полученных из предыдущего ответа.Пробовал RestAssured.reset ();но это не помогает очистить куки, которые мы получили из более раннего запроса / ответа.

Причина этого вопроса - поскольку конечная точка get ведет себя по-разному, если в запросе существует cookie сеанса.

@Test // TestNG test
public void test_1(){

    //Set Cookie
    Cookie cookie = new Cookie.Builder("COOKIENAME","COOKIEVALUE").setDomain("*.com").setPath("/").setExpiryDate(SOMELATERDATE).build();

    RestAssured.baseURI = https://ENV_URL;
    Response response = RestAssured.given().log().all()
        .cookies(new Cookies(cookie)).when().get("/END_POINT").then().extract().response().prettyPeek();

    RestAssured.reset();
}

@Test // TestNG test
public void test_2(){

    //Set Cookie
    Cookie cookie = new Cookie.Builder("COOKIENAME", "COOKIEVALUE").setDomain("*.com").setPath("/").setExpiryDate(SOMELATERDATE).build();

    RestAssured.baseURI = https://ENV_URL;
    // Still Reuses the cookie received from previous response
    Response response = RestAssured.given().log().all()
        .cookies(new Cookies(cookie)).when().get("/END_POINT").then().extract().response().prettyPeek();

    RestAssured.reset();
}

1 Ответ

0 голосов
/ 20 марта 2019

Используйте CookieFilter.Если вы хотите исключить определенный файл cookie, вы можете использовать следующий код:

    @Test 
    public void sampletest(){

        CookieFilter cookieFilter = new CookieFilter(); 
        Response response = RestAssured.given().
         cookie("foo", "bar").
         filter(cookieFilter). // Reuse the same cookie filter
                      // if "foo" is stored in cookieFilter it won't be applied because it's already applied explicitly
 expect().
         statusCode(200).
 when().
         get("/y");

    }
...