【问题标题】:Wiremock Placeholder isn't recognized无法识别 Wiremock 占位符
【发布时间】:2020-09-12 19:02:03
【问题描述】:

我尝试使用以下 json,但wiremock 无法识别我的更改。我阅读了wiremock的文档,看到他们说:JSON相等匹配基于JsonUnit,因此支持占位符。我也尝试过使用 JDK 8 和 JDK 13,但两者都不起作用

详情如下

    "method" : "POST",
    "bodyPatterns" : [{
      "equalToJson" : {
        "recipient": {
           "address": {
              "city": "Bellevue",
              "postalCode": "52031",
              "countryCode": "US"
           }
        },
        "sender": {
           "address": {
              "city": "",
              "postalCode": "",
              "countryCode": "HK"
           }
        },
        "shipDate": "${json-unit.any-string}",
        "accountNumber": {
           "key": ""
        }
      },

使用 mock 运行 selenium 测试时的结果(我通过 java -jar tmp/wiremock.jar --global-response-templating --root-dir ./mock --port 1337 执行了 mock):

                                                           |
{                                                          | {                                                   <<<<< Body does not match
  "recipient" : {                                          |   "recipient" : {
    "address" : {                                          |     "address" : {
      "city" : "Bellevue",                                 |       "city" : "Bellevue",
      "postalCode" : "52031",                              |       "postalCode" : "52031",
      "countryCode" : "US"                                 |       "countryCode" : "US"
    }                                                      |     }
  },                                                       |   },
  "sender" : {                                             |   "sender" : {
    "address" : {                                          |     "address" : {
      "city" : "",                                         |       "city" : "",
      "postalCode" : "",                                   |       "postalCode" : "",
      "countryCode" : "HK"                                 |       "countryCode" : "HK"
    }                                                      |     }
  },                                                       |   },
  "shipDate" : "${json-unit.any-string}",                  |   "shipDate" : "May-26-2020",
  "accountNumber" : {                                      |   "accountNumber" : {
    "key" : ""                                             |     "key" : ""
  }                                                        |   }
}                                                          | }
                                                           |

任何人都可以在这里提出一些建议。感谢您阅读我的问题

【问题讨论】:

  • 您使用的是最新版本和 jre8 变体吗?
  • @Tom 我使用了 jdk 8 和 jdk 13。我阅读了文档,他们说 jre 是内置的
  • @SangMai 您是否使用最新版本的 WireMock 和独立 WireMock .jar 的 jre8 变体?

标签: wiremock wiremock-standalone


【解决方案1】:

您必须启用如下所示的占位符,并且您应该确保您使用的是 jre-standalone jar。您似乎使用的是普通的独立 jar

"enablePlaceholders" : true

【讨论】:

  • 是的,我是。但我不知道该怎么做:D 如果你能在这里指导我们就好了
  • 我找到了stackoverflow.com/a/61352988/2621917 并使用了建议:更新 Wiremock。我的版本记录了占位符,但没有用。
猜你喜欢
  • 2020-12-14
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多