Скажите честно. Знали ответ на вопрос или нет ? Попробуйте проверить себя перед открытием ответа.
Определение задачи
Проверка корректности данных в БД после API запроса — это валидация того, что операция через API корректно изменила данные в базе данных. Это ключевой этап API-тестирования, обеспечивающий целостность данных на уровне бэкенда.
Основные методы проверки✅ Прямой SQL-запрос к БД — выполнение SELECT-запроса для извлечения данных и сравнение с ожидаемым результатом. Это наиболее надежный метод для проверки состояния данных. ✅ Повторный GET-запрос через API — использование API-метода для получения созданных/обновленных данных. Подходит когда есть соответствующий эндпоинт для чтения данных. ✅ Комбинированная валидация — использование обоих методов для повышения надежности тестов. SQL проверяет фактическое состояние БД, GET-запрос валидирует корректность работы API.
Пошаговый процесс проверки
1. Подготовка тестовых данных✅ Записать начальное состояние БД перед запросом ✅ Подготовить уникальные идентификаторы для поиска записей ✅ Зафиксировать timestamp для фильтрации по времени создания
2. Выполнение API-запроса✅ Отправить POST/PUT/PATCH/DELETE запрос ✅ Сохранить ID созданной/обновленной записи из Response ✅ Проверить HTTP status code (200, 201, 204)
3. SQL-валидация данных
-- Проверка создания записи
SELECT * FROM users
WHERE user_id = 'ID_из_API_ответа';
-- Проверка обновления полей
SELECT name, email, updated_at
FROM users
WHERE user_id = 123;
-- Проверка связанных таблиц
SELECTu.name , o.order_id
FROM users u
JOIN orders o ON u.user_id = o.user_id
WHERE u.user_id = 123;
4. Что проверять в БД (см таблицу - картинку в заголовке поста)
Ключевые подходы:1️⃣ Прямой SQL-запрос
Выполнение SELECT для извлечения данных
Сравнение с ожидаемым результатом2️⃣ Повторный GET-запрос
Использование API для получения данных
Подходит когда есть эндпоинт для чтения3️⃣ Комбинированная валидация
SQL проверяет фактическое состояние БД
GET валидирует корректность работы API4️⃣ Проверка связанных таблиц
JOIN-запросы для валидации Foreign Keys
Каскадные изменения в зависимых записях5️⃣ Временные метки
Проверка created_at и updated_at
Фильтрация по времени создания6️⃣ Типы данных и NULL
Валидация формата сохраненных данных
Обработка пустых значений
SQL-операторы для проверки:
🔹 WHERE - фильтрация по условию
🔹 JOIN - проверка связей между таблицами
🔹 COUNT - подсчет количества записей
🔹 GROUP BY - агрегация данных
🔹 IS NULL / IS NOT NULL - проверка пустых значений
Инструменты:🛠 MySQL Workbench - GUI для MySQL 🛠 Postman - API + SQL через Scripts 🛠 DBeaver - универсальный SQL-клиент 🛠 SSMS - для MS SQL Server
Типовые ошибки:❌ Асинхронность - данные не записаны сразу ✅ Решение: добавить задержку или retry ❌ Транзакции - незавершенный COMMIT ✅ Решение: проверить статус транзакции ❌ Кэширование - API возвращает старые данные ✅ Решение: проверить БД напрямую ❌ Форматирование - разные форматы дат ✅ Решение: нормализация при сравнении ❌ NULL vs пустая строка ✅ Решение: явная проверка обоих случаев
Best Practices для QA:✅ Всегда проверяйте БД для критичных операций ✅ Используйте транзакции для отката тестов ✅ Проверяйте связанные таблицы через JOIN ✅ Валидируйте типы данных, не только значения ✅ Проверяйте граничные случаи (NULL, max length) ✅ Для GET сравнивайте Response с БД ✅ Документируйте SQL-запросы в тест-кейсах
Когда проверять БД:✅ POST - создание записи ✅ PUT/PATCH - обновление данных ✅ DELETE - удаление/soft delete ✅ Каскадные операции с FK ✅ Триггеры и хранимые процедуры ✅ Batch операции (массовое обновление)
#собеседование #собес #qaсобес #SQL #БД #APIтестирование #тестирование #тестировщик #QA4Life #database #MySQL #PostgreSQL #validation #QA
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥6❤2