Разделы портала

Онлайн-тренинги

.
Создание коллекции в Postman
29.01.2019 00:00

Автор: Кристин Джеквони (Kristin Jackvony)

Оригинал статьи

Перевод: Ольга Алифанова.

Сегодня мы закончим обсуждение типов REST-запросов, разобрав DELETE-запрос и специфику его тестирования. Мы также узнаем, как создать цепочку REST-запросов в коллекции Postman.

Запрос DELETE удаляет запись из базы данных целиком. Чтобы увидеть, как это работает, вернемся в Swagger Pet Store. Для начала откроем запрос GET /pet/{petId}. Нажмите на "Try it out" и введите 100 в поле petId. Затем нажмите на кнопку "Execute". Взгляните на ответ сервера. Вернул ли сервер питомца? Если нет, попробуйте другой petId. Ищите, пока не найдете существующую в базе запись.

Теперь, когда у вас есть запись, откройте запрос DELETE /pet/{petId} и нажмите на кнопку "Try it out". В поле petId введите id, который вы использовали для GET-запроса. Нажмите на кнопку "Execute". Сервер должен вернуть успешный код 200.

Как узнать, действительно ли запись удалена? Просто вернитесь к своему GET-запросу, снова введите нужный id в поле petId, и нажмите на "Execute". Вы должны получить ответ "Pet not found". Ура, вы успешно удалили питомца из базы!

Тестировать DELETE-запрос довольно просто. Единственная информация, которую вы передаете – это id записи, которую вы хотите удалить, поэтому вариантов тут немного. Можно проверить, что будет, если ввести id несуществующей записи (должна появиться 404 ошибка), или невалидный id (FOO). Если функциональность удаления в вашем приложении доступна только авторизованным пользователям, попробуйте удалить запись без токена или куки, дающих вам такое право. Можно также попробовать отправить запрос через http-URL вместо https (или наоборот), или URL, который не указывает на id для удаления.

Теперь давайте откроем Postman и попробуем создать цепочки запросов! представьте, что вы создаете набор тестов для Swagger Pet Store. Вы хотите убедиться, что питомца можно добавить, получить данные о нем, редактировать и удалить из базы. Когда вы добавляете питомца в базу, вы хотите удостовериться, что запись действительно добавлена, поэтому вам нужен GET-запрос, убеждающийся в этом. Схожим образом при редактировании питомца вам нужен GET-запрос, чтобы проверить изменения. И, наконец, при удалении питомца нужен GET, чтобы убедиться, что питомец и правда удален. Также тест-набор должен чистить за собой, чтобы вы не добавляли все больше и больше записей в вашу базу ежедневно. Цепочка запросов в коллекции Postman все это позволяет. Вот в каком порядке будут располагаться ваши запросы:

  • POST – добавление питомца в базу.
  • GET – проверка, что питомец добавлен.
  • PUT – изменение существующего питомца.
  • GET – проверка внесения изменений.
  • DELETE – удаление питомца.
  • GET – проверка, что питомец удален.

Для создания коллекции Postman нажмите на вкладку "Collections" в верхнем левом углу экрана, а затем – на иконку с папкой и плюсиком:


Дайте вашей коллекции имя (например, "Pet Store"), и нажмите на кнопку "Create". Вы увидите папку с именем вашей коллекции в левой колонке экрана. Теперь нажмите на вкладку "+" в главном окне экрана, чтобы добавить новый запрос. Начнем с запроса POST, добавляющего питомца. Создайте примерно такой запрос:

Request type: POST

URL: http://petstore.swagger.io/v2/pet

Headers: Content-Type: application/json

Body:

{
  "id": 100,
  "category": {
    "id": 1,
    "name": "cat"
  },
  "name": "Grumpy Cat",
  "photoUrls": [
    https://pbs.twimg.com/profile_images/948294484596375552/RyGNqDEM_400x400.jpg
  ],
  "tags": [
    {
      "id": 1,
      "name": "blue eyes"
    }
  ],
  "status": "sold"
}

Если что-то из вышеуказанного кажется вам непонятным, перечитайте статью про POST-запросы.

После того, как ваш запрос готов и работает, сохраните его в коллекцию. Нажмите на кнопку "Save" в правом верхнем углу экрана. Появится всплывающее окно. Дайте запросу имя – например, "Add Pet", и выберите созданную вами коллекцию. Нажмите на "Save", и вы увидите запрос в папке коллекции в левой стороне экрана.

Мы можем повторить эту процедуру с запросом GET:

Request type: GET

URL: http://petstore.swagger.io/v2/pet/100

Как только запрос заработает, сохраните его в коллекцию с именем вроде "Verify Add Pet". Мы называем этот запрос так, потому что он будет использоваться для проверки, что предыдущий POST-запрос правильно отработал.

Затем мы отредактируем питомца при помощи запроса PUT:

Request type: PUT

URL: http://petstore.swagger.io/v2/pet

Headers: Content-Type: application/json

Body:

{
  "id": 100,
  "category": {
    "id": 2,
    "name": "Dog"
  },
  "name": "Droopy Dog",
  "photoUrls": [
    "https://upload.wikimedia.org/wikipedia/en/thumb/f/fd/Droopy_dog.png/150px-Droopy_dog.png"
  ],
  "tags": [
    {
      "id": 2,
      "name": "Beagle"
    }
  ],
  "status": "pending"
}

Когда запрос будет готов, сохраните его в коллекцию с именем "Update Pet".

Теперь нам нужен еще один GET-запрос, чтобы убедиться, что запрос PUT отработал верно. У нас уже есть сохраненный GET-запрос, поэтому мы можем его просто продублировать. Наведите курсор на запрос "Verify Add Pet" в левой части экрана, и вы увидите троеточие справа от названия запроса. Нажмите туда и выберите "Duplicate". Теперь под исходным запросом появится его копия, "Verify Add Pet copy". Кликните по запросу, затем на троеточие, и выберите "Переименовать". Переименуйте его в "Verify Update Pet". Так как мы будем использовать его для проверки PUT, зажмите его мышью и перетащите после PUT-запроса.

Теперь мы создадим запрос DELETE:

Request type: DELETE

URL: http://petstore.swagger.io/v2/pet/100

Сохраните его в коллекцию с названием "Delete Pet".

И, наконец, нам нужен еще один GET-запрос, чтобы убедиться, что удаление сработало. Продублируйте запрос "Verify Update Pet", переименуйте копию в "Verify Delete Pet" и переместите его под DELETE-запрос. Помните, что при прогоне этого запроса после удаления вы должны получить ответ "Pet not found".

Теперь у нас есть коллекция из шести запросов, которые можно использовать для проверки функциональности питомца в Pet Store! Они должны выглядеть примерно так:


Попробуйте понажимать на запросы по порядку и использовать синюю кнопку "Send" сверху справа на экране для прогона каждого из них. У вас должно получиться добавить питомца, убедиться, что он добавлен, обновить его, убедиться в обновлении, удалить и подтвердить удаление.

Мы будем использовать эту коллекцию далее, чтобы создать правила, превращающие запросы в настоящие тесты.

Больше информации по этой теме вы можете получить в курсе Тестирование REST API

Предыдущие статьи на эту тему

Введение в REST-запросы и тестирование GET-запросов

Тестирование POST-запросов

Тестирование PUT-запросов

Обсудить в форуме