SoapUI JSONPath 匹配断言:如何引用 REST 请求的参数

SoapUI JSONPath Match assertion: How to reference a parameter of the REST request

我正在尝试为我的 REST 项目中的测试用例中的测试步骤编写 JSON路径匹配断言。此测试步骤是一个 REST 请求。响应是 JSON 字符串。引用响应的节点不是问题(在本例中我使用“$..startDate”)。

但是,对于此断言的 "Expected Result" 部分,我需要引用我的 请求 的参数之一。此参数称为 'date',在断言中我想检查 Json 响应的 'startDate' 节点是否匹配 'date'。

我原以为 ${#TestCase#["Start Date GET Request"]#Request#date} 这样的东西会起作用,但它不起作用。当我测试断言时,我被告知它的结果是空的(即“[]”)

我尝试了上述的几种变体。

${#Project#TestSuite#TestCase#["Start Date GET Request"]#Request#date}

${#["Start Date GET Request"]#Request#date}

${#["Start Date GET Request"]#date}

结果总是一样的。

关于如何解决这个问题有什么建议吗?

使用 JSONPath 的预期结果的表示法必须是:

${RESTRequestName#Response#$.json.path.to.date}

使用您的测试步骤的准确名称(不带 # 这用于 #TestCase#TestSuite 当您想在此级别引用 属性 时,但是不适用于 testStep 级别的属性。

要处理传递 JSONPath 的响应,请使用 $. 开始您的路径。

编辑

我误解了你的问题,如果你只是想要 query 参数 date 使用以下符号:

${RESTRequestName#date}

如上所述,使用不带 # 的 testStep 名称,然后由于 SOAPUI 将所有查询参数添加为 testStep 的属性,您可以直接使用它的名称进行访问,就像使用 Request 一样, Response,以此类推。

希望这对您有所帮助,