Привет! Я Ева Маркелова, тестировщик в KTS.

В этой статье я хочу рассказать про Requestly — мощный инструмент, позволяющий перехватывать и модифицировать HTTP-запросы и ответы без участия разработчиков. Он особенно полезен при тестировании нестандартных сценариев, симуляции ошибок и быстром создании нужных тестовых данных.

Во многих разделах Requestly есть обучающие видео про работу с этим инструментом, однако они не всегда подробно покрывают все его возможности. К тому же, на русском языке материалов о нем довольно мало. Я решила собрать весь свой опыт работы с Requestly в один объемный туториал — от начала работы до конкретных юз-кейсов.

Оглавление

Начало работы

Особенностью Requestly является наличие как десктопного приложения, так и расширения для браузера.

Расширение работает внутри браузера. Десктопное приложение работает в рамках всей системы и работает с любым браузером, приложением и даже с любым устройством, например, смартфоном. Устанавливается оно как на MacOS, так и на Windows.

Работа с триал-версией

Мы пользуемся триал-версией, которая доступна 30 дней. По истечении этого срока будет доступен только просмотр созданных правил — создание новых и редактирование/использование уже созданных будет недоступно.

Чтобы активировать бесплатный период каждый месяц, мы создаем временные почты. Обратите внимание: не все сервисы создания временных почт подходят для этой цели. Мы перепробовали несколько вариантов и остановились на TempMail.world. Для корректной работы Requestly при завершении пробного периода не забывайте очищать куки при выходе из «отработанного» аккаунта.

Работа с расширением для браузера

Главный экран

На главном экране Requestly располагаются главные варианты его использования — инструменты HTTP-перехватчика или API-клиента.

HTTP-перехватчик предоставляет возможность:

  • перенаправлять запросы;

  • мокать запросы, игнорируя ответы API;

  • изменять заголовки запросов и ответов;

  • внедрять пользовательский CSS- и JS-код.

Как и в случае с Postman, с помощью Requestly возможно:

  • отправлять и тестировать запросы API;

  • организовывать запросы в коллекции:

  • использовать среды и переменные для тестирования и разработки и работать совместно в одном пространстве.

Requestly поддерживает различные вариации импорта, например, запросы для тестирования через Charles Proxy или коллекции API из Postman.

Таким образом, Requestly объединяет в себе функционал создания и тестирования API.

Вкладка Rules на главном экране

Данная вкладка позволяет просматривать все созданные правила, сортировать по различным признакам, искать, импортировать, создавать новые и фильтровать.

К каждому правилу можно перейти нажатием на соответствующую строку, откроется детальная страница правила с возможностью редактирования.

Правилами можно делиться как публично, так и посредством рассылки единичным пользователям с использованием почты. Расшаренные правила можно просмотреть на подвкладке Shared lists.

Также на данной вкладке можно создать новое правило по кнопке New Rule. Откроется выпадашка с вариантами создания правил.

Переадресация запроса

Для переадресации запроса необходимо:

  1. на вкладке Rules в выпадающем списке по кнопке New Rule выбрать вариант правила Redirect Request;

  2. на странице редактирования запроса в строке if request ввести адрес страницы, с которой будет переадресовываться пользователь после ее открытия;

  3. ниже в строке redirects to ввести адрес страницы, на которую будет переадресовываться пользователь после открытия страницы из пункта 2;

  4. сохранить правило нажатием на кнопку Save Rule;

  5. после сохранения правила для его применения ввести адрес целевой страницы для тестирования во вкладке Test и нажать Test Rule. Откроется целевая страница применения правила. Правило применится автоматически, о чем будет свидетельствовать нотификация в правом верхнем углу страницы.

Подмена строки адреса

Для подмены строки адреса необходимо:

  1. на вкладке Rules в выпадающем списке по кнопке New Rule выбрать вариант правила Replace String;

  2. в поле If request ввести страницу, с которой будет производиться подмена;

  3. в поле replace ввести страницу, частичный адрес которой будет подменяться при открытии;

  4. в поле with ввести измененный частичный адрес;

  5. сохранить правило нажатием на кнопку Save Rule;

  6. после сохранения правила для его применения ввести адрес целевой страницы для тестирования во вкладке Test и нажать Test Rule. Откроется целевая страница применения правила. Правило применится автоматически, о чем будет свидетельствовать нотификация в правом верхнем углу страницы.

Работа с Query-параметрами

С помощью инструмента Query Param в Requestly возможно добавить новый параметр, заменить существующий или удалить его. Для подмены query-параметров необходимо:

  1. на вкладке Rules в выпадающем списке по кнопке New Rule выбрать вариант правила Query Param;

  2. в поле If request ввести адрес, на котором будет редактироваться query-параметр;

  3. в поля параметров ввести наименования параметров, которые необходимо отредактировать, удалить или добавить;

  4. после ввода данных в вышеуказанные поля сохранить правило нажатием на кнопку Save Rule;

  5. после сохранения правила для его применения ввести адрес целевой страницы для тестирования во вкладке Test и нажать Test Rule. Откроется целевая страница применения правила. Правило применится автоматически, о чем будет свидетельствовать нотификация в правом верхнем углу страницы.

Модификация тела запроса

Для модификации тела запроса необходимо:

  1. на вкладке Rules в выпадающем списке по кнопке New Rule выбрать вариант правила Modify Request Body;

  2. выбрать вариант архитектуры API, в данном случае Rest API;

  3. в поле If request ввести адрес API, который будет впоследствии редактироваться;

  4. в поле request body внести тело запроса и модифицировать его под нужную задачу;

  5. после ввода данных в вышеуказанные поля сохранить правило нажатием на кнопку Save Rule;

  6. после сохранения правила для его применения ввести адрес целевой страницы для тестирования во вкладке Test и нажать Test Rule. Откроется целевая страница применения правила. Правило применится автоматически, о чем будет свидетельствовать нотификация в правом верхнем углу страницы.

Модификация тела ответа

Для модификации тела ответа необходимо:

  1. на вкладке Rules в выпадающем списке по кнопке New Rule выбрать вариант правила Modify Request Body;

  2. выбрать вариант архитектуры API, в данном случае Rest API;

  3. в поле If request ввести адрес API, который будет впоследствии редактироваться;

  4. заполнить поле Response Status Code. Туда можно ввести статус-код ответа и модифицировать его под нужную задачу или оставить неизменным, тогда будет использоваться статус-код ответа сервера при применении правила;

  5. заполнить поле response body. В него можно ввести тело ответа и модифицировать его под нужную задачу либо оставить неизменным, тогда будет использоваться тело ответа сервера при применении правила;

  6. после ввода данных в вышеуказанные поля сохранить правило нажатием на кнопку Save Rule;

  7. после сохранения правила для его применения ввести адрес целевой страницы для тестирования во вкладке Test и нажать Test Rule. Откроется целевая страница применения правила. Правило применится автоматически, о чем будет свидетельствовать нотификация в правом верхнем углу страницы.

Подмена заголовков запроса

Для подмены заголовков запроса необходимо:

  1. на вкладке Rules в выпадающем списке по кнопке New Rule выбрать вариант правила Modify Headers;

  2. модифицировать header’ы:

    • можно изменять их как для запросов, так и для ответов сервера. Для переключения между этими вариантами необходимо нажать на Request/Response Headers н�� вкладке редактирования запроса;

    • для внесения изменений в header’ы необходимо выбрать вариант действия нажатием на кнопку. Когда выбран хотя бы один вариант модификации, следующие можно добавлять нажатием на Add Modification;

    • при нажатии на вариант редактирования header’а показывается выпадающий список с вариантами действий (add/remove/override);

    • при клике в поле Request Header показывается список вариаций header’ов для модификации;

  3. в поле Value при добавлении Request Header добавить значение добавляемого заголовка запроса;

  4. после ввода данных в вышеуказанные поля сохранить правило нажатием на кнопку Save Rule;

  5. после сохранения правила для его применения ввести адрес целевой страницы для тестирования во вкладке Test и нажать Test Rule. Откроется целевая страница применения правила. Правило применится автоматически, о чем будет свидетельствовать нотификация в правом верхнем углу страницы.

Задержка сетевых запросов

Для имитации задержки сетевых запросов необходимо:

  1. на вкладке Rules в выпадающем списке по кнопке New Rule выбрать вариант правила Delay Network Requests;

  2. в поле If request ввести запрос, который впоследствии будет отправляться с задержкой;

  3. в поле Delay ввести необходимую задержку отправки запроса в миллисекундах;

  4. после ввода данных в вышеуказанные поля сохранить правило нажатием на кнопку Save Rule;

  5. после сохранения правила для его применения ввести адрес целевой страницы для тестирования во вкладке Test и нажать Test Rule. Откроется целевая страница применения правила. Правило применится автоматически, о чем будет свидетельствовать нотификация в правом верхнем углу страницы.                                                                                                                                          

Блокировка сетевых запросов

Для блокировки сетевых запросов необходимо:

  1. на вкладке Rules в выпадающем списке по кнопке New Rule выбрать вариант правила Cancel Requests;

  2. в поле If request ввести запрос, который впоследствии будет отправляться с задержкой;

  3. в поле Delay ввести необходимую задержку отправки запроса в миллисекундах;

  4. после ввода данных в вышеуказанные поля сохранить правило нажатием на кнопку Save Rule;

  5. после сохранения правила для его применения ввести адрес целевой страницы для тестирования во вкладке Test и нажать Test Rule. Откроется целевая страница применения правила. Правило применится автоматически, о чем будет свидетельствовать нотификация в правом верхнем углу страницы.

Requestly в DevTools

Requestly также встраивается в консоль разработчика браузерных DevTools.

Для консоли разработчика становятся доступны следующие дополнения:

  • добавление JavaScript и CSS на страницу запроса;

  • эмуляция различных user-agent’ов;

  • выбор и модификация конкретного запроса прямо в DevTools.

Добавление Java-скриптов на странице запроса

Чтобы добавление Java-скриптов на странице запроса, необходимо нажать Add JavaScript to page. Осуществится переход к веб-версии Requestly, где мы сможем настроить данное правило.

Для применения правила необходимо:

  1. задать страницу применения Java-скрипта. При выборе данной функции через консоль разработчика целевая страница применения заполняется автоматически;

  2. указать встраиваемый код. Наш запрос для применения Java-скрипта будет выглядеть так:

  3. сохранить правило нажатием на Save rule. После сохранения станет доступно применение созданного правила вставки скрипта. В открывшемся окне в поле нужно вставить ссылку на страницу, на которой вы хотите применить созданное правило, а затем нажать Test rule.

Откроется страница, и правило применится автоматически. В правом верхнем углу появится соответствующая нотификация:

Также в консоли будет выведено заданное значение:

Добавление CSS на странице запроса

Чтобы добавить CSS на странице запроса, в консоли разработчика необходимо нажать на Add CSS to page. Осуществится переход к веб-версии Requestly, где мы сможем настроить данное правило.

Для применения правила необходимо:

  1. задать страницу применения CSS. При выборе данной функции через консоль разработчика целевая страница применения заполняется автоматически;

  2. указать встраиваемый код. Наш запрос для применения CSS будет выглядеть так:

  3. сохранить правило нажатием на Save rule. После сохранения станет доступно применение созданного правила вставки скрипта.

  4. В открывшемся окне в поле вставить ссылку на страницу, на которой вы хотите применить созданное правило, а затем нажать Test rule

Откроется страница, и правило применится автоматически. В правом верхнем углу появится соответствующая нотификация.

Страница до применения скрипта:

Страница после применения скрипта:

Эмуляция сторонних девайсов

Requestly позволяет подменять User-Agent, эмулируя необходимое устройство для тестирования. Чтобы перейти к этой функциональности, необходимо в DevTools в Network Inspector выбрать Emulate for different device. Откроется страница настройки данного правила.

Подмена User-Agent позволяет нам изменять девайс или браузер при работе с запросами, а также составлять наш собственный вариант. При выборе типа Device или Browser открывается выпадающий список с типами вариантов устройств и браузеров для эмуляции. Самих вариантов множество: среди устройств доступны смартфоны и планшеты Apple, Android, Windows и даже BlackBerry и Symbian. Среди браузеров — Firefox, Сhrome, Safari, Internet Explorer, Edge и Opera на всех типах операционных систем.

После выбора варианта для подмены User-Agent и проставления запроса для применения в случае обнаружения можно приступать к тестированию.

Необходимо сохранить правило, ввести адрес страницы для теста и нажать Test Rule.

Rule Executions

Rule Extensions в DevTools в дополнении Requestly позволяет видеть примененные правила на странице, а также переходить к ним по ссылке в запросе.

Работа с десктопным приложением

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

Перехват трафика из браузеров и настольных приложений

Для перехвата трафика из браузеров и настольных приложений необходимо настроить сопряжение десктопного приложения Requestly с целевым приложением/браузером.

Браузер

Для перехвата трафика из браузеров необходимо:

  1. установить расширение Requestly в целевой браузер для перехвата трафика;

  2. открыть расширение Requestly в целевом браузере;

  3. в модальном окне расширения в браузере выбрать Connect to Desktop App.

При успешном подключении браузера к десктопному приложению Requestly вверху будет отображаться статус Connected.

Настольное приложение

Для Windows

Для перехвата трафика системы необходимо:

  1. установить настройки прокси для ПК на Windows:

    • IP: 127.0.0.1

    • Port: 8281

  2. скачать и установить сертификат доверия.

После мы сможем перехватывать и работать с трафиком как в браузерах, так и в настольных приложениях.

Пример перехвата запросов Postman в десктопной версии:

Для MacOS

Для перехвата трафика системы необходимо:

  1. установить настройки прокси для ПК на MacOS:

    • IP: 127.0.0.1

    • Port: 8281

  2. скачать и установить сертификат доверия, проставить доверие сертификату.

Пример перехвата запросов в MacOS:

Работа с запросами в десктопном приложении Requestly

Вкладка Network

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

Для отслеживания запросов с конкретного адреса их можно фильтровать по названию, домену или приложению, из которого поступает запрос. Также доступна фильтрация по методу, статус-коду запроса и виду ресурса. После фильтрации отобразятся все запросы по необходимому адресу.

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

При создании правила для конкретного запроса и его повторном вызове оно применится автоматически, о чем будет свидетельствовать зеленый цвет строки запроса. Также примененное правило будет доступно к просмотру по нажатию на иконку типа правила в колонке Rules Applied. После применения правил к запросам их также можно посмотреть по фильтру Modified requests.

При выборе отдельного запроса внизу показывается полная информация о его статус-коде и методе, там же можно детально просмотреть запрос и ответ сервера.

Вкладка Rules

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

При активации действия правила на вкладке Rules оно будет применено при следующем перехвате описанного в правиле URL.

Работа с Android-устройствами

Requestly позволяет работать с Android-устройствами двумя способами: через прокси-подключение и через root-доступ.

Для работы через прокси необходимо:

  1. убедиться, что ваш пк/ноутбук и смартфон подключены к одной сети;

  2. в приложении Requestly на главном экране открыть модалку подключения к сторонним устройствам и программам;

  3. выбрать вкладку Mobile apps&browsers и нажать кнопку Setup Instructions рядом с надписью Android;

  4. на смартфоне открыть настройки сети wi-fi;

  5. выбрать необходимую сеть wi-fi и нажать на иконку изменения настройки сети;

  6. в меню настройки сети wi-fi найти параметры прокси и выбрать настройку «вручную»;

  7. в параметрах прокси указать host и port из Setup instructions для Android в Requestly (например: 172.19.0.1, 8281) и сохранить изменения;

  8. после настройки прокси на смартфоне убедиться в подключении с помощью http://amiusing.requestly.io. При удачном подключении экран будет синим, при неудачном — красным;

  9. скачать сертификат CA с http://requestly.io/ssl;

  10. установить и разрешить доверие сертификату на смартфоне.

После прекращения работы с Requestly необходимо вернуть настройки прокси на смартфоне к изначальным, чтобы избежать сбоев в работе других приложений. Для этого нужно выбрать в меню вариант «Выкл».

Настройка подключения Android-смартфона в приложении на ПК:

Работа с iOS-устройствами

Requestly позволяет работать с iOS-устройствами только через прокси. Для этого необходимо:

  1. убедиться, что ваш пк/ноутбук и смартфон подключены к одной сети;

  2. в приложении Requestly на главном экране открыть модалку подключения Requestly к сторонним устройствам и программам;

  3. выбрать вкладку Mobile apps&browsers и нажать кнопку Setup Instructions рядом с надписью iOS;

  4. на iOS-устройстве открыть Settings → Wi-Fi → Select current Wi-Fi → Configure Proxy;

  5. выбрать необходимую сеть wi-fi и нажать на иконку изменения настройки сети;

  6. в меню настройки сети wi-fi найти параметры прокси, выбрать настройку «вручную»;

  7. в параметрах прокси указать host и port из первого шага Setup instructions для iOS в Requestly (например: 172.19.0.1, 8281) и сохранить изменения;

  8. после настройки прокси на смартфоне убедиться в подключении с помощью http://amiusing.requestly.io. При удачном подключении экран будет синим, при неудачном — красным;

  1. скачать сертификат CA с http://requestly.io/ssl;

  2. установить и разрешить доверие сертификату на смартфоне.

После прекращения работы с Requestly необходимо вернуть настройки прокси на смартфоне к изначальным, чтобы избежать сбоев в работе других приложений. Для этого нужно выбрать в меню вариант «Выкл».

Настройка подключения iOS-смартфона в приложении на ПК:

Итог

Надеюсь, эти инструкции по работе с Requestly помогут вам в работе так же, как помогают мне и моим коллегам. И рекомендую к прочтению другие статьи для тестировщиков в нашем блоге:

Комментарии (0)