如何在wiremock的请求映射中使用主体模式

时间:2019-03-26 06:07:04

标签: regex wiremock

我有两个如下的xml请求,只是想获得响应。 如果请求正文包含节点A,B,C并且不包含D,则为Response1。 如果A,B,C,D全部包含在请求中,则为Response2。

有人可以帮我吗?

另外,如果有人可以帮助我获得使用身体样式进行匹配请求的优秀文章,或者可以使用哪些不同的身体样式选项,也会很有帮助。

预先感谢!

我尝试了包含和优先级,但这没有帮助。

需求1:

<TestService>
    <A> test </A>
    <B> testB</B>
    <C> testC </C>
    <XYZ> test </XYZ>
</TestService>

要求2:

<TestService>
    <A> test </A>
    <B> testB</B>
    <C> testC </C>
    <XYZQ> test test</XYZQ>
   <D> testD</D>
</TestService>

1 个答案:

答案 0 :(得分:0)

在WireMock中,它可能会以2条规则结束,每种情况下一条:

标记在其中的规则:

{
"request": {
 "method": "ANY",
 "url": "/xmltag",
 "bodyPatterns" : [ {
   "matchesXPath" : "/TestService[count(//D) = 1]"
 } ]  
},
"response": {
 "status": 200,
 "body": "<root><tag>D</tag></root>"
}
}

如果没有D标签,则另外一个:

{
"request": {
 "method": "ANY",
 "url": "/xmltag",
 "bodyPatterns" : [ {
   "matchesXPath" : "/TestService[count(//D) = 0]"
 } ]  
},
"response": {
 "status": 200,
 "body": "<root><tag>No D found</tag></root>"
}
}