0

遅延の後、ワイヤーモックで応答を生成しようとしていますが、その遅延は着信要求から派生しています。たとえば、リクエスト内のユーザーの姓が「delay_10000」の場合は 10000 ミリ秒遅延、または delay_20000 の場合は 20000 ミリ秒遅延.....

{
  "request": {
    "method": "POST",
    "headers": {
      "SOAPAction": {
        "matches": "http://redacted"
      }
    },
    "bodyPatterns": [
      {
        "matchesXPath": {
          "expression": "//*[local-name()=\"family-name\"]/text()",
          "matches": "^delay_([0-9]+)$"
        }
      }
    ]
  },
  "response": {
    "status": 200,
    "bodyFileName": "verify.xml",
    "fixedDelayMilliseconds": "{{soapXPath request.body 'number(substring-after(//*[local-name()=\"family-name\"]/text(), \"delay_\"))'}}"
  }
}

どのフィールドがテンプレート化できるかを誰でも確認できますか? doco は、「応答ヘッダーと本文」、および他の bodyFileName (私が作業している) を提案していますが、他の応答フィールドをテンプレート化できるかどうかについては何も述べていません。

現在、私は見ています

 
2020-09-22 02:43:24.441 Verbose logging enabled
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" com.github.tomakehurst.wiremock.standalone.MappingFileException: Error loading file /home/wiremock/./mappings/equifax_generic_verify_identity_delay.json:
Cannot deserialize value of type `java.lang.Integer` from String "{{soapXPath request.body 'number(substring-after(//*[local-name()="family-name"]/text(), "timeout_"))'}}": not a valid Integer value
    at com.github.tomakehurst.wiremock.standalone.JsonFileMappingsSource.loadMappingsInto(JsonFileMappingsSource.java:121)
    at com.github.tomakehurst.wiremock.core.WireMockApp.loadMappingsUsing(WireMockApp.java:204)
    at com.github.tomakehurst.wiremock.core.WireMockApp.loadDefaultMappings(WireMockApp.java:200)
    at com.github.tomakehurst.wiremock.core.WireMockApp.<init>(WireMockApp.java:103)
    at com.github.tomakehurst.wiremock.WireMockServer.<init>(WireMockServer.java:73)
    at com.github.tomakehurst.wiremock.standalone.WireMockServerRunner.run(WireMockServerRunner.java:65)
    at com.github.tomakehurst.wiremock.standalone.WireMockServerRunner.main(WireMockServerRunner.java:134)
stream closed           

最初に、それがキャッチされている場所を確認できますが、 https://github.com/tomakehurst/wiremock/blob/master/src/main/java/com/github/tomakehurst/wiremock/standalone/JsonFileMappingsSource. Java#L121

第二に、私がワイヤーモックを間違って運転しているかどうかは不明です。これは応答トランスフォーマーでは不可能ですが、拡張機能と「応答定義変換」( http://wiremock.org/docs/extending ) を介して可能です。 -ワイヤーモック/ )

一連の固定遅延を使用してこれを回避できますが、動的であればより良いでしょう

助けてください!

4

1 に答える 1