mountebank的模拟请求配置主要集中在stubs中,这里对stubs配置进行一个集中的说明。
stubs中主要组成是predicates和response,接下来会对这两项进行说明。
predicates
predicate的类型和示例
这里会介绍predicates的断言类型,mountebank提供了多种断言类型对请求进行断言。
equals
判断是否匹配。这个很简单,估计也将是使用率最高的断言。
The request field matches the predicate
deepEquals
深度匹配。当请求字段是对象的时候比较有用。
Performs nested set equality on the request field, useful when the request field is an object (e.g. the query field in http)
contains
请求包含内容。示例
{ "port": 4547, "protocol": "http", "stubs": [ { "responses": [{ "is": { "body": "first" } }], "predicates": [ { "contains": { "body": "first" } }, { "equals" : { "path":"/test" } } ] }, { "responses": [{ "is": { "body": "second" } }], "predicates": [ { "and" : [ { "contains": { "body": "second" } }, { "equals" : { "path":"/test" } } ] } ] }, { "responses": [{ "is": { "body": "third" } }], "predicates": [ { "contains": { "body": "third" } }, { "equals" : { "path":"/test" } } ] } ] }请求
curl -i -X POST "http://localhost:4547/test" --data "third"响应
HTTP/1.1 200 OK Connection: close Date: Thu, 01 Mar 2018 02:31:07 GMT Transfer-Encoding: chunked thirdstartsWith & endsWith
这两个predicates见名知意,以XX开始和以XX结束。
{ "port": 4547, "protocol": "http", "stubs": [ { "responses": [{ "is": { "body": "startswith first" } }], "predicates": [ { "startsWith": { "query": { "first" : "first"} } }, { "equals" : { "path":"/test" } } ] }, { "responses": [{ "is": { "body": "endswith first" } }], "predicates": [ { "endsWith": { "query": { "first" : "first"} } }, { "equals" : { "path":"/test" } } ] } ] }请求
curl -i -X GET "http://localhost:4547/test?first=firstxxxx"响应
HTTP/1.1 200 OK Connection: close Date: Thu, 01 Mar 2018 03:22:29 GMT Transfer-Encoding: chunked

本文详细介绍了mountebank的模拟请求配置,重点关注stubs中的predicates和response。predicates部分包括equals、deepEquals、contains、startsWith、endsWith、matches、exists等断言类型及其示例,展示了各种匹配规则。response部分探讨了不同类型响应的配置项,如引用外部文件的方式。通过实例解析了如何设置和使用这些配置。
最低0.47元/天 解锁文章
302

被折叠的 条评论
为什么被折叠?



