Урок 13. Введение в Requests

📁 Блок: API-тестирование ⏱️ Время изучения: ~60 мин 🎯 Сложность: Средняя
#requests #http #api-testing #rest #pytest #json

⚡ Кратко: библиотека requests — HTTP из Python

requests — популярная библиотека Python для отправки HTTP-запросов. Позволяет делать GET/POST/PUT/DELETE/PATCH, передавать заголовки, параметры, JSON-тело и обрабатывать ответ сервера.

  • Установка: pip install requests
  • GET: resp = requests.get(url, params={...}, headers={...})
  • POST: resp = requests.post(url, json={...})
  • Ответ: resp.status_code / resp.json() / resp.text / resp.headers
  • Сессия: with requests.Session() as s: s.get(url) — переиспользует соединение и куки
  • Класс-клиент: вынести все запросы в CompanyApi — тесты становятся чище

Топ-3 ошибки: 1) Не проверить status_code — тест молча проходит с ошибкой 422/500. 2) Перепутать data= и json= — Content-Type будет неверным. 3) Вызвать .json() когда сервер вернул HTML — JSONDecodeError.

📖 О чём этот урок

Этот урок открывает блок API-тестирования. Вы узнаете, что такое клиент-серверная архитектура, HTTP-методы и статус-коды, как работает библиотека requests, научитесь делать GET и POST запросы, разбирать ответ сервера и писать базовые pytest-тесты для REST API. В конце урока создадим класс CompanyApi — прообраз архитектуры API-клиента.

Что изучим

  • Клиент-серверная архитектура, HTTP и HTTPS
  • Состав HTTP-запроса: URL, метод, заголовки, тело
  • HTTP-методы: GET, POST, PUT, PATCH, DELETE и другие
  • Статус-коды: 2xx, 3xx, 4xx, 5xx
  • REST API — набор соглашений для организации запросов
  • Библиотека requests: установка и основные методы
  • Объект Response: status_code, .json(), .text, .headers, .ok
  • Работа с JSON в Python: json.loads(), словари и списки
  • Сервис X-Clients: модули auth, company, employee, superuser
  • Написание pytest-тестов для API: GET-список, POST-создание, негативные тесты
  • Паттерн API-клиента: класс CompanyApi

📚 Что повторить перед изучением

🎯 Что изучать дальше