我正在尝试使用以下需求比较Soap UI和Wiremck的能力(这对于我的项目中的大多数情况来说是足够现实的)。
目标是为货币价格服务创建一个模拟。要求:
>
mytesthost/priceservice/getprice
期望一个称为'cur'的参数,它定义当前对,如:cur=EURHUF
当按如下方式调用时,应该使用保存在文件EURHUF中的XML响应进行响应。xml。
mytesthost/priceservice/getprice?cur=EURHUF
当按以下方式调用时,应使用保存在文件EURUD中的XML响应进行响应。xml。
mytesthost/priceservice/getprice?cur=欧元兑美元
当使用任何其他currencypair调用时,它应该使用存储在NOCURR中的错误响应进行响应。xml
在SOAPUI中实现这一点归结为准备结果,而不是实现几行Groovy代码来选择响应。
当使用wiremock解决问题时,我可以匹配两种“happy”路径情况,但不知道如何实现回退情况(使用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!
至于“else”案例,我们有:
{
"priority": 2,
"request": {
"method": "GET",
"urlPattern": "/priceservice/.*"
},
"response": {
"status": 200,
"bodyFileName": "NOCURR.xml"
}
}
这不仅具有较低的优先级(2),而且我还为正则表达式匹配添加了“userPattern”,而不是“url”。
我和ElasticSearch一起工作。当我执行此查询时: 我得到了我想要的(所有的结果,其中有参考黑莓,但不是Q10)。 但是,我想限制搜索的字段只限于“title”字段。例如,_source文档有标题、正文、标签等,我只想搜索标题。ElasticSearch“匹配”似乎很适合我... 虽然这只成功地搜索了标题,但它仍然返回标题中带有Q10的结果,这与上面的搜索不同。 我正在看比赛文档,但似乎不
我有通过查找属性来检查命名元组和数据类的代码: 如何使用Python 3.10的匹配/大小写结构模式匹配来表达这一点?
本文向大家介绍jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析,包括了jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析的使用技巧和注意事项,需要的朋友参考一下 近期看了一些网上关于Sizzle的分析文章,就匹配次序往往就说使用了从右到左的逆向匹配法,但是具体如何并没有详细介绍,或者就像我之前的几篇文章一样,就代码一行一行做详细介绍,但缺乏整体概念,这里就jQuery
本节描述在消费者端测试时可以使用的各种不同的请求/响应匹配技术。注意,以下演示的例子使用的是Ruby DSL,因为各种实现有所不同,请参考自己所使用的特定语言和框架。 注意 如果在消费者端编写测试时所使用的语言与提供者端不同,必须确保两者使用的是共同的Pact规范,否则就无法进行验证。 正则表达式 有时请求或响应中的某些键值是事先无法知道的——比如时间戳或者生成的ID。 你所需要的是能够以某种方式
一个简单的if/else往往是不够的,因为你可能有两个或更多个选项。这样else也会变得异常复杂。Rust 有一个match关键字,它可以让你有效的取代复杂的if/else组。看看下面的代码: let x = 5; match x { 1 => println!("one"), 2 => println!("two"), 3 => println!("three"),
我可以使用哪种匹配器? { test: /\.js$/, loader: 'babel-loader' } - Matches just .js { test: /\.(js|jsx)$/, loader: 'babel-loader' } - Matches both js and jsx Generally put it's just a JavaScript regex so standar