我正在尝试模拟相同的请求URL(多次),根据JSON Body内容有不同的响应。
我的请求JSON是动态构建的,所以我不能在Mock上静态使用< code>equalToJson函数。
我有相同的JSON,如下所示:
{
// Changes according to the request
"task": "TEXT_ENTITY_RECOGNITION",
"category": "TEXT",
"data": content
}
< code>wireMockServer存根的最佳方法是什么?
我正在尝试这样的东西
wireMockServer.stubFor(post(urlEqualTo("/request"))
.withRequestBody(containing("TEXT_ENTITY_RECOGNITION"))
.withHeader("Content-Type", equalTo("application/json"))
.willReturn(aResponse()
.withStatus(201)
.withHeader("Content-Type", "application/json")
.withBody(mockedJson)));
我在留档中没有找到这样的样品。谢谢!
Wiremock具有包含功能,调用方式是WireMock.containing
wireMockServer.stubFor(post(urlEqualTo("/request"))
.withRequestBody(WireMock.containing("TEXT_ENTITY_RECOGNITION"))
.withHeader("Content-Type", equalTo("application/json"))
.willReturn(aResponse()
.withStatus(201)
.withHeader("Content-Type", "application/json")
.withBody(mockedJson)));
WireMock提供了几种内容模式EqualToPattern和ContainsPattern是其中的几种。尝试类似这样的内容:
StringValuePattern urlPattern = new EqualToJsonPattern("/request", true, true);
MappingBuilder mappingBuilder = WireMock.post(new UrlPattern(urlPattern, false));
StringValuePattern requestBodyPattern = new ContainsPattern("TEXT_ENTITY_RECOGNITION");
mappingBuilder.withRequestBody(requestBodyPattern).withHeader("Content-Type", new EqualToJsonPattern("application/json", true, true));
ResponseDefinitionBuilder response = WireMock.aResponse().withBody("Successful Custom Body Response").withStatus(201).withHeader("Content-Type", "application/json");
mappingBuilder.willReturn(response);
wireMockServer.stubFor(mappingBuilder);
这对我很有效。
我是 wiremock 的新手,在我的Spring启动集成测试中使用 wiremock 来模拟其中一个外部 http 调用。 我的json请求体包含两个动态属性,所有其他字段都可以设置,而在请求中只有两个字段值无法设置,因为它们是动态值。 由于这些本质上是动态的,我的意思是属性的值是随机自动生成的值。有没有办法忽略这些属性并保持所有属性无论如何都匹配。 我知道忽略可用于额外的字段和数组顺序 tru
我的http请求发送到此: 我的超文本传输协议请求与正文: { 我想通过WireMock映射这个请求。 这里是WireMock的映射文件。 我这样开始wireMock: 但当请求启动时,WireMock不会映射此请求。什么都没发生。为什么?
我正在使用Spring云合同创建集成测试。从配置到将存根jar添加到项目,一切都正常工作。因此,我发现尽管所有参数和标头都相同,但请求不匹配。 这是API测试 这是API调用的合约 即使我从合同请求中删除用户名,仍然收到相同的错误。 我需要为X-B3-ParentSpanId等创建标题来使其匹配吗?
我正在尝试使用独立的wiremck创建API模拟。响应正文取决于请求正文中的属性。 使用JSON,我能够做到。这是示例映射: 然而,我的主要需求是处理google protobuf,我正试图使用文本格式来代替它,模仿者将使用它来模仿API的响应。因此,请求文件是文本格式的,没有任何JSON验证,比如双引号,或者每行末尾的逗号等等。 我发现,使用JSON路径,wiremock由于格式不正确而无法匹配
问题内容: 给定这样的结构: 是否可以将其映射到: 这样,您最终获得的实例的属性分别设置为和? 问题答案: 我坚信将您的POJO与外部化分开。将您的JSON读取到Map中,然后像这样构建您的Container / ScoreKeeper对象(对于任何错别字都为apols):