Какими пользуешься инструментами для тестирования API
Python
Middle
СБЕР Центр ИИ
Какими пользуешься инструментами для тестирования API
Ответы
Для тестирования API в Python популярны следующие инструменты:
- **Requests + Pytest** – базовый вариант для ручного тестирования:
```
import requests
import pytest
def test_get_user():
response = requests.get("https://api.example.com/users/1")
assert response.status_code == 200
assert response.json()["id"] == 1
```
- **Pytest + Plugins** (например, `pytest-httpx` для мокирования):
```
import pytest
import httpx
@pytest.mark.asyncio
async def test_mock_api(httpx_mock):
httpx_mock.add_response(json={"data": "test"})
async with httpx.AsyncClient() as client:
response = await client.get("https://fake-api.com")
assert response.json()["data"] == "test"
```
- **FastAPI TestClient** – для тестирования FastAPI-приложений:
```
from fastapi.testclient import TestClient
from main import app
client = TestClient(app)
def test_read_root():
response = client.get("/")
assert response.status_code == 200
```
- **Locust** – нагрузочное тестирование:
```
from locust import HttpUser, task
class ApiUser(HttpUser):
@task
def get_users(self):
self.client.get("/users")
```
- **Schemathesis** – тестирование на соответствие OpenAPI/Swagger:
```
schemathesis run --checks all http://example.com/swagger.json
```
Также используют **Postman** (GUI), **RestAssured** (Java), **Karate** (BDD-стиль). Выбор зависит от задач: юнит-тесты, интеграция, нагрузка или валидация спецификации.