簡體   English   中英

測試自動化 ZAP 和 E2E(賽普拉斯)

[英]Test Automation ZAP & E2E (Cypress)

最后,我設法通過e2eZAP (使用 Docker)實現了我的目標。

所以,我可以從http://localhost:8091/OTHER/core/other/htmlreport或我本地電腦的終端看到結果(使用 curl -X GET)

環境:

  • GitLab 存儲庫,帶有e2e測試,使用 Cypress 運行(Linux 映像)
  • Docker 映像與ZAP (最新版本)

目前我正在考慮在 yml 文件中使用 ZAP 作為服務。 這意味着,我還必須更新 package.json 文件和 dockerfile 文件,以便從Cypress容器轉移流量並運行 ZAP。

  • Cypress :將流量(通過代理)轉發到 ZAP(選項HTTP_PROXY = http://containerAlias_port
  • ZAP 守護進程:在 localhost 上偵聽以接收來自 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 來解決這個問題?

文檔中提到的方法對我有用:

運行 ZAP 作為監聽"0.0.0.0"的守護進程:

docker run -p 8090:8090 -i owasp/zap2docker-stable zap.sh -daemon -port 8090 -host 0.0.0.0

找出容器ID:

docker ps

找出分配給它的地址:

docker inspect <CONTAINER ID> | grep IPAddress

然后,您應該能夠將瀏覽器指向指定的主機/端口並訪問 ZAP API,例如http://172.17.0.8:8090/

然后,我使用以下 url 查看報告並使用htmlpublisher插件在 jenkins 中發布。 你也可以使用 curl/wget 來下載它:

http://172.17.0.8:8090/OTHER/core/other/htmlreport/?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM