в итоге мне удалось достичь своей цели с помощью e2e и ZAP (используя Docker).
Итак, я могу видеть результаты из http://localhost: 8091 / ДРУГОЙ / основной / другой / htmlreport или из терминала моего локального р c (используя curl -X GET)
Среда:
- GitLab Repository с e2e тестами, запущенными с Cypress (linux image)
- Docker изображение с ZAP (последняя версия)
В данный момент я думаю об использовании ZAP в качестве службы в файле yml. Это означает, что мне также придется обновить файл пакета. json и файл docker, чтобы перевести traffi c сюда из контейнера Cypress и запустить ZAP.
- Cypress : пересылка трафика c (через прокси) в ZAP (опция HTTP_PROXY = http://containerAlias_port)
- ZAP Daemon : прослушивание локального хоста для получения данных от e2e (также с использованием привязки порта)
Пример gitlab-ci.yml:
services:
- name: owasp/zap2docker-stable:latest
alias: zap
ports:
- "8092:8092"
entrypoint: ["zap.sh", "-daemon", "-port", "8092", "-host", "0.0.0.0", "-config", "api.disablekey=true", "-config", "api.addrs.addr.name=.*", "-config", "api.addrs.addr.regex=true"]
Проблемы являются:
1) Как получить результаты от Демона в такой среде? Потому что «терминал» с CURL не очень подходит для CI / CD
2) Основная проблема - как получить результаты. Локальное использование терминала не очень «автоматизированное» решение, и я хотел бы иметь возможность сохранить файл отчета (html или json). Я пробовал с базовым сканированием, но у меня большие проблемы с таргетингом на IP-адрес, на котором проводятся тесты. Есть ли другие возможные решения? Может быть, даже с Daemon, чтобы обойти эту проблему?