gpt4 book ai didi

mocking - Wiremock URL匹配逻辑

转载 作者:行者123 更新时间:2023-12-04 22:30:49 25 4
gpt4 key购买 nike

我正在尝试使用以下要求比较Soap UI和Wiremock的功能(对于我的项目中的大多数情况来说,这是很现实的)。

目标是为货币价格服务创建一个模拟。要求:

  • 在以下位置可访问

    mytesthost/priceservice/getprice
  • 需要一个称为“cur”的参数,该参数定义了currenypair
    喜欢:cur = EURHUF
  • 当按以下方式调用时,应使用保存在文件EURHUF.xml中的XML响应进行响应。

    mytesthost/priceservice/getprice?cur = EURHUF
  • 当按以下方式调用时,应使用保存在文件EURUSD.xml中的XML响应进行响应。

    mytesthost/priceservice/getprice?cur = EURUSD
  • 当使用调用任何其他货币对时,它应该以
    存储在NOCURR.xml中的错误响应

  • 在Soap UI中实现此操作归结为准备结果,而不是实现几行Groovy代码来选择响应。

    当使用wiremock解决问题时,我可以匹配两种“happpy”路径情况,但不知道如何实现后备情况(使用NOCURR.xml)。

    我如何进行匹配的示例:
    {
    "request": {
    "method": "GET",
    "url": "/priceservice/getprice?cur=EURUSD"
    },
    "response": {
    "status": 200,
    "bodyFileName": "EURUSD.xml"
    }
    }

    我可以用Wiremock做到这一点吗?我主要对通过Json配置执行此操作感兴趣,但是如果使用Java API也可以的话。

    最佳答案

    找到了解决方案。因此,我们有三个Json映射文件:

  • 对于匹配EURUSD的
  • 对于与CHFHUF匹配的
  • 其他所有内容-甚至不存在现有货币对

  • 对于第一和第二,映射是这样的:
    {
    "priority": 1,
    "request": {
    "method": "GET",
    "url": "/priceservice/getprice?cur=CHFHUF"
    },
    "response": {
    "status": 200,
    "bodyFileName": "CHFHUF.xml"
    }
    }

    请注意优先级= 1!

    至于“其他”情况,我们有:
    {
    "priority": 2,
    "request": {
    "method": "GET",
    "urlPattern": "/priceservice/.*"
    },
    "response": {
    "status": 200,
    "bodyFileName": "NOCURR.xml"
    }
    }

    不仅这具有较低的优先级(2),而且还为“regex”匹配添加了“userPattern”而不是“url”。

    关于mocking - Wiremock URL匹配逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26891506/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com