Имитация ответов
Chute может возвращать имитированные данные для совпадающих HTTP/HTTPS-запросов, не обращаясь к реальному серверу. Это полезно для тестирования, разработки или блокировки нежелательного контента с пользовательским ответом.
Правила имитации определяются в разделе [Map Local] (также поддерживается [Mock] как устаревшее имя раздела).
К одному запросу может быть применено несколько правил. Используется первое правило имитации с совпадающим шаблоном URL.
Формат встроенной имитации
Для простых имитированных ответов с встроенным содержимым:
[Map Local]
^http://example\.com/api/status status=200 body={"ok":true}
^http://example\.com/blocked status=403
^http://ad\.com/.* status=200 body="<html></html>" content-type="text/html"
Правило встроенной имитации состоит из: регулярного выражения URL и одного или нескольких параметров ответа key=value.
Встроенные параметры
status: Обязательно.
status=200
Код статуса HTTP для возврата.
body: Необязательно.
body={"result":"mocked"}
Тело ответа для возврата. Если не указано, возвращается пустое тело.
content-type: Необязательно.
content-type=application/json
Заголовок Content-Type для имитированного ответа. Используйте вместе с body для отправки правильных ответов.
headers: Необязательно.
headers=X-Custom:Value1;X-Another:Value2
Дополнительные заголовки ответа, разделенные ;.
Формат Map Local
Для отправки имитированных ответов из локальных файлов или с содержимым в кодировке base64:
[Map Local]
^https://example\.com/api data="/path/to/mock-response.json"
^https://example\.com/page data="/path/to/page.html" header="SGVhZGVyOiBWYWx1ZQ=="
^https://example\.com/pixel base64="R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
Параметры Map Local
| Параметр | Описание |
|---|---|
data="/path/to/file" |
Путь к файлу для отправки в качестве тела ответа. Файл читается в момент запроса. |
base64="<encoded>" |
Содержимое тела ответа в кодировке base64. |
header="<base64>" |
Пользовательские заголовки ответа в кодировке base64 (формат Key: Value\n). |
Должен быть указан хотя бы один из параметров:
data=илиbase64=.
Переменные шаблона
При использовании data= или base64= тело ответа поддерживает подстановку переменных шаблона:
| Переменная | Заменяется на |
|---|---|
{{url}} |
Полный путь URL запроса |
{{host}} |
Имя хоста запроса |
{{path}} |
Относительный путь URL |
{{method}} |
HTTP-метод |
{{ua}} |
Значение заголовка User-Agent |
Пример файла имитированного ответа (response.json):
{
"requested_url": "{{ "{{url}}" }}",
"host": "{{ "{{host}}" }}",
"method": "{{ "{{method}}" }}"
}
Примечание: Для HTTPS-запросов должна быть включена расшифровка MitM для соответствующего имени хоста. Правила имитации для HTTPS-трафика без MitM будут проигнорированы.