Postman коллекция (52 теста): - Аутентификация (3): login, refresh, verify - Сотрудники (11): CRUD, search, bulk operations, skills - Отделы (3): list, create, retrieve - Документы (3): list, create, retrieve - Лента (5): posts CRUD с пагинацией - Коммуникации (5): чаты и сообщения - Календарь (3): события и подписки - Заявки (3): requests CRUD - Уведомления (3): list, mark_read, mark_all_read - Действия сотрудников (3): actions CRUD - Роли отделов (3): department_roles CRUD - Продвинутые функции: группы (5), навыки (2) Newman CLI интеграция: - newman_test_results.txt - последний запуск (32 requests, 0 failures) - newman-report.json - детальный JSON отчет REST Client: - api_tests.http - альтернатива Postman для VSCode REST Client Документация: - API_QUICKSTART.md - быстрый старт с примерами - docs/guides/API_TESTING_GUIDE.md - полное руководство (см. след. коммит)
5.6 KiB
5.6 KiB
🚀 Быстрый старт: Тестирование API
Выбор инструмента
| Инструмент | Использование | Сложность |
|---|---|---|
| Postman | GUI, удобный интерфейс | ⭐⭐ |
| REST Client | VS Code, быстрое тестирование | ⭐ |
| pytest | Автоматизация, CI/CD | ⭐⭐⭐ |
| cURL | Консоль, скрипты | ⭐⭐ |
1️⃣ Postman (рекомендуется для начинающих)
Установка
- Скачайте Postman
- Установите и запустите
Импорт коллекции
1. File → Import
2. Выберите файл: EUSRR_API.postman_collection.json
3. Также импортируйте: EUSRR_Local.postman_environment.json
4. Выберите environment "EUSRR Local" в правом верхнем углу
Первый запрос
1. Откройте "Authentication → Login"
2. Нажмите "Send"
3. Токен автоматически сохранится! ✅
4. Теперь можно выполнять любые запросы
2️⃣ REST Client (для VS Code)
Установка
1. Откройте Extensions (Ctrl+Shift+X)
2. Найдите "REST Client"
3. Установите от Huachao Mao
Использование
1. Откройте файл: api_tests.http
2. Найдите "### Login"
3. Нажмите "Send Request" над запросом
4. Скопируйте access token
5. Замените @accessToken на ваш токен
6. Готово! 🎉
3️⃣ pytest (автоматизированное тестирование)
Запуск всех тестов
# В Docker
docker-compose exec web pytest tests/api/
# Локально
.venv/Scripts/python -m pytest tests/api/
Запуск конкретного теста
docker-compose exec web pytest tests/api/examples/test_api_examples.py::TestAuthentication::test_login_with_email -v
С покрытием кода
docker-compose exec web pytest tests/api/ --cov=api --cov-report=html
4️⃣ cURL (консоль)
Получить токен
curl -X POST http://localhost:8000/api/auth/token/ \
-H "Content-Type: application/json" \
-d '{"username": "admin@example.com", "password": "password"}'
Использовать токен
TOKEN="your_token_here"
curl -X GET http://localhost:8000/api/v1/employees/ \
-H "Authorization: Bearer $TOKEN"
📋 Основные endpoints
Аутентификация
POST /api/auth/token/- Получить токенPOST /api/auth/token/refresh/- Обновить токенPOST /api/v1/auth/register/- Регистрация
Сотрудники
GET /api/v1/employees/- СписокGET /api/v1/employees/me/- Текущий пользовательGET /api/v1/employees/{id}/- Конкретный сотрудникPATCH /api/v1/employees/{id}/- Обновить
Посты
GET /api/v1/posts/- СписокPOST /api/v1/posts/- СоздатьPOST /api/v1/posts/{id}/like/- Лайк
Мессенджер
GET /api/v1/communications/chats/- ЧатыGET /api/v1/communications/messages/?chat={id}- СообщенияPOST /api/v1/communications/messages/- Отправить
Документы
GET /api/v1/documents/- СписокPOST /api/v1/documents/- СоздатьGET /api/v1/documents/{id}/- Получить
Заявки
GET /api/v1/requests/- СписокPOST /api/v1/requests/- СоздатьPATCH /api/v1/requests/{id}/- Обновить
Уведомления
GET /api/v1/notifications/- СписокPOST /api/v1/notifications/{id}/mark_as_read/- Пометить прочитанным
🔐 Пример авторизованного запроса
Postman
Authorization: Bearer {{access_token}}
(автоматически подставляется)
REST Client
GET {{baseUrl}}/api/v1/employees/
Authorization: Bearer {{accessToken}}
cURL
curl -H "Authorization: Bearer YOUR_TOKEN" \
http://localhost:8000/api/v1/employees/
Python requests
import requests
token = "your_token"
headers = {"Authorization": f"Bearer {token}"}
response = requests.get(
"http://localhost:8000/api/v1/employees/",
headers=headers
)
⚠️ Частые ошибки
401 Unauthorized
❌ Токен отсутствует или истек
✅ Выполните Login снова
403 Forbidden
❌ Нет прав доступа
✅ Проверьте роль пользователя
404 Not Found
❌ Неверный URL или ID
✅ Проверьте endpoint
400 Bad Request
❌ Ошибка в данных запроса
✅ Проверьте JSON и обязательные поля
📚 Полная документация
Детальная документация: docs/guides/API_TESTING_GUIDE.md
🎯 Следующие шаги
- ✅ Выберите инструмент тестирования
- ✅ Импортируйте коллекцию/откройте файл
- ✅ Выполните Login
- ✅ Протестируйте endpoints
- ✅ Изучите примеры тестов
Вопросы? Смотрите API_TESTING_GUIDE.md