Урок 14. Summary session 7
⚡ Кратко: Summary session 7
Summary session 7 — повторение ключевых тем урока 13: библиотека requests, HTTP-методы, объект Response, работа с заголовками/параметрами/JSON, базовое API-тестирование, класс CompanyApi.
- requests:
requests.get(url),requests.post(url, json=data),requests.patch(),requests.delete() - Response:
resp.status_code,resp.json(),resp.text,resp.headers - Тест: отправить запрос → проверить
status_code→ проверить тело черезresp.json() - CompanyApi: класс-обёртка над requests — инкапсулирует URL, методы, проверки статусов
- JSON ↔ Python:
json.loads()— строка → dict/list;resp.json()— авторазбор ответа
Топ-3 ошибки: 1) Используют resp.text вместо resp.json() и не могут обратиться к полям как к словарю. 2) Не проверяют status_code перед чтением тела ответа. 3) Хранят URL прямо в каждом тесте вместо base_url или класса.
📖 О чём этот урок
Это урок-повторение блока «Введение в API-тестирование». Закрепляем всё, что изучали в уроке 13: зачем нужна библиотека requests, как строятся HTTP-запросы, что такое объект Response, как работать с JSON-ответами и как оформить работу с API в виде класса.
В уроке также разобраны вопросы экспресс-опроса из лекции и домашнее задание: класс EmployeeApi с тестами создания, получения и изменения сотрудника.
Урок открывает блок API-тестирования (уроки 13–16). После него — переход к автоматизации API-тестов с pytest-фикстурами.
Что повторим
- Клиент-серверная архитектура: клиент, сервер, HTTP/HTTPS
- HTTP-методы: GET, POST, PUT, PATCH, DELETE и их назначение
- Состав HTTP-запроса и ответа: URL, метод, заголовки, тело, статус-код
- Библиотека
requests: установка, базовые методы - Объект
Response:status_code,json(),text,headers - Работа с JSON:
json.loads(), разницаtextvsjson() - Практика: запросы к XClients API (company list, auth, create, delete)
- Класс
CompanyApi: инкапсуляция логики запросов - Разбор ДЗ: класс
EmployeeApi+ тесты CRUD-операций
📚 Что повторить перед изучением
- ← Урок 13: Введение в Requests — HTTP и API-тестирование
- Словари Python: создание, доступ по ключу,
.get(), вложенные словари - Модуль
json:json.loads(),json.dumps() - Классы Python:
__init__, методы,self - pytest:
assert, запуск тестов, именованиеtest_*.py
🎯 Что изучать дальше
- → Урок 15: Автоматизация API-тестов — pytest-фикстуры, параметризация
- pytest-фикстуры для API:
@pytest.fixture, передача токена между тестами - Параметризация:
@pytest.mark.parametrize - Проверка JSON-схем:
jsonschema - Allure-отчёты для API-тестов