Як тестувати серверний кеш

1. Перевірка, чи кеш працює взагалі

  • Зроби запит до API/серверу, який використовує кеш
  • Повтори той самий запит кілька разів
  • Перевір, чи другий/третій запит швидший (менше часу відповіді)
  • Перевір, чи дані беруться не з БД, а з кешу (через логування, дебаг, або моніторинг кеш-хітів)

🔍 Якщо є доступ до Redis або кеш-слою — перевір ключі вручну


🔁 2. Кешування результатів

  • Зроби запит → збережи результат
  • Зміни дані у джерелі (наприклад, у БД)
  • Зроби запит знову — переконайся, що кеш не оновився одразу
  • Перевір, що після закінчення TTL (час життя) кеш оновлюється

Це перевірка того, що кеш не бере свіжі дані одразу, а дає “старі” протягом заданого часу


🧹 3. Очистка кешу

  • Зміни дані в системі (наприклад, онови профіль користувача)
  • Перевір, що кеш був оновлений/очищений після цієї операції
  • Перевір вручну в Redis або логах — чи видалено старі ключі

У складніших системах кеш очищається по подіях, наприклад: “оновив юзера → очищаємо кеш по ключу user:123


🔑 4. Перевірка правильності ключів

  • Кеш повинен зберігатися під унікальними ключами
  • Тест: запит user/1 і user/2 не повинні повертати однакові дані
  • Перевір кеш вручну (наприклад, через GET user:1 у Redis CLI)

⏱️ 5. Тест TTL (Time to Live)

  • Зробити запит → переконатися, що ключ з’явився
  • Дочекатись, поки TTL сплине
  • Повторити запит → дані мають оновитись, а не прийти з кешу

🚫 6. Тестування при вимкненому кеші

  • Вимкни кешування (тимчасово, через налаштування або мок)
  • Переконайся, що система працює правильно, але повільніше
  • Важливо: додаток не повинен падати через відсутність кеша

🧪 Тест-кейси (приклади):

Назва тестуОчікувана поведінка
Повторний запит повертається швидшеДані беруться з кешу, час відповіді менший
Кеш очищується після оновленняКеш видаляється або оновлюється
Дані з кешу не змінюються протягом TTLПротягом TTL дані статичні
Кеш не заважає оновленнюОновлення БД змінює кеш після TTL або через інвалідацію
Невірний ключ → кеш не використовуєтьсяДані не беруться з кешу, якщо ключ не співпадає