我正在尝试使用独立的wiremck创建API模拟。响应正文取决于请求正文中的属性。
使用JSON,我能够做到。这是示例映射:
{
"request":{
"method":"POST",
"bodyPatterns":[
{
"matchesJsonPath":"$.somekey.subkey[?(@.attribute == 'VALUE_123')]"
}
]
},
"response":{
"status":200,
"bodyFileName":"res.dat",
"headers":{
"Content-Type":"application/x-proto;charset=UTF-8"
}
}
}
然而,我的主要需求是处理google protobuf,我正试图使用文本格式来代替它,模仿者将使用它来模仿API的响应。因此,请求文件是文本格式的,没有任何JSON验证,比如双引号,或者每行末尾的逗号等等。
我发现,使用JSON路径,wiremock由于格式不正确而无法匹配请求主体。例如,请求如下:
{
animal {
type {
key1: "value"
key2: value2
}
}
}
而不是
{
"animal":{
"type":{
"key1":"value",
"key2":"value2"
}
}
}
假设key1
=value1
应该匹配,并且应该返回response1.json
,或者当key1
1=someOtherValue
时,应该返回response2.json
。是的,键是类型的一部分,类型是动物的一部分。如何实现此请求的身体匹配?
你可以这样做:
{
"request": {
"method": "POST",
"url": "/authorize/oauth2/token",
"bodyPatterns": [ {
"matches": ".username=(test)&."
}
]
},
"response": {
"status": 200,
. . .
还 https://github.com/tomakehurst/wiremock/issues/575
我正在使用Spring云合同创建集成测试。从配置到将存根jar添加到项目,一切都正常工作。因此,我发现尽管所有参数和标头都相同,但请求不匹配。 这是API测试 这是API调用的合约 即使我从合同请求中删除用户名,仍然收到相同的错误。 我需要为X-B3-ParentSpanId等创建标题来使其匹配吗?
我使用wiremock来模拟某些请求及其相应的响应,但我试图添加一个正则表达式。不幸的是,这只会引发一个异常,表明请求不匹配。 我也试过了 我发送的请求是
我正试图做到这一点: 我得到一个错误: 我已经测试了正则表达式,它是有效的。我还进行了调试,发现regexpatern也匹配。但出于某种原因,我仍然会犯这个错误。我认为我用错了。 我尝试了一个更简单的版本,但也没有成功: 有什么想法吗?提前感谢。
我正在使用wiremock设置一个虚拟PHP服务器,并希望根据传递的一个XML字段进行匹配。我基本上会有多个请求进入同一个url,但它们之间的主要区别是发票号。wiremock的JSON如下所示 当我使用Postman并只传递带有
因此,我试图使用wiremck向带有请求正文的URL发出后请求,然后使用我的respons.json文件返回响应。(自定义响应) 我就是这样设置的,但我似乎找不到任何关于如何设置带有请求主体的post存根(包含数据,比如说尝试创建ID),然后检索自定义响应主体(从json文件创建ID响应)的信息。我该怎么设置呢。我尝试通过json文件请求生成id,然后尝试检索创建的id。 WithBodyFile
我有一个在 ./映射/*.json 文件中描述的存根。 Wiremck(ver.2.26.2)以独立模式启动。当我这样调用服务时: 我正在按预期从存根获得响应。问题是请求必须使用XML声明标签发送,例如 在这种情况下,请求不匹配。我试图在留档中找到smth,但到目前为止没有成功。