Раздел 43 · Автотестирование с нуля

Архитектура API-тестов, часть 1: слои, конфиг и константы

middle~45 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Тимур · бэкенд, #qa-antrakt

Предупреждаю заранее: в следующем релизе админские ручки переезжают под /admin, то есть /users станет /admin/users. Сколько у вас времени уйдёт, чтобы тесты это пережили?

Оля · DevOps, #qa-antrakt

И заодно: хотим гонять набор не только на shared, но и на stage перед релизом. Адрес стенда у вас в conftest.py строкой, пароль админа там же. Можно это вынести в переменные окружения, как у всех нормальных сервисов?

Вера Ланская · лид QA, #qa-antrakt

Посчитай, во скольких местах набор знает путь /users. Если больше одного, это не тесты переживают переезд, это ты будешь переживать. Пора раскладывать код по слоям.

До сих пор мы чинили отдельные болячки tests_final_v2/: проверки в уроке 50, данные в прошлом уроке. Сегодня займёмся устройством набора целиком. Это первый из двух уроков про архитектуру API-тестов: здесь слои, конфиг и константы, в следующем модели, билдеры и декораторы.

Гость не ходит на кухню

В ресторане гость говорит официанту: «стейк средней прожарки». Официант переводит это в заказ для кухни по форме, которую кухня понимает. Повар знает плиту, сковородки и температуру. Каждый знает своё и не лезет в чужое. Гость не знает, на какой конфорке жарят. Официант не трогает сковородку.

Теперь представь гостя, который сам идёт на кухню, включает плиту и жарит стейк, потому что так быстрее. Один раз и правда быстрее. Но когда ресторан купит новую плиту, переучивать придётся не повара, а всех гостей.

Фикстура Глеба, которая шлёт requests.post в обход UserApi, и есть такой гость.

урок из курса

Урок из курса «Автотестирование с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.