Интеграция плагина Wallarm FAST в проект Jenkins

Совместимость

Обратите внимание, плагин Wallarm FAST работает только с Freestyle-проектами Jenkins. Если тип вашего проекта Pipeline, ознакомьтесь с примером интеграции в Jenkins через FAST-ноду.

Шаг 1: Установка плагина

Установите плагин Wallarm FAST в проект Jenkins с помощью Plugin Manager. Более подробная информация об управлении плагинами описана в официальной документации Jenkins.

Установка плагина Wallarm FAST

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

Ручная сборка плагина Wallarm FAST

Для ручной сборки плагина Wallarm FAST выполните следующие шаги:

  1. Убедитесь, что у вас установлен Maven CLI.
  2. Выполните последовательность команд:

     git clone https://github.com/jenkinsci/wallarm-fast-plugin.git
     cd wallarm-fast-plugin
     mvn package
    

    После успешного выполнения команд, в директории target будет сформирован файл плагина wallarm-fast.hpi.

  3. Установите плагин wallarm-fast.hpi, используя инструкцию Jenkins.

Шаг 2: Добавление этапов записи и тестирования

Настроенный рабочий процесс

Дальнейшая инструкция предполагает, что у вас уже есть настроенный рабочий процесс в Jenkins, соответствующий одному из свойств:

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

Для добавления этапа записи запросов необходимо выбрать режим Record baselines на вкладке Build и заполнить переменные, описанные ниже. Этап записи запросов должен быть добавлен перед шагом с автотестированием приложения.

Сеть

Перед записью теста убедитесь, что FAST-плагин и инструмент тестирования находятся в одной сети.

Переменные для настройки режима записи
Переменная Значение Обязательность
Wallarm API token Токен, полученный ранее в облаке Валарм. Да
Wallarm API host Адрес используемого API-сервера Валарм.
Возможные значение:
us1.api.wallarm.com — для американского облака;
api.wallarm.com — для европейского облака;
api.wallarm.ru — для российского облака.
По умолчанию: us1.api.wallarm.com.
Нет
Application host Адрес, по которому доступно тестируемое приложение (IP или имя домена). Да
Application port Порт, на котором доступно тестируемое приложение.
По умолчанию: 8080.
Нет
Fast port Порт, на котором должна быть запущена FAST-нода. Да
Inactivity timeout Период времени, за который на FAST-ноду должен поступить хотя бы 1 запрос. Если запрос не поступит, плагин завершит работу.
Возможные значения: от 1 секунды до 1 недели.
Значение передается в секундах.
По умолчанию: 10 минут.
Нет
Fast name Имя Docker-контейнера с FAST-нодой. Нет
Wallarm version Версия используемой FAST-ноды. Нет
Local docker network Сеть Docker, в которой должна работать FAST-нода. Нет
Local docker ip IP-адрес, который будет присвоен запускаемой FAST-ноде. Нет
Without sudo Флаг для выполнения команд FAST-ноды с правами пользователя, который запустил FAST-ноду.
По умолчанию, команды запускаются с правами суперпользователя (с использованием sudo).
Нет

Пример настройки плагина для запуска в режиме записи:

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

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

Плагин FAST самостоятельно остановит запись запросов, когда завершится тестирование.

Добавление этапа тестирования безопасности приложения

Для добавления этапа тестирования безопасности необходимо выбрать режим Playback baselines на вкладке Build и заполнить переменные, описанные ниже.

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

Сеть

Перед тестированием безопасности убедитесь, что FAST-плагин и приложение находятся в одной сети.

Переменные для настройки режима тестирования безопасности
Переменная Значение Обязательность
Wallarm API token Токен, полученный ранее в облаке Валарм. Да
Wallarm API host Адрес используемого API-сервера Валарм.
Возможные значение:
us1.api.wallarm.com — для американского облака;
api.wallarm.com — для европейского облака;
api.wallarm.ru — для российского облака.
По умолчанию: us1.api.wallarm.com.
Нет
Application host Адрес, по которому доступно тестируемое приложение (IP или имя домена). Да
Application port Порт, на котором доступно тестируемое приложение.
По умолчанию: 8080.
Нет
Policy id Идентификатор политики тестирования.
По умолчанию: 0Default Test Policy.
Нет
TestRecord id Идентификатор набора базовых запросов, соответствует TEST_RECORD_ID.
По умолчанию: последний набор базовых запросов, записанный используемой FAST-нодой.
Нет
TestRun RPS Ограничение на количество запросов, отправляемых приложению в секунду.
Возможные значения: от 0 до 1000.
По умолчанию: null (RPS не ограничено).
Нет
TestRun name Имя запускаемого теста безопасности.
По умолчанию, имя будет сгенерироано автоматически на базе даты запуска.
Нет
TestRun description Описание запускаемого теста безопасности. Нет
Stop on first fail Флаг для прекращения тестирования при возникновении первой ошибки. Нет
Fail build Флаг для завершения сборки с ошибкой, если в ходе тестирования безопасности были найдены уязвимости. Нет
Exclude Список расширений файлов, которые следует исключить из тестирования безопасности.
Разделитель расширений – | .
По умолчанию исключений нет.
Нет
Fast name Имя Docker-контейнера с FAST-нодой. Нет
Wallarm version Версия используемой FAST-ноды. Нет
Local docker network Сеть Docker, в которой должна работать FAST-нода. Нет
Local docker ip IP-адрес, который будет присвоен запускаемой FAST-ноде. Нет
Without sudo Флаг для выполнения команд FAST-ноды с правами пользователя, который запустил FAST-ноду.
По умолчанию, команды запускаются с правами суперпользователя (с использованием sudo).
Нет

Запускаемая FAST-нода

Обратите внимание, при одновременном добавлении в рабочий процесс этапов записи запросов и тестирования приложения, имена Docker-контейнеров с FAST-нодами должны быть разными.

Пример настройки плагина для запуска в режиме тестирования безопасности:

Пример настройки плагина для запуска в режиме тестирования безопасности

Шаг 3: Получение результата тестирования

Результат проведенного тестирования безопасности отображается в интерфейсе Jenkins.

Результат работы плагина Wallarm FAST в интерфейсе Jenkins

Больше примеров

С примерами интеграции FAST в рабочий процесс Jenkins можно ознакомиться в нашем GitHub и Jenkins.

Если у вас возникли вопросы по интеграции FAST в ваш рабочий процесс Jenkins, обратитесь в службу поддержки Валарм.

results matching ""

    No results matching ""