Как сохранить один и тот же сеанс по нескольким запросам в покое? - PullRequest
0 голосов
/ 06 марта 2020

Предварительные требования: Успокоенные API-тесты с Java

Шаг 1. Запустите URL и получите билет для входа в систему - фрагмент кода ниже, чтобы получить билет для входа в систему

RestAssured.baseURI = "https://ve4al10p:453";
RestAssured.useRelaxedHTTPSValidation();
Response res = 
   given().
        header("Content-Type","application/json").
    when().
        post("/i/login?action=lt").
    then().
        assertThat().statusCode(200).
        extract().response();
    res.prettyPrint();

Вывод: Обратите внимание, билет для входа

lt":"LT-12370-j4znjFQkGMXMjlT3uKJ"

Шаг 2. Используйте билет для входа и выполните вход с именем пользователя и паролем. Я извлек билет для входа и передал следующий запрос (продолжение фрагмента).

 CookieFilter cookieFilter = new CookieFilter();
 Response res1 = given(). 
    filter(cookieFilter).
    header("Content-Type","application/json").
    queryParam("lt",loginticket). 
    queryParam("username","user1"). 
    queryParam("password","pass1"). 
when().
    post("/i/login?service=https://ve4al10p:443/spa").  
then().
    assertThat().statusCode(200).
    extract().response();
res1.prettyPrint();

Вывод: Обратите внимание, что он снова создает новый входной билет, что означает, что новый сеанс завершится неудачно и даст ожидаемый результат.

**"lt":"LT-12369-u6osMkesdg6RQu9JPoDARL4D"**

Примечание. Я также заметил сеансы для указанных выше запросов, и оба они отличаются.

Ожидаемый результат: Я хочу использовать тот же билет для входа и поддерживать те же сеансы.

1 Ответ

0 голосов
/ 12 марта 2020

вы можете получить SessionID / cook ie из логина и передать его в качестве SessionID для следующего запроса в качестве заголовка для поддержки одного сеанса.

например:

String JsessionID = given().header(h1).body(payload).when().post(basepath).thenReturn().cookie("JSESSIONID");
given().headers(JsessionID).body(body).when().post();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...