База Hintsage

Тестирование API и интеграций

Контракты HTTP и событий, интеграционные проверки, моки и тестовые данные.

Практика

Вопросы: Тестирование API и интеграций

Практическая ситуация: сервис записывает заказ в базу данных и публикует событие для другого сервиса. При сбое между этими действиями заказ сохраняется, но событие теряется. Какой механизм устранит этот разрыв?

начать транзакцию базы данных
заказ = сохранить_заказ(данные)
зафиксировать транзакцию
опубликовать("ЗаказСоздан", заказ.id)
ТестированиеТестирование API и интеграцийИнженер по качеству интеграций

Событие публикуется независимо от версии потребителя: продюсер добавил обязательное поле, после чего старый потребитель перестал его обрабатывать. Какой инвариант совместимости должен проверять интеграционный тест?

ТестированиеТестирование API и интеграцийИнженер по интеграционному тестированию

Практическая ситуация: HTTP-команда запускает асинхронную обработку, а результат становится доступен позже. Как построить интеграционную проверку, чтобы она не зависела от фиксированной задержки?

ТестированиеТестирование API и интеграцийИнженер по автоматизации тестирования интеграционных систем

Практическая ситуация: два клиента читают один ресурс, затем один из них сохраняет изменения раньше другого. Какой HTTP-контракт должен предотвратить перезапись более свежих данных вторым клиентом?

GET /accounts/42 HTTP/1.1

HTTP/1.1 200 OK
ETag: "v7"

PATCH /accounts/42 HTTP/1.1
If-Match: "v7"

HTTP/1.1 412 Precondition Failed
ТестированиеТестирование API и интеграцийИнженер по автоматизации тестирования интеграций

Сервис поддерживает условный GET, а клиент уже сохранил представление ресурса. Какой основной контракт должен проверить интеграционный тест при отсутствии изменений ресурса?

GET /profiles/42 HTTP/1.1
If-None-Match: "v7"

HTTP/1.1 304 Not Modified
ETag: "v7"
ТестированиеТестирование API и интеграцийИнженер по автоматизации интеграционного тестирования

Показано 1–20 из 50