Pet-проект по автоматизации тестирования REST API с помощью Python + Pytest.
Проект проверяет фейковый API jsonplaceholder.typicode.com и демонстрирует навыки:
- написания автотестов
- валидации данных
- обработки ошибок
- тест-дизайна и параметризации
- подготовки отчётов
- ✅ Получение всех пользователей
/users - ✅ Получение пользователя по ID
/users/{id} - ✅ Поиск пользователей по городу
- ✅ Проверка уникальности ID
- ✅ Создание пользователя (
POST /users) - ✅ Негативные кейсы (404, пустые поля, неправильные типы)
- ✅ Валидация структуры через
jsonschema - ✅ Smoke-тест: API отвечает
- ✅ HTML-отчёты с
pytest-html
api_testing_project/
├── api/ # API-запросы
├── schemas/ # JSON-схемы
├── tests/ # Тесты Pytest
├── utils/ # Утилиты (валидация схем)
├── reports/ # HTML-отчёты
├── .venv/ # Виртуальное окружение (в .gitignore)
├── .gitignore
├── requirements.txt
└── README.md
git clone https://github.com/TomOstin/api-testing-project.git
cd api-testing-project
python -m venv .venv
.venv\Scripts\activate # для Windows
pip install -r requirements.txtЗапуск всех тестов:
pytest tests/Создание HTML-отчёта:
pytest tests/ --html=reports/report.htmldeftest_get_user_by_id():
user=get_user_by_id(1)
assertuser["id"] ==1validate_user_schema(user, user_schema)Пример отчёта после запуска:
Проект работает с фейковым API, который не реализует реальную валидацию.
Все POST-запросы "успешны", даже с некорректными данными — это поведение симуляции, а не ошибки проекта.
Tom Ostin
Python-разработчик и тестировщик
GitHub: TomOstin /
Telegram: TomOstin
