当前位置: 首页 > 知识库问答 >
问题:

Wiremock查询参数JSON存根文件

严天逸
2023-03-14

我正在尝试使用线子 JSON 存根文件模拟查询参数。

它的工作原理,当我这样做:

{
  "request": {
    "method": "GET",
    "url": "/posts?id=1",
  },
//...
}

但是,当我更改查询参数以使用这样的专用字段时,它不再起作用:

{
  "request": {
    "method": "GET",
    "urlPath": "/posts",
    "queryParameters": {
      "id": {
        "equalTo": "1"
      }
    }
  },
  //...
}

知道为什么吗?

测试请求看起来像 http://some-host/posts?id=1

共有3个答案

南门茂才
2023-03-14

问题是< code>urlPath不能与< code>queryParameters一起使用,这只是预期的行为。:-/我发现了这个Q

杨彦君
2023-03-14

您可以尝试使用urlPathPattern而不是urlPath

正如这里所说的,urlPath表示完全匹配,而urlPathPattern表示regex。

因此,在查询参数中使用 urlPath模式,您的查询会得到解决。

{
  "request": {
    "method": "GET",
    "urlPathPattern": "/posts",
    "queryParameters": {
      "id": {
        "equalTo": "1"
      }
    }
  },
  //...
}

尝试并理解Wiremock的以下概念。

常自怡
2023-03-14

这对我有用,将您的"urlPath"更改为"urlPathPattern",但在构建此JSON时要小心。所以urlPath是完全匹配的模式,但urlPathPattern是对路径和查询参数的正则表达式匹配

  {
        "request": {
            "urlPathPattern": "/posts",
            "method": "GET",
            "queryParameters": {
                "id": {
                    "equalTo": "1"
                }
            }
        },
        "response": {
            "status": 200,
            "body":"This is successful"
        }
    }
 类似资料:
  • 我想在启动我的cucumber-jvm测试之前加载我所有的wiremck存根文件。 根据wiremock docs,通过API只能推送一个文件。不是散装的。我认为在启动测试之前,应该在测试项目中使用java代码。 通过代码实现这一点的最佳方式是什么。

  • 我有一些BDD测试,用Wiremock检查回调的查询参数。所以,问题是当我构建RequestPatternBuilder动态时验证失败了。 更多详细信息 :我有一个包含查询参数的所需键/值对的映射,并且我想迭代它,以便构建 RequestPatternBuilder 对象。下面是算法: 验证失败,并显示以下消息: 但奇怪的是,如果我更改算法并添加查询参数,如下所示:,验证通过。 知道吗??

  • 我想在 wiremock 中将 调用设置为 json 配置存根。 需要提供哪些附加配置? 我有下面的json配置 以上内容对于< code>http非常适用,但对于< code>https:则不适用 当更改为时,我会看到以下内容 我参考了这个答案,但不确定第一个答案中第二步的密码 即 将认证导入密钥库

  • 我正在尝试模拟相同的请求URL(多次),根据JSON Body内容有不同的响应。 我的请求JSON是动态构建的,所以我不能在Mock上静态使用< code>equalToJson函数。 我有相同的JSON,如下所示: < code>wireMockServer存根的最佳方法是什么? 我正在尝试这样的东西 我在留档中没有找到这样的样品。谢谢!

  • 我有一个存根文件,我通过c#管理api发送到一个独立的线子实例。当我通过postman发送时,我得到了预期的响应,除了响应体总是空的,即使在我的文件中我有这个: } 我看到预期的标题a b,但正文中什么都没有。另外,如果我将其更改为纯文本: 这也没用-我做错了什么?

  • 问题内容: 我正在尝试使用with子句,并且希望能够以与清单中的元素相同的顺序返回结果。例如: 我希望他们以相同的顺序回来。理想的情况是,如果我能有一个这样的声明,那就太好了: 我已经看到了使用或关键字定义某种自定义排序的查询示例。但是,在所有这些示例中,它们的顺序都是针对一组预定的选项。鉴于我的订购完全取决于用户输入的搜索条件,因此可能有2个选项的列表或100个要订购的列表… 有任何想法吗?我不