我试图在我的REST项目的测试用例中为测试步骤编写JSONPath Match断言。此测试步骤是REST请求。响应是JSON字符串。引用响应的节点不是问题(在这种情况下,我使用' $ .. startDate')。
然而,对于"预期结果"这个断言的一部分,我需要引用我的请求的一个参数。这个参数被称为' date',在断言中我想检查' startDate'我的Json响应的节点匹配' 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}
结果总是一样。
关于如何解决此问题的任何建议?
答案 0 :(得分:2)
使用JSONPath的预期结果的表示法必须是:
${RESTRequestName#Response#$.json.path.to.date}
使用testStep的确切名称(不#
,当您要在此级别引用属性时使用#TestCase
,#TestSuite
,而不是在testStep级别引用属性。
要使用传递JSONPath的响应,请使用$.
开始路径。
修改强>
如果您只是希望query
参数date
使用以下符号,我会误解您的问题:
${RESTRequestName#date}
如上所述,使用不带#
的testStep名称,然后由于SOAPUI将所有查询参数添加为testStep的属性,您可以直接使用它的名称访问,就像使用Request
,{{{ 1}},等等。
希望这有帮助,