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

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

.
Автоматизация ваших API-тестов
28.03.2019 00:00

Автор: Кристин Джеквони (Kristin Jackvony)/
Оригинал статьи: http://thethinkingtester.blogspot.com/2018/04/automating-your-api-tests.html
Перевод:
Ольга Алифанова.

Запуск коллекции тестов в Postman – это отличный способ быстро протестировать ваше API. Но еще более быстрым способом будет автоматический запуск! Чтобы автоматизировать ваши Postman-тесты, нужно разобраться, как запускать их из командной строки.

Postman использует инструмент запуска командной строки Newman. Это модуль NodeJS, который легко установить через npm (Node Package Manager). Если у вас еще не установлен Node, это легко сделать через https://nodejs.org. Node содержит npm, поэтому после установки Node установить Newman очень легко. Просто откройте командную строку и наберите там следующее:

npm install -g newman

-g в этой команде сообщает npm, что Newman нужно установить глобально. Это позволит легко запускать Newman из командной строки вне зависимости от папки, в которой вы находитесь.

Теперь, когда Newman установлен, давайте попробуем запустить коллекцию! Мы будем использовать коллекцию PetStore, которую мы создавали и корректировали ранее. Чтобы запустить Newman, вам нужно экспортировать вашу коллекцию как файлы .json.

Найдите вашу коллекцию на левой панели Postman и нажмите на многоточие справа от нее. Выберите "Экспорт", затем выберите Collection v. 2.1 как вариант экспорта, и нажмите кнопку "Export". Вам предложат выбрать место для вашей коллекции – выбирайте то, которое вам больше нравится, но запомните его: оно понадобится вам для команды в Newman. Я экспортировала мою коллекцию на рабочий стол.

Теперь нажмите на иконку шестеренки в верхнем правом углу экрана, чтобы открыть окно окружений. Рядом с окружением PetStore нужно нажать на стрелку вниз. Сохраните экспортированное окружение в то же место, куда вы сохраняли коллекцию.

Теперь мы готовы дать команду Newman. В командной строке наберите следующее:

newman run <pathToYourFile> -e <pathToYourEnvironment>

Очевидно, вам нужно заменить <pathToYourFile> и <pathToYourEnvironment> на правильные пути. Так как я экспортировала свои json-файлы на рабочий стол, моя команда выглядит так:

newman run "Desktop/Pet Store.postman_collection.json" -e "Desktop/Pet Store.postman_environment.json"

-e в этой команде определяет, какое окружение нужно использовать с этой коллекцией.

Альтернативный способ указать на json-файлы – это перейти в их местоположение через команду cd. Если бы я запустила cd Desktop, моя команда выглядела бы так:

newman run "Pet Store.postman_collection.json" -e "PetStore.postman_environment.json"

Обратите внимание, что кавычки не нужны, если в названии вашего файла нет пробелов. Если бы я переименовала мои файлы так, что между Pet и Store не было бы пробела, я могла бы запустить коллекцию так:

newman run PetStore.postman_collection.json -e PetStore.postman_environment.json

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

Вызывая Newman, вы увидите, как ваши тесты прогоняются в командной строке, и в результате получите небольшую табличку, демонстрирующую результаты:


Если вы запускаете тесты в тест-окружении вашей компании, то можете столкнуться с тем, что Newman сообщает об ошибке безопасности. Это может быть связано с тем, что у вашего окружения самостоятельно подписанный сертификат. Newman по умолчанию имеет очень строгий SSL и ищет валидный SSL-сертификат. Вы можете изменить эту настройку, отправив команду с опцией –k, вот так:

newman run "Desktop/Pet Store.postman_collection.json" -e "Desktop/Pet Store.postman_environment.json" –k

Другая полезная опция – это –n. Она указывает на количество прогонов, заданное для ваших тестов. Хотите нагрузить приложение? Нет проблем:

newman run "Desktop/Pet Store.postman_collection.json" -e "Desktop/Pet Store.postman_environment.json" -n 1000

Такая команда прогонит ваши тесты тысячу раз. В таблице результатов вы увидите среднее время отклика на ваши запросы. Это, конечно, не полноценный нагрузочный тест, так как запросы прогоняются по одному, но это даст вам представление о типичном времени отклика.

Когда ваши команды в Newman заработают, вы можете запускать их через планировщик задач, или как скрипт Powershell, или интегрировать их в инструмент непрерывной интеграции – например, в Jenkins, TravisCI, Docker. Модуль для отчета о результатах Newman есть и для TeamCity.

Какой бы инструмент вы ни выбрали, у вас будет возможность автоматически запускать ваши API-тесты Postman!

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