1.已知一个TestStep的response,如何解析这个response,并将某个字段值作为下一个TestStep的变量呢?
2.可以使用Groovy Script,解析该Response,并将某个字段的值保存到TestCase或者TestSuite级别:
TestCase level : testRunner.testCase.setPropertyValue("endDate_paapi", endDate)
TestSuite level : testRunner.testCase.testSuite.setPropertyValue("endDate_paapi", endDate)
在需要调用的时候用如下方式:
TestCase level : ${#TestCase#endDate_paapi}
TestCase level : ${#TestSuite#endDate_paapi}
3.但若是这个变量保存以后使用频率或者范围不广,就没有太大的保存必要,而是直接使用,此时可以用“Property Transfer".
上图意思是:将用"GetDateRange_PAAPI"的Response作为变量来源。
点击最右侧的图标后,系统会弹出该TestStep的Response结构图,双击需要选择的节点“endDate", 系统即自动将该节点的JsonPath路径填入到Source面板。
在Target区域,选择该变量将要被使用的地方”RecalculateAccount_PAAPI",
上图意思是:将Source中获得的变量值用到“RecalculateAccount_PAAPI”的Request(POST body)中。
点击最右侧的图标后,系统会弹出该TestStep的Request(POST body)结构视图,双击需要使用该变量值的节点,在Target面板会自动生成该节点的JsonPath。
4.上图是将上一步骤的一个response变量值传递到下面某一个步骤body中作为某一个变量的值。如果是一个Get方式的步骤需要用到改变量,那么使用情形分为两种:
a) 该步骤中有一个变量类似“date”:那就直接在Property的下拉列表中选择date即可:
b) 该步骤中有一个变量,变量是一个字符串,该字符串中有一个子节点需要用到传递过来的参数值:
Comments:
该Property Transfer TestStep 只能够传一个叶子节点至其他TestStep的URL或者Body中,如果传的是一个map或者一个list,那传过去的值都是“null”。这种情况只能先将需要传递的map或者list保存到其他地方(TestSuite、TestCase等)作为中转, 然后在需要用到的其他TestStep中调用该变量。