Авторизация, объектный доступ и состояние · QA Orbit
Перейти к содержимому
QA ORBIT
Новости Инструменты Библиотека Полезные сайты Курсы ИИ и тестирование
Войти
КурсыТренажёры3
Маршруты обучения
КурсыТестирование API: контракт, данные и состояниеУрок 3
Программа курса

Тестирование API: контракт, данные и состояние

0 из 6 уроков пройдено
01HTTP-запрос, ответ и проверяемый контракт≈ 45 мин02Позитивные и негативные проверки данных≈ 50 мин03Авторизация, объектный доступ и состояние≈ 55 мин04Коллекция, окружение и осмысленные assertions≈ 55 мин05Диагностика, повторы и честный результат≈ 50 мин06Итоговый проект: проверка API-контракта≈ 80 мин
Учебные данные. Реальные навыки.
Урок 03 / 6 · 03 / Доступ и состояние≈ 55 мин с практикой

Авторизация, объектный доступ и состояние

Проверьте роли, команды и переходы с явным порядком ошибок и инвариантами.

В своём темпе
Что вы сможете после урока
  • Разделять аутентификацию и разрешение операции.
  • Строить объектную матрицу доступа.
  • Учитывать порядок ошибок и состояние после действия.

Кто вы и что вам разрешено

Аутентификация устанавливает субъект запроса; авторизация определяет, может ли этот субъект выполнить действие с конкретным объектом. В лаборатории токены публичные и фиксированные, чтобы управлять ролью без настоящих аккаунтов. Это учебный механизм, который нельзя переносить в production. Ошибка 401 относится к отсутствию или неверности токена, но действующий пользователь тоже может получить 403 или скрывающий 404.

Проверяйте не только роль, но и отношение к объекту: автор, другой участник той же команды, editor, другая команда. Для t1 Вера имеет право публикации как editor north, но не чтения чужого draft. Борис не имеет ни права чтения draft, ни права публикации. Олег editor, однако его команда south исключает доступ к объекту north раньше проверки роли. Один «admin-подобный» пользователь не представляет всю матрицу.

Порядок проверок — отдельная часть оракула

A5 намеренно фиксирует последовательность. Если Борис публикует t2, где он не автор и задача уже published, ответ 403 FORBIDDEN возникает раньше проверки состояния. Под Анной тот же t2 даст 409 ALREADY_PUBLISHED. Это не противоречие: различаются субъекты и первая нарушенная предпосылка. Негативный тест состояния должен иметь достаточные права, иначе 403 маскирует нужную ветвь.

Для пробельного t3 Анна проходит проверки сессии, команды, права и draft, поэтому получает 422 BLANK_TITLE. Если обратиться к t3 без токена, будет 401, а не 422. Запишите это в таблицу решений, затем выполните изолированные примеры каждой ветви. Не предполагайте универсальную семантику «403 всегда раньше 404» для всех сервисов: это точная договорённость нашего контракта.

Последовательность проверяет реальное изменение

Успешная публикация t1 под Верой должна изменить только state исходного объекта, сохранив ID, автора, команду, title, description и priority. Проверьте снимки целиком, затем чтение под Борисом: теперь published становится ему доступен. Повторная публикация под Анной возвращает 409 и не меняет запись. Так одна последовательность связывает действие с изменением поведения чтения, а не ограничивается статусом первой команды.

Каждый независимый сценарий начинает с известного reset. Внутри сценария reset между первым и повторным publish недопустим: он уничтожит нужное состояние и превратит повтор в первую публикацию. Если сценарии идут параллельно по одному t1, они могут мешать друг другу. Для учебного набора выполняйте их последовательно или создавайте отдельные объекты. В реальном наборе планируйте владение данными, безопасную очистку и независимость, иначе случайное падение будет ошибочно принято за дефект прав.

Матрица на свежем t1

ТокенGET /tasks/t1POST publish
demo-anna200: автор200: автор
demo-boris404: чужой draft403: нет права
demo-vera404: чужой draft200: editor
demo-oleg404: другая команда404: другая команда

Источники и проверка фактов

RFC 9110 — HTTP SemanticsСемантика методов и статусов. Порядок проверок и поля OrbitDesk заданы отдельным учебным контрактом, не самим HTTP.

Авторский учебный материал · Редакция QA Orbit · версия 2026-10-28.1

Теперь применим это к задачеПопробуйте сами, прежде чем открывать разбор.
Предыдущий урокПозитивные и негативные проверки данныхСледующий урокКоллекция, окружение и осмысленные assertions
QA ORBIT

Проверяй. Понимай. Расти.

Пространство осмысленного тестирования.
ИсследуйтеНовостиИнструментыБиблиотека
РазвивайтесьКурсыТренажёрыМаршруты обученияИИ и тестирование
Оставайтесь на орбитеО проекте Полезные сайтыГлоссарий
© 2026 QA Orbit. Сделано с вниманием к деталям.
КонфиденциальностьУсловия использования Всегда есть что исследовать