понедельник, 26 ноября 2018 г.

Как отправить массив через form-data в Postman

Рассмотренные в статье примеры вы можете опробовать и сами, так как запросы мы будем отправлять в бесплатное приложение Users.

Простой массив


Он есть в методе CreateUser — и для задач, и для компаний.

В json формате он выглядит так:

{
  "email": "test_cu_32@mail.com",
  "name": "Рест 32",
  "tasks": [39],
  "companies": [15, 20]



Простой массив в json
В form-data мы указываем массив и в квадртаных скобках номер значения в нем. Счет начинается с нуля:

tasks[0] = 39
companies[0] = 15
companies[1] = 20

Простой массив в form-data

Проверяем, что наши пользователи есть в интерфейсе:




Сложный массив


Его мы найдем в методе CreateUserWithTasks — задачи создаются в виде массива значений.

В json формате:

{
 "email": "test_cu_22@mail.com",
 "name": "Рестовый 22",
 "tasks": [{
   "title": "Первая задача",
   "description": "Первая задача 11"
  },
  {
   "title": "Вторая задача",
   "description": "Вторая задача 11"
  }
 ],
 "companies": [15, 20]
}


Сложный массив в json


В form-data:

tasks[0][title] = Заголовок задачи 1
tasks[0][description] = Описание задачи 1

tasks[1][title] = Заголовок задачи 2
tasks[1][description] = Описание задачи 2

Сложный массив в form-data

То есть мы указываем сначала, какой по счету элемент массива tasks идет (отсчет начинается с нуля), а потом без точки или пробела в квадратных скобках указываем поле этого элемента.

Находим юзера в интерфейсе, проверяем — да, задачи создались!


Как-то так Smile :)


См также:
How to send Arrays with GET or POST request in POSTMAN

PS — статья написана в помощь студентам моего курса «Тестирование REST API». Заходите на огонек!

20 комментариев:

  1. Ольга, спасибо за данный сервис. Попрактиковался. Бесценно!

    ОтветитьУдалить
  2. Огромное спасибо! Так долго искала ответ на этот вопрос, спасибо, что делитесь знаниями!

    ОтветитьУдалить
  3. Здравствуйте Ольга! При создании компании не через JSON, Postman выдает результат error (company_users не указаны сотрудники). При том, что email сотрудников задаю как company_users[0] и company_users[1]. Подскажите пожалуйста в чем ошибка.

    ОтветитьУдалить
    Ответы
    1. В Postman, судя по всему, изменился формат. Пробелы и равно он больше не понимает, только без пробелов и через двоеточие - либо заполнять табличку ключ-значение ручками. Массивы - у ключа в квадратных скобках индекс, начиная с 0

      Пример массива из одного элемента:
      myField[0]:Value

      Удалить
    2. Интересно, посмотрю, спасибо)
      Но если речь про json формат то выглядит больше как баг, то есть мб исправят

      Удалить
    3. Тоже столкнулся с этим моментом. Возможно стоит поправить документацию CreateCompany?

      Удалить
    4. А что не так в документации CreateCompany?

      Удалить
    5. Вероятно изменился способ введения массива в Postman. По крайней мере в том виде, в котором он описан в документации, - у меня не работает:
      "type": "error",
      "message": " company_users не указаны сотрудники"

      Удалить
    6. Прекрасно работает, если написать правильный запрос) Вам сообщение об ошибке подсказывает, что именно у вас не так

      Удалить
  4. Добрый день
    Вопрос связан с рисунком "Простой массив в json" из статьи - у поля Status значение 500 Internal Server Error, хотя новый пользователь создался успешно. Я ожидала получить значение Status 200 OK. Если можно, то объясните, где я ошибаюсь в своих рассуждениях.
    (Я пробовала разобраться по статье "Основные HTTP-коды для чайников в картинках" c http://testbase.ru/?post_type=skill&p=1313, но при переходе по статье выдает 404 ошибку)

    ОтветитьУдалить
  5. Спасибо! Наконец нашла ответ на свой вопрос!)

    ОтветитьУдалить
  6. добрый день!
    весь день практикуюсь с вашей замечательной документацией, много кого создала, много чего создала, поменяла строки, но упорно самый простой запрос doregister с паролем никак не заходит в users.
    даже уже позаходила к другим пользакам, у которых простой пароль вроде 123. а моих никак не определяет потом по запросу getUser, причем в листе User они есть, к примеру Bobik1@mail.ru

    ОтветитьУдалить