Получите запрос обратного вызова в автоматическом тесте Postman

Я пытаюсь написать автоматические тесты с помощью Postman. Я новичок в мире автоматизации почтальонов, так что извините, если вопрос покажется глупым.

В API, который мне нужно протестировать, когда я отправляю запрос, я немедленно получаю ответ с идентификатором транзакции, независимо от того, завершилась транзакция или нет. Вместе с моим запросом я отправляю CallbackURL на сервер, где, как я ожидаю, будет отозван фактический результат транзакции. Сервер выполнит запрос PUT обратно на CallbackURL, который я предоставил с идентификатором транзакции и фактическим ответом или ошибкой.

Итак, вопрос в том, могу ли я иметь такие сценарии в моих тестах почтальона? Я предполагаю, что мне следует запустить веб-сервер и открыть конечную точку, которая будет ожидать запрос PUT, и я должен получить тело этого запроса PUT в своих тестах, чтобы проверить его и успешно ответить на него.

Другими словами, в моем скрипте мне нужно выполнить следующие действия:

  1. Сделайте запрос к серверу, передав URL-адрес обратного вызова
  2. проверить немедленный ответ от сервера и сохранить возвращенный идентификатор транзакции
  3. Запустите веб-сервер с конечной точкой, которую я передал как URL-адрес обратного вызова
  4. Ожидайте запроса к этой конечной точке с идентификатором транзакции и фактическим ответом
  5. Убедитесь, что ответ именно такой, как я ожидал
  6. Успешно ответили на запрос

Я думал о сервере Postman Mock, но, похоже, он не предназначен для такого использования. Я также думаю, что могу запустить какой-нибудь веб-сервер JS (может быть nodeJS) внутри песочницы почтальона ...

На самом деле я новичок в тестировании почтальонов, и меня действительно смущает такая проблема. Можно ли это вообще сделать с почтальоном или мне нужно что-то еще?


person Andranik    schedule 16.07.2019    source источник


Ответы (1)


POSTMAN предоставляет некоторые функции, которые могут помочь вам решить вашу проблему.

  1. Когда вы запрашиваете сервер, передающий URL-адрес обратного вызова, он дает вам идентификатор транзакции в ответ. Сохраните этот идентификатор транзакции в переменной среды или глобальной переменной. То же самое можно сделать и для callbackURL. Например. pm.environment.set («идентификатор транзакции», идентификатор транзакции);
  2. Затем вы можете выполнить второй запрос, в котором вы передали URL-адрес обратного вызова и идентификатор транзакции, которые у вас уже есть.

Короче в POSTMAN есть такие функции, как

  • Задайте глобальную переменную и переменную среды, которая помогает передавать некоторые значения, полученные из ответа, на другой запрос.
  • вызовите другой запрос в случае успеха первого запроса, например. postman.setnextRequest ({{requestname}});

Если вы можете немного подробно упомянуть постановку проблемы, вам будет легче ответить лучше.

Надеюсь, что это поможет вам

person HalfBloodPrince    schedule 17.07.2019
comment
Привет. Спасибо за ответ. Дело в том, что мне не нужно делать запрос от почтальона второй раз, мне нужно слушать, как сервер выполняет обратный вызов мне - person Andranik; 17.07.2019