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
,以此类推。
希望这对您有所帮助,
我正在尝试为我的 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
,以此类推。
希望这对您有所帮助,