我正在尝试使用以下要求比较Soap UI和Wiremock的功能(对于我的项目中的大多数情况来说,这是很现实的)。
目标是为货币价格服务创建一个模拟。要求:
mytesthost/priceservice/getprice
喜欢:cur = EURHUF
mytesthost/priceservice/getprice?cur = EURHUF
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映射文件:
对于第一和第二,映射是这样的:
{
"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/