0

我有一个场景,在下一个请求中必须使用特定的响应数据。我用过payload("{\"alarmName\":\"@variable('apiVersion')@\"}"),但执行失败,但有异常。以下是异常消息。

{"__v":0,"minVal":18,"alarmName":"TempAlarm7","_id":"59d50f49e877251d1eea592d"} 
Number of JSON entries not equal for element: '$.', expected '1' but was '4'

知道如何解决吗?

问候极客

4

1 回答 1

1

这是因为您的实际 Json 消息具有多个元素(、__vminVal)。您的控制 Json 消息只定义了元素。Citrus Json 消息验证器默认使用此严格模式,因此它将计算并检查所有元素是否在预期的控制 Json 消息中定义。这就是您收到错误的原因。alarmName_idalarmName

这里有两个选择。在带有值的控制 Json 消息中添加所有缺少的元素,@ignore@或者在 Json 消息验证器中禁用严格模式。第二个选项可以通过覆盖 Json 消息验证器 bean 来完成:

<bean id="defaultJsonMessageValidator" class="com.consol.citrus.validation.json.JsonTextMessageValidator">
  <property name="strict" value="false"/>
</bean>
于 2017-10-04T19:36:04.253 回答