Разберем, как можно добавить Pre-request скрипт, чтобы выполнять запрос токена (логин) и использовать его для выполнения других запросов, требующих аутентификацию с этим токеном.
Проблема
Создаем и отправляем запросы в Postman для тестирования работы с API, но каждый раз токен приходится вводить вручную. Токен вводим в первый и в последующие разы при каждом запуске, что занимает время, но понятно что есть способ использовать обширный набор инструментов Postman.
Как организована авторизация в Postman
Структура проекта в нашем случае такая: Корень проекта (в терминах Postamn называется API), Папка-коллекция (набор запросов), Папка (по названию Controller) и Запросы (описание каждого запроса, который нужно тестировать).
Здесь и далее речь идет о конфигурации Папки-коллекции и ее Запросов. Настройка авторизации в запросах по умолчанию находится в значении «Inherit auth from parent». Это значит, то мы можем для всех Запросов настроить авторизацию в их родительской Папке-коллекции.
По шагам
В данном случае используем авторизации типа Bearer Token. Необходимо перед каждым запросом, который есть в Папке-Коллекции выполнять предварительный запрос аутентификации для получения Токена. Токен из ответа сервера будет помещен в переменную MyToken. Значение переменной MyToken будет использовано как токен.
1. Выбрать Папку-Коллекцию PizzaWebApi.Web;
2. Выбрать таб с настройками «Authorization» (для текущей коллекции);
3. Выберем метод авторизации Type = «Bearer Token»;
4. Выберем Token = «{{MyToken}}» (без кавычек);
5. Выбрать таб Variables;
6. Создать переменную со значение baseUrl = «http://localhost:5118» (без кавычек, стандартный порт ASP Core);
7. Создать переменную MyToken без значения;
8. Выбрать таб Pre-request Script;
9. В пустое поле внести следующий код
pm.sendRequest({
url: pm.variables.get('baseUrl') + "/api/login",
method: 'POST',
header: {
'content-type': 'application/json',
},
body: {
mode: 'raw',
raw: JSON.stringify({ "UserNameOrEmail": 'John', "Password": 'Aa123456' })
}
}, function (err, res) {
const jsonResponse = res.json();
const newAccessToken = jsonResponse.token;
pm.variables.set("MyToken", newAccessToken);
});
10. Нажать кнопку Save.
Чтобы проверить код скрипта нажмите кнопку Run. Детали исполнения запроса скрипта смотри в Консоли Postamn. Тестируемое API должно быть активно.
Выполните любой Request из этой коллекции и убедитесь, что метол login будет предварительно исполнен (см. скрин).