Переиспользование переменной в запросе Postman
Новичок в постмане. Пожалуйста, помогите понять, что делаю не так. Ковыряю популярный тренажер https://petstore.swagger.io/#/ В пре-реквесте коллекции задала рандомайзер, который генерирует айдишник:
pm.collectionVariables.set('randomNumber', Math.floor(Math.random() * 100000000000000));
В хендлере pet взяла метод POST - создание пета, где в боди подставила переменную с рандомным айдишником:
{
"id": {{randomNumber}},
"category": {
"id": 0,
"name": "string"
},
"name": "Basil",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "string"
}
],
"status": "available"
}
Затем в этом запросе во вкладке "тесты" я загоняю полученый в ответе айдишник в переменную:
var data = JSON.parse(responseBody);
pm.collectionVariables.set("petId", data.id);
Затем в следующем тесте POST - Upload Image я хочу взять эту переменную с полученным айдишником и загрузить ему изображение (form-data), отправляю запрос, а в curl появляется вообще левый айдишник:
curl --location 'https://petstore.swagger.io/v2/pet/9223372036854753000/uploadImage' \
--form 'file=@"photo_2023-05-30_14-13-58.jpg"' \
--form 'id="9223372036854753000"'
Есть ощущение, что в запрос POST - Upload Image не подтягивается переменная petId. Что не так?
Ответы (2 шт):
в js тип number максимальное число 9007199254740991 (16 знаков)
предположу что из-за этого
попробуй в BigInt положить https://learn.javascript.ru/types
или в строку преобразуй
Проблема решилась переименованием переменной с petId на currentId + в этом скрипте
var data = JSON.parse(responseBody);
pm.collectionVariables.set("petId", data.id);
замена двойных кавычек на одинарные. Что-то из этого помогло. Ну, и в рандомайзер добавила это число: 9007199254740991