cURL Basics — документация К тестеру

MRE (Minimal Reproducible Example)

Текст термина (дословно из источника)

MRE - это минимальный набор входных данных и команды, который стабильно воспроизводит проблему.

Простыми словами: это "короткий и точный кейс", который другой инженер может запустить и увидеть ту же ошибку.

Обязательная структура MRE для API-инцидента:

  1. один endpoint;
  2. один метод;
  3. минимальные параметры запроса;
  4. замаскированные секреты;
  5. ожидаемый результат vs фактический результат;
  6. точная команда cURL и полный код/текст ошибки;
  7. время и среда воспроизведения.

Подробный шаблон MRE (на примере Метрики):

  1. Контекст инцидента
  • Среда: dev / stage / prod.
  • Время (UTC): <timestamp>.
  • Сценарий: auth-check / read-report / logs-workflow.
  1. Входные данные
  • Endpoint: /stat/v1/data или /management/v1/counters.
  • Метод: GET.
  • Параметры (если отчет):
  • ids=<counter_id>
  • metrics=ym:s:visits
  • date1=today-7
  • date2=today
  • Заголовки:
  • Authorization: OAuth <REDACTED_TOKEN>
  • Accept: application/json
  1. Команда воспроизведения (базовая)
  • curl -sS -i -H "Authorization: OAuth <token>" -H "Accept: application/json" "https://api-metrika.yandex.net/stat/v1/data?ids=<counter_id>&metrics=ym:s:visits&date1=today-7&date2=today"
  1. Команда воспроизведения (диагностическая)
  • curl -v -i --connect-timeout 5 -m 25 --retry 1 -H "Authorization: OAuth <token>" -H "Accept: application/json" "https://api-metrika.yandex.net/stat/v1/data?ids=<counter_id>&metrics=ym:s:visits&date1=today-7&date2=today"
  1. Формат фиксации результата
  • Ожидалось:
  • HTTP 200 и валидный блок данных отчета.
  • Фактически:
  • HTTP <status_code>;
  • ключевое сообщение ошибки/поле ошибки;
  • наблюдаемая повторяемость: <always/intermittent>.
  1. Минимум для эскалации
  • sanitized-команда;
  • sanitized-ответ (заголовки + body);
  • counter_id (если применимо);
  • период/метрика;
  • подтверждение, что auth-check к /management/v1/counters проходит или не проходит.

Критерии качества MRE:

  • другой инженер воспроизводит проблему без дополнительных уточнений;
  • в кейсе нет утечки секретов;
  • из кейса понятно, ошибка в доступе, параметрах, лимитах или временной недоступности.

Практический вывод:

  • Качественный MRE резко ускоряет triage, эскалацию и время восстановления.
  • Для Метрики MRE почти всегда должен включать counter_id, параметры отчета и контекст прав токена, иначе кейс неполный.