WireMock中如何通过请求体动态选取Transformer Parameters参数?
WireMock动态通过请求体选择Transformer参数的实现方法
我尝试将请求体用作查找依据,添加Transformer参数后需通过JSON查询选择正确的参数。示例Stub代码如下:
stubFor( post("/test") .willReturn( aResponse() .withBody("{{ parameters.(jsonPath request.body '$.body') }}") .withTransformerParameter("data", "newData") ) )
当发送请求体{ "body": "data" }时,期望返回字符串"newData"。单独使用{{jsonPath request.body '$.body'}}可返回data,单独使用{{ parameters.data }}可返回"newData",但嵌套写法会报错:
could not find helper parameters.
可行写法
使用Handlebars的lookup助手实现动态属性访问,修改后的Stub代码如下:
stubFor( post("/test") .willReturn( aResponse() .withBody("{{lookup parameters (jsonPath request.body '$.body')}}") .withTransformerParameter("data", "newData") ) )
lookup助手的作用是动态获取对象属性:第一个参数传入要查找的对象parameters,第二个参数传入通过jsonPath从请求体中提取的属性名data,这样就能正确从Transformer参数中取出对应的值返回。
内容的提问来源于stack exchange,提问作者ValSmith
相关产品推荐
相关产品推荐

