簡體   English   中英

如何在響應正文中返回 WireMock 服務器端口

[英]How to return WireMock server port in a response body

我有請求將 WireMock URL 返回到另一個 WireMock 存根。

CI 工具端口 8080 有問題,所以我必須使用隨機端口。 @AutoConfigureWireMock(port = 0)十個端口是隨機的我無法正確模擬端口。

我有錯誤的映射 JSON:

{
  "priority": 1,
  "request": {
    "method": "GET",
    "url": "/api/public/v3/tasks/taskid123"
  },
  "response": {
    "status": 200,
    "jsonBody": {
      "info": {
        "result_callbacks": [{
          "url": "http://localhost:${wiremock.server.port}/download/zip/result"
        }]
      }
    },
    "headers": {
      "Content-Type": "application/json; charset=utf-8"
    }
  }
}

如何在映射JSON中設置服務器端口?

你不能(還)直接抓取服務器端口,但是你可以獲得入站端口,這通常具有相同的效果:

{{{request.requestLine.port}}}

要解決這個問題,@Tom 的建議是:

{
  "priority": 1,
  "request": {
    "method": "GET",
    "url": "/api/public/v3/tasks/taskid123"
  },
  "response": {
    "status": 200,
    "jsonBody": {
      "info": {
        "result_callbacks": [{
          "url": "http://localhost:{{request.requestLine.port}}/download/zip/result"
        }]
      }
    },
    "headers": {
      "Content-Type": "application/json; charset=utf-8"
    },
    "transformers": [
      "response-template"
    ]
  }
}

注意力! 不要忘記添加“變形金剛”:[“響應模板”]

"response": {
   ...
   "jsonBody": { "url": "http://localhost:{{port.request}}" },
   "transformers": ["response-template"]
   ...
}

暫無
暫無

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

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