如何在 WireMock 中使一个请求文件先于另一个文件执行?

How to make a request file to be executed before another in WireMock?

我有 2 个 json 个文件用于发送请求:

第一个:

  "request": {
    "method": "GET",
    "urlPathPattern": "my/url/([url0-9/-]{13})",
    "queryParameters": {
      "type": {
        "equalTo": "xxx"
      }
    }
  }

第二个:

  "request": {
    "method": "GET",
    "urlPathPattern": "/my/url/ID12345678",
    "queryParameters": {
      "type": {
        "equalTo": "xxx"
      }
    }
  }

我的案例是第二个文件,但第一个带有正则表达式的文件总是在之前执行,所以我的案例无法得到预期的响应。我怎样才能让第二个在第一个之前执行,这样当我发送某个 ID 时它就会有我想要的响应?

根据您的具体用例,您可以使用 Scenarios or Priority。做一些假设,我相信Priority会轻松做到这一点。

第一个

{
  "priority": 5,
  "request": {
    "method": "GET",
    "urlPathPattern": "my/url/([url0-9/-]{13})",
    "queryParameters": {
      "type": {
        "equalTo": "xxx"
      }
    }
  }
}

第二

{
  "priority": 1,
  "request": {
    "method": "GET",
    "urlPathPattern": "/my/url/ID12345678",
    "queryParameters": {
      "type": {
        "equalTo": "xxx"
      }
    }
  }
}

Priority 告诉 WireMock 在其他人之前检查某些 stubs/mappings。因此,在这种情况下,WireMock 将在第一个存根之前检查第二个存根,因为它具有更高的优先级(较低的数字 === 较高的优先级)。您也可以省略为第一个映射添加优先级,因为默认优先级为 5。