Как тесты из Postman запустить в командной строке Newman

Всем привет.
Это продолжение темы

Так что если есть желание - можете освежить :slight_smile: в памяти.

Тесты в Postman

В Postman - есть хороший раздел - тесты. И вы можете построить весь процесс тестирования API используя только #postman .

Справа - вы также можете найти шаблоны. Углубляться в сами тесты я не буду - это процесс творческий, в примере самые простые тесты - это что статус запроса 200 и что он “OK” - но скажу из практики что построить можно достаточно хороший и надежные тесты. Немного #javascript знаний вам не помешает, но по факту не зная его - можно легко нагуглить )
Сохранив свои тесты - в следующем запросе они будут запускаться и сразу показываться вам результат. Пример результатов на предыдущем скриншоте внизу.

Runner тестов

Так же в самом приложении есть вкладка "Runner"где все внимание сконцентрировано самим тестам, а не запросам.


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

Newman

И сейчас переходим к самому интересному. Это #newman - тот же Postman только #cli приложение которое позволит вам запускать тесты с консоли, а это значит что нам UI и графическая оболочка не нужна и мы сможем интегрировать его в наш ( ваш ) #ci - показывать настройку под #infrastructure:jenkins или #travisci я не буду… покажу на пк - принцип тот же.
Сначала устанавливаем его командой:

npm install -g newman

Дальше нам нужно сохранить нашу коллекцию тестов, и тут есть два варианта - мы можем сгенерировать урл для тестов или сохранить файлом.


На этом скриншоте вы видите кнопки - export и share.
Если нажать share то мы попадаем можем сгенерировать ссылку на нашу коллекцию и запускать тесты через нее.

Или вариант с export, тогда мы будем работать с файлом - указывая путь к нему.


Перед тем как запускать тесты - мы создаем файл - data.json, в котором мы сохраняем наши переменные - если они могут быть для разных env. Самая простая структурая этого файла

[{
    "playlist": "url для запроса"
}]

Теперь запускаем тесты в консоли:

newman run https://www.getpostman.com/collections/f3579fa0738c702676d1 -d data.json
newman run COLLECTION.postman_collection.json -d data.json

И если вы хотите добавить репорты - то их можно установить и запускать тесты с вашим репортером.
Вот тут можно посмотреть разные репортеры keywords:newman - npm search

Вывод

Newman - логическое дополнение работы с Postman. Он очень простой в использовании . Идеально подойдет для тех кто часто использует Postman и хочет немного большего с минимальными затратами по времени.

8 лайков

Очень люблю Postman (For API testing мой первый и по сей день ним и являеться).
Один из основных инструментов в тестировании у меня на работе, колекции, Среда, переменные - просто шоколад… :slightly_smiling_face:

Тут одно только забыл: если у тебя есть env то нужно добавить:
-e, --environment [file|URL] Specify a Postman environment as a JSON [file]

Например: (если для файла)
newman run /Users/alexandertunick/Desktop/BAL.postman_collection.json -e /Users/alexandertunick/Desktop/BAL.postman_environment.json

А так кул статья :slightly_smiling_face:
By the way, интеграцию з TeamCity CI не делали?

2 лайка

Делал - но на предыдущем проекте предыдущей компании ))) Полтора года назад… Прошелся по тем знаниям которые использовал - возможны неточности, извините если не все вспомнил ) Спасибо за отзыв.

1 лайк

Postman + newman - отличный инструмент для ручного и предварительного автоматизированого тестирования. Но к сожалению не очень пригоден для построения полностью автоматизированых тестов для больших проектов с большим количеством РЕСТ сервисов. Из-за отсутствия адекватной возможности переиспользовать код написание автотестов превращается в банальный копипаст, поддержка таких тестов превращается в сущий ад когда количество тестовых сценариев переваливает через 1000. Также данный инструмент очень требователен к ресурсам ПК, в случае параллельного запуска сценариев в отдельных тестраннерах имеет место огромное потребление оперативной памяти. Многие класные плюшки как то: моксерверы, мониторинг, планировщик, контроль версий доступны только в платной версии.
Хотя в целом сейчас Postman стал хорошей альтернативой SoaupUI.

2 лайка

Соглашусь :slight_smile: Использовал на предыдущем проекте так как я был только одним автоматизатором и все не успевал - научил коллегу писать тесты под #postman , а потом интегрировал их в дженкинс под #newman . Сам использовал больше python + requests. Такой подход полностью себя оправдал )))
Так что если есть желание добавить автоматизации в тестирование - это очень просто. И этот инструмент на начальных этапах очень помогает.