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

Практикум по тест-дизайну 2.0
онлайн, начало 29 ноября
Тестирование мобильных приложений
онлайн, начало 27 ноября
Автоматизатор мобильных приложений
онлайн, начало 27 ноября
Программирование на Python для тестировщиков
онлайн, начало 22 ноября
Фотография

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 594 сообщений
  • ФИО:Роман

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

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

 

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


  • 0

#3 freakless

freakless

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

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

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

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

 

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

 

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


  • 0

#4 Spock

Spock

    Гуру

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

Отправлено 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 594 сообщений
  • ФИО:Роман

Отправлено 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 анонимных

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