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

Posted

技术标签:

【中文标题】如何在 WireMock 中使请求文件先于另一个文件执行?【英文标题】:How to make a request file to be executed before another in WireMock? 【发布时间】:2022-01-17 17:11:44 【问题描述】:

我有 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 时它会得到我想要的响应?

【问题讨论】:

【参考方案1】:

根据您的具体用例,您可以使用Scenarios 或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 先检查某些存根/映射。因此,在这种情况下,WireMock 将在第一个存根之前检查第二个存根,因为它具有更高的优先级(较低的数字 === 更高的优先级)。您也可以省略为第一个映射添加优先级,因为默认优先级为 5。

【讨论】:

这真的很有帮助。谢谢你的回答。

以上是关于如何在 WireMock 中使请求文件先于另一个文件执行?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据使用wiremock和JSON的请求正文匹配获得响应

WireMock中的SOAP附件

为啥 WireMock 说请求不匹配?春天云合约

Wiremock 请求匹配两个查询参数之间的比较

测试工具Wiremock介绍

如何使用自动布局在界面构建器中使一个项目的位置等于另一个项目的高度?