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

Настройка интеграции FAST в режиме CI MODE в рабочий процесс Azure DevOps выполняется через конфигурационный файл azure-pipelines.yml. Подробная схема файла azure-pipelines.yml описана в официальной документации Azure DevOps.

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

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

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

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

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

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

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

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

     docker run --name fast -d -e WALLARM_API_TOKEN=$WALLARM_API_TOKEN -e CI_MODE=recording -e WALLARM_API_HOST=us1.api.wallarm.com -e ALLOWED_HOSTS=app-test -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-ноды в режиме записи
- job: tests
  steps:
  - script: docker network create my-network
    displayName: 'Create my-network'
  - script: docker run --rm --name dvwa -d --network my-network wallarm/fast-example-dvwa-base
    displayName: 'Run test application on my-network'
  - script: docker run --name fast -d -e WALLARM_API_TOKEN=$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
    displayName: 'Run FAST node in recording mode on my-network'
  - script: docker run --rm -d --name selenium -e http_proxy='http://fast:8080' --network my-network selenium/standalone-firefox:latest
    displayName: 'Run Selenium with FAST node as a proxy on my-network'
  - script: docker run --rm --name tests --network my-network wallarm/fast-example-dvwa-tests
    displayName: 'Run automated tests on my-network'
  - script: docker stop selenium fast
    displayName: 'Stop Selenium and FAST node in recording mode'

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

Способ запуска тестирования безопасности зависит от аутентификации в приложении:

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

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

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

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

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

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

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

     docker run --name fast -e WALLARM_API_TOKEN=$WALLARM_API_TOKEN -e CI_MODE=testing -e WALLARM_API_HOST=us1.api.wallarm.com -p 8080:8080 -e TEST_RUN_URI=http://app-test:3000 --network my-network --rm wallarm/fast
    

Сеть Docker

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

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

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

stages:
- stage: testing
  jobs:
  - job: tests
    steps:
    - script: docker network create my-network
      displayName: 'Create my-network'
    - script: docker run --rm --name dvwa -d --network my-network wallarm/fast-example-dvwa-base
      displayName: 'Run test application on my-network'
    - script: docker run --name fast -d -e WALLARM_API_TOKEN=$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
      displayName: 'Run FAST node in recording mode on my-network'
    - script: docker run --rm -d --name selenium -e http_proxy='http://fast:8080' --network my-network selenium/standalone-firefox:latest
      displayName: 'Run Selenium with FAST node as a proxy on my-network'
    - script: docker run --rm --name tests --network my-network wallarm/fast-example-dvwa-tests
      displayName: 'Run automated tests on my-network'
    - script: docker stop selenium fast
      displayName: 'Stop Selenium and FAST node in recording mode'
    - script: docker run --name fast -e WALLARM_API_TOKEN=$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 
      displayName: 'Run FAST node in testing mode on my-network'
    - script: docker stop dvwa
      displayName: 'Stop test application'
    - script: docker network rm my-network
      displayName: 'Delete my-network'

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

Результаты тестирования безопасности отображаются в интерфейсе Azure DevOps.

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

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

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

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

results matching ""

    No results matching ""