В настоящее время каждый из нас сталкивается с REST API, разрабатывая или используя такие сервисы. Кроме того, мы живем в эру микросервисов, где мы разделяем нашу бизнес-логику на небольшие отдельные сервисы, независимые от каждого. В основном эти сервисы следуют принципам RESTful и используют для связи формат JSON, который стал наиболее широко используемым из-за своей простоты.
pyhttptest — инструмент командной строки для HTTP-тестов через API-интерфейсы RESTful
Благодаря этой утилите можно автоматизировать тестирование в три простых шага.
1. Установка пакета
pip install pyhttptest
2. Опишите ваши тест-кейсы HTTP-запросов для вашей службы API в простейшем и широко используемом формате JSON, записав их в файл.
Примеры определения тест-кейса
{ "name": "TEST: Get server status", "verb": "GET", "endpoint": "/get", "host": "https://httpbin.org", "headers": { "Accept-Language": "en-US" } }
{ "name": "TEST: Create an HTML bin", "verb": "POST", "endpoint": "post", "host": "https://httpbin.org", "payload": { "content": "Hello, world!" } }
Пример определения множественных тестов
[ { "name": "TEST: List all users", "verb": "GET", "endpoint": "api/v1/users", "host": "http://localhost:8085/", "headers": { "Accept-Language": "en-US" }, "query_string": { "limit": 1 } }, { "name": "TEST: Add a new user", "verb": "POST", "endpoint": "api/v1/users", "host": "http://localhost:8085/", "payload": { "username": "pyhttptest", "email": "admin@pyhttptest.com" } }, { "name": "TEST: Modify an existing user", "verb": "PUT", "endpoint": "api/v1/users/XeEsscGqweEttXsgY", "host": "http://localhost:8085/", "payload": { "username": "pyhttptest" } }, { "name": "TEST: Delete an existing user", "verb": "DELETE", "endpoint": "api/v1/users/XeEsscGqweEttXsgY", "host": "http://localhost:8085/" } ]
3.Запускаем команду и получаем отчет
pyhttptest execute data/test_server_status.json
Отчет с одиночного теста
pyhttptest execute data/requests.json
Отчет множественного тестирования
Свойства, которые вы должны указать в .json файле таковы:
Best practices
У вас может возникнуть один вопрос: как добавлять, структурировать и организовывать тестовые примеры в мой существующий/новый проект. Каждый проект Python, в котором есть тесты, содержит в своем каталоге проектов папку, которая называется tests/.
По соглашению, из этого каталога лучшие фреймворки, такие как unittest и pytest, ищут и выполненяют определенные тест-кейсы в скриптах Python. Чтобы не связываться с этими тестами и не нарушать соглашения, мы предлагаем создать новый каталог в корневом каталоге вашего проекта с именем live_tests/.
Внутри нового каталога вы можете поместить все файлы .json с определенными тестовыми примерами для API. Благодаря этому ваши тесты будут легко различимы. Но это зависит только от вас!
При анализе данных часто требуется быстро найти абсолютное значение набора чисел. Для выполнения этой задачи…
Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…
Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…
В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…
В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…
При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…