Интеграция FAST в проект GitLab CI/CD
Интеграция FAST в режиме CI MODE в рабочий процесс GitLab CI/CD настраивается через конфигурационный файл ~/.gitlab-ci.yml
. Более подробная информация о настройке рабочего процесса доступна в официальной документации GitLab CI/CD.
Установка токена FAST-ноды
Для безопасного использования токена FAST-ноды первым шагом определите его как переменную окружения в настройках проекта.
Настроенный рабочий процесс
Дальнейшая инструкция предполагает, что у вас уже есть настроенный рабочий процесс, соответствующий одному из свойств:
в рабочем процессе реализовано автотестирование – добавляются этап записи запросов и этап тестирования безопасности;
для рабочего процесса уже записан набор базовых запросов – добавляется только этап тестирования безопасности.
Добавление этапа записи запросов
Для добавления этапа записи запросов дополните шаг автотестирования приложения следующими настройками:
Добавьте команду запуска 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
Настройте проксирование автотестов через 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:
stage: test
script:
- docker network create my-network
- docker run --name fast -d -e WALLARM_API_TOKEN=$WALLARM_API_TOKEN -e CI_MODE=recording -e WALLARM_API_HOST=us1.api.wallarm.com -p 8080:8080 --network my-network --rm wallarm/fast
- docker run --rm -d --name selenium -p 4444:4444 -e http_proxy='http://fast:8080' -e https_proxy='https://fast:8080' --network my-network selenium/standalone-firefox:latest
- docker run --rm --name app-test --network my-network -e CAPYBARA_SERVER_HOST=app-test -p 3000:3000 app-test bundle exec rspec spec/features/posts_spec.rb
- docker stop selenium fast
- docker network rm my-network
my-network
.my-network
.my-network
с использованием FAST-ноды как прокси.my-network
.my-network
.
Добавление этапа тестирования безопасности приложения
Для тестирования безопасности приложения настройте соответствующий отдельный шаг в рабочем процессе следующим образом:
- Если тестируемое приложение не запущено, добавьте команду запуска приложения.
Добавьте команду запуска 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-нода и тестируемое приложение запускаются в одной сети.
Добавление нового шага Описание тела нового шага В приведенном примере выполняются следующие команды:Пример шага с тестированием безопасности приложения
security_test
в список stages
: stages:
- build
- test
- security_test
- cleanup
security_test
: security_test:
stage: security_test
script:
- docker network create my-network
- docker run --rm -d --name app-test --network my-network -e CAPYBARA_SERVER_HOST=app-test -p 3000:3000 app-test
- sleep 5
- 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 --network my-network -e TEST_RUN_URI="http://app-test:3000" --rm wallarm/fast
- docker stop app-test
my-network
.my-network
.my-network
. TEST_RECORD_ID
не указывается, так как необходимый набор базовых запросов был создан в этом же рабочем процессе и является последним записанным. Остановка FAST-ноды выполнится автоматически после завершения тестирования.
Получение результата тестирования
Результат проведенного тестирования безопасности отображается в интерфейсе GitLab CI/CD.
Больше примеров
С примерами интеграции FAST в рабочий процесс GitLab CI/CD можно ознакомиться в нашем GitHub и GitLab.
Если у вас возникли вопросы по интеграции FAST в ваш рабочий процесс GitLab CI/CD, обратитесь в службу поддержки Валарм.
Демо‑видео
results matching ""
No results matching ""
results matching ""
No results matching ""