Интеграция FAST в проект Bamboo

Настройка интеграции FAST в режиме CI MODE в рабочий процесс Bamboo возможна следующими способами:

В примере ниже интеграция настраивается через YAML-спецификацию bamboo-specs/bamboo.yaml.

Установка токена FAST-ноды

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

Определение переменной окружения Bamboo

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

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

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

Для добавления этапа записи запросов дополните шаг автотестирования приложения следующими настройками:

  1. Добавьте команду запуска FAST-ноды в режиме CI_MODE=recording и с другими переменными перед командой запуска автотестов. Например:

     docker run --name fast -d -e WALLARM_API_TOKEN=${bamboo_WALLARM_API_TOKEN} -e CI_MODE=recording -e WALLARM_API_HOST=us1.api.wallarm.com -e ALLOWED_HOSTS=dvwa -p 8080:8080 --network my-network --rm wallarm/fast
    
  2. Настройте проксирование автотестов через FAST-ноду. Например:

     docker run --rm -d --name selenium -e http_proxy='http://fast:8080' --network my-network selenium/standalone-firefox:latest
    

Сеть Docker

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

Пример шага автотестирования приложения с запуском FAST-ноды в режиме записи
test:
  key: TST
  tasks:
    - script:
        interpreter: /bin/sh
        scripts:
          - docker network create my-network
          - docker run --rm --name dvwa -d --network my-network wallarm/fast-example-dvwa-base
          - docker run --name fast -d -e WALLARM_API_TOKEN=${bamboo_WALLARM_API_TOKEN} -e CI_MODE=recording -e WALLARM_API_HOST=us1.api.wallarm.com -e ALLOWED_HOSTS=dvwa -p 8080:8080 --network my-network --rm wallarm/fast
          - docker run --rm -d --name selenium -e http_proxy='http://fast:8080' --network my-network selenium/standalone-firefox:latest
          - docker run --rm --name tests --network my-network wallarm/fast-example-dvwa-tests
          - docker stop selenium fast

В приведенном примере выполняются следующие команды:

  1. Создается сеть Docker – my-network.
  2. Запускается тестируемое приложение DVWA в сети my-network.
  3. Запускается FAST-нода в режиме записи в сети my-network.
  4. Запускается инструмент тестирования Selenium в сети my-network с использованием FAST-ноды как прокси.
  5. Запускаются автотесты.
  6. Останавливаются инструмент тестирования Selenium и FAST-нода в режиме записи.

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

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

  1. Если тестируемое приложение не запущено, добавьте команду запуска приложения.
  2. Добавьте команду запуска FAST-ноды в режиме CI_MODE=testing и с другими необходимыми переменными после команды запуска приложения.

    Использование записанного набора запросов

    Если набор запросов был записан в другом рабочем процессе, при запуске FAST-ноды необходимо указать идентификатор существующей записи в переменной TEST_RECORD_ID.

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

    Пример команды:

     docker run --name fast -e WALLARM_API_TOKEN=${bamboo_WALLARM_API_TOKEN} -e CI_MODE=testing -e WALLARM_API_HOST=us1.api.wallarm.com -p 8080:8080 -e TEST_RUN_URI=http://dvwa:80 --network my-network --rm wallarm/fast
    

Сеть Docker

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

Пример шага с тестированием безопасности приложения

Команды выполняются в сети my-network, которая уже была создана на шаге с записью запросов. Тестируемое приложение DVWA также уже запущено на шаге с записью запросов.

  1. Добавление нового шага security_testing в список stages. В данном примере этот шаг завершает рабочий процесс.

     stages:
       - testing:
           manual: false
           jobs:
             - test
       - security_testing:
           final: true
           jobs:
             - security_test
    
  2. Описание тела нового шага security_test:

     security_test:
     key: SCTST
     tasks:
         - script:
             interpreter: /bin/sh
             scripts:
              - docker run --name fast -e WALLARM_API_TOKEN=${bamboo_WALLARM_API_TOKEN} -e CI_MODE=testing -e WALLARM_API_HOST=us1.api.wallarm.com -p 8080:8080 -e TEST_RUN_URI=http://dvwa:80 --network my-network --rm wallarm/fast 
              - docker stop dvwa
              - docker network rm my-network
    

В приведенном примере выполняются следующие команды:

  1. Запускается FAST-нода в режиме тестирования в сети my-network. TEST_RECORD_ID не указывается, так как необходимый набор базовых запросов был создан в этом же рабочем процессе и является последним записанным. Остановка FAST-ноды выполнится автоматически после завершения тестирования.
  2. Останавливается тестируемое приложение.
  3. Удаляется сеть my-network.

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

Результат проведенного тестирования безопасности отображается в логах сборки в интерфейсе Bamboo. Также, Bamboo позволяет скачать файл с расширением .log со всеми логами.

Результат работы FAST в интерфейсе Bamboo

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

Больше примеров интеграции FAST в рабочий процесс Bamboo доступно в нашем GitHub.

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

results matching ""

    No results matching ""