Перейти к содержимому

Программирование на C# для тестировщиков
онлайн, начало 6 декабря
Python для начинающих
онлайн, начало 11 декабря
Школа для начинающих тестировщиков
онлайн, начало 12 декабря
Комплексная система подготовки к сертификации ISTQB FL (КСП ISTQB)
онлайн, начало 9 декабря
Фотография

REST Assured and Bearer token


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 freakless

freakless

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Горский Антон Игоревич

Отправлено 04 Сентябрь 2019 - 06:28

Всем привет.

Вчера начал изучать такой замечательный инструмент как REST Assured. Столкнулся со следующей проблемой - 

Авторизация через Bearer token, этот токен нужен для всех запросов, поэтому написал метод на получение токена:

RequestSpecification request = given();
request.header("Content-Type", "text/plain");
request.body("grant_type=password&username=******&password=*********");

Response response = request.post("http://*********/api/token");

assertEquals(response.getStatusCode(), 200);

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(response.getBody().prettyPrint());

while (matcher.find()) {
for (int i = 1; i <= matcher.groupCount(); i++) {
s = matcher.group(i);
}
}

Написал регулярку что бы его вытащить и переиспользовать для последующих запросов. Все работает как надо, но мне кажется что это можно сделать как то проще, но как я пока не нашел. может кто сталкивался или знает. 


  • 0

#2 Spock

Spock

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 640 сообщений
  • ФИО:Роман

Отправлено 04 Сентябрь 2019 - 08:02

можно использовать методы из RestAssured вместо того чтобы делать "руками"

 

например боди составлять, и из ответа конкретное поле брать а не перебирать все значения подряд


  • 0

#3 freakless

freakless

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Горский Антон Игоревич

Отправлено 04 Сентябрь 2019 - 08:17

можно использовать методы из RestAssured вместо того чтобы делать "руками"

 

например боди составлять, и из ответа конкретное поле брать а не перебирать все значения подряд

 

Вот она вся суть русскоязычных форумов. Пишешь что вчера начал что то изучать, что то сделал, хочешь сделать по-другому, но не нашел как. в ответ получаешь: "это нужно делать по-другому". Спасибо, это очень помогло. как я сразу не догадался 


  • 0

#4 Spock

Spock

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 640 сообщений
  • ФИО:Роман

Отправлено 04 Сентябрь 2019 - 08:39

 

 

Вот она вся суть русскоязычных форумов. Пишешь что вчера начал что то изучать, что то сделал, хочешь сделать по-другому, но не нашел как. в ответ получаешь: "это нужно делать по-другому". Спасибо, это очень помогло. как я сразу не догадался 

да, вот она вся суть русскоязычных форумов

 

"начал делать, непонятно - документацию читать лень, пошел спрашивать в форумы. там посоветовали хотя бы немного начать читать документацию. поругался на них. почему они просто не напишут код за меня?"


  • 0

#5 freakless

freakless

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Горский Антон Игоревич

Отправлено 04 Сентябрь 2019 - 08:50

 

 

 

Вот она вся суть русскоязычных форумов. Пишешь что вчера начал что то изучать, что то сделал, хочешь сделать по-другому, но не нашел как. в ответ получаешь: "это нужно делать по-другому". Спасибо, это очень помогло. как я сразу не догадался 

да, вот она вся суть русскоязычных форумов

 

"начал делать, непонятно - документацию читать лень, пошел спрашивать в форумы. там посоветовали хотя бы немного начать читать документацию. поругался на них. почему они просто не напишут код за меня?"

 

Я же не просил что то писать за меня. Я просто попросил пример как это можно реализовать. И перед тем как идти сюда, документацию я прочитал. https://github.com/r...ured/wiki/Usage вот тут. Решение своей проблемы я там не нашел. 


  • 0

#6 freakless

freakless

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Горский Антон Игоревич

Отправлено 04 Сентябрь 2019 - 08:54

 и из ответа конкретное поле брать а не перебирать все значения подряд

Ну и собственно у меня так и сделано. Из ответа взято конкретное поле. 


  • 0

#7 Spock

Spock

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 640 сообщений
  • ФИО:Роман

Отправлено 04 Сентябрь 2019 - 09:27

 

 

Ну и собственно у меня так и сделано. Из ответа взято конкретное поле. 

если берете конкретное поле - то зачем там цикл перебора?


  • 0

#8 lapa

lapa

    Новый участник

  • Members
  • Pip
  • 55 сообщений


Отправлено 12 Сентябрь 2019 - 12:42

 

можно использовать методы из RestAssured вместо того чтобы делать "руками"

 

например боди составлять, и из ответа конкретное поле брать а не перебирать все значения подряд

 

Вот она вся суть русскоязычных форумов. Пишешь что вчера начал что то изучать, что то сделал, хочешь сделать по-другому, но не нашел как. в ответ получаешь: "это нужно делать по-другому". Спасибо, это очень помогло. как я сразу не догадался 

 

поддреживаю :) вам нужно что то типа такого Response response = request.post("http://*********/api/token"); String token = response.getBody().jsonpath().get("token").toString()


так же можно использовать спецификации. то есть прописать restassuredspec в которые добавить ваш токен и в следующиз запросах не писать его

 


  • 1

#9 freakless

freakless

    Новый участник

  • Members
  • Pip
  • 10 сообщений
  • ФИО:Горский Антон Игоревич

Отправлено 16 Сентябрь 2019 - 12:41

 

 

можно использовать методы из RestAssured вместо того чтобы делать "руками"

 

например боди составлять, и из ответа конкретное поле брать а не перебирать все значения подряд

 

Вот она вся суть русскоязычных форумов. Пишешь что вчера начал что то изучать, что то сделал, хочешь сделать по-другому, но не нашел как. в ответ получаешь: "это нужно делать по-другому". Спасибо, это очень помогло. как я сразу не догадался 

 

поддреживаю :) вам нужно что то типа такого Response response = request.post("http://*********/api/token"); String token = response.getBody().jsonpath().get("token").toString()


так же можно использовать спецификации. то есть прописать restassuredspec в которые добавить ваш токен и в следующиз запросах не писать его
 

 

Спасибо. Буду пробовать 


  • 0


Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале