← Назад к функциям
Pro

Request Mocker

Request Mocker изменяет сетевой трафик в браузере, не затрагивая серверную часть — блокируйте запросы, устанавливайте или удаляйте заголовки запросов и ответов, а также возвращайте свои собственные коды состояния, тела и задержки, чтобы вы могли тестировать состояния, которые реальный API не будет создавать по требованию.

До некоторых штатов до боли трудно добраться. Пустой информационной панели нужен пустой ответ, баннеру повторной попытки — 500, скелету загрузки — медленная конечная точка, а интерфейсу — конечная точка, которая еще не существует. Обычно каждый из них означает изменение серверной части, заполненную базу данных или закомментированную строку, которую вы надеетесь не отправлять.

Request Mocker создает эти состояния в браузере. Сопоставьте URL-адрес с помощью подстроки или подстановочных знаков, а затем решите, что произойдет: заблокируйте запрос, чтобы страница увидела ошибку, перезапишите заголовки запроса или ответа на лету или верните стандартный ответ с кодом состояния, типом контента, телом и задержкой по вашему выбору. Страница не может определить разницу, поэтому ваша реальная обработка ошибок, пустые состояния и тайм-ауты работают по-настоящему.

Блокировка и перезапись заголовков используют правила declarativeNetRequest Chrome, поэтому они применяются ко всему, что запрашивает страница, в том числе при перезагрузке. Поддельные ответы подаются для получения и XMLHttpRequest изнутри страницы, и панель регистрирует каждый из них по мере его обработки вместе со счетчиком посещений для каждого правила, поэтому вы можете сразу увидеть, соответствует ли ваше правило тому, что вы думаете.

От правил намеренно легко избавиться. Они сохраняются для каждого сайта, применяются только к текущей вкладке, и каждый из них удаляется в тот момент, когда вы закрываете инструмент — поэтому нет возможности потратить день на отладку проблемы, которая оказывается имитацией, о которой вы забыли.

Предпросмотр в реальном времени
app.example.com
Request Mocker На этой вкладке активны 3 правила
Новое правило
Ложный ответ GET /api/orders
Статус 500 Задержка мс 1200 Добавить правило
Правила
насмехаться GET /api/orders → 500 7 ●
блокировать ANY analytics.vendor.com/* ●
заголовки ANY /api/* → Cache-Control: no-store ●
Показаны издевательские ответы
GET 500 /api/orders?page=1 · fetch · 14:22:07
GET 500 /api/orders?page=2 · fetch · 14:22:11
Ключевые особенности

Блокировать любой запрос

Не позволяйте никогда покидать запрос, соответствующий URL-адресу и методу, и наблюдайте, как ведет себя страница, когда скрипт, изображение, трекер или вызов API просто никогда не поступает.

Переписывайте заголовки на лету

Установите или удалите заголовки запроса и ответа — добавьте заголовок авторизации, принудительно установите Cache-Control: no-store или удалите заголовок, чтобы увидеть, что сломалось — без каких-либо изменений на сервере.

Верните свои собственные ответы

Отправьте тело, которое вы пишете, с кодом состояния и выбранным вами типом контента. Идеально подходит для пустых списков, неверных полезных данных и конечных точек, которые еще не существуют.

Имитация ошибок и медленных сетей

Верните 500, 429 или 404 по запросу и добавьте задержку в миллисекундах, чтобы задержать ответ, чтобы можно было правильно протестировать состояния загрузки, счетчики и обработку тайм-аута.

Сопоставление подстроки или подстановочного знака

Свободно сопоставьте его с фрагментом, например /api/users, или точно с подстановочными знаками, например *.example.com/v1/*, и сузьте любое правило до одного метода HTTP.

Сохраняется для каждого сайта, очищается при выходе

Правила принадлежат сайту, на котором вы их создали, и применяются только к текущей вкладке. Закрытие инструмента удаляет все активные правила, поэтому ничто не перехватывает трафик за вашей спиной.

Типичные сценарии использования

Тестирование пустых состояний

Верните пустой массив для конечной точки списка и посмотрите, отображает ли ваш пользовательский интерфейс правильное пустое состояние или неуклюжую пустую панель.

Принудительный запуск обработки ошибок

Сделайте конечную точку возвратом 500 или 429 по требованию, чтобы убедиться, что баннер повторной попытки, всплывающее сообщение и резервная копия действительно отображаются.

Создание на основе API, которого еще не существует

Смоделируйте согласованную форму ответа и постройте на ее основе весь интерфейс, пока серверная часть еще пишется.

Диагностика сторонних скриптов

Заблокируйте аналитику, чат или рекламный скрипт, чтобы проверить, замедляет ли это работу страницы или нарушает макет.

Проверка поведения медленной сети

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

Как использовать
1

Открыть Request Mocker

Щелкните значок Request Mocker в доке DevSuite Pro. Откроется панель с формой правила вверху и сохраненными вами правилами для этого сайта под ней.

2

Выберите, что должно произойти

Выберите «Блокировать запрос», «Редактировать заголовки» или «Мокировать ответ» и при необходимости ограничьте правило одним методом, например POST.

3

Скажите, какие URL-адреса сопоставляться

Введите подстроку, например /api/users, или используйте подстановочные знаки, например *.example.com/v1/*. Выберите, будет ли правило распространяться только на выборку и вызовы XHR или на все типы запросов.

4

Заполните данные и добавьте его

Для заголовков напишите их по одному в строке — Имя: значение, чтобы установить его, Имя: отдельно, чтобы удалить его. Для макета установите статус, задержку, тип контента и тело. Нажмите «Добавить правило», и оно будет применено немедленно.

5

Посмотрите, как он работает, затем закройте

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

Готовы попробовать?

Установите DevSuite Pro бесплатно и разблокируйте более 71 инструментов разработчика для вашего браузера.

Добавить в Chrome Добавить в Edge Добавить в FireFox