我使用SOAP UI Pro进行测试自动化,我是新手。我正在使用此工具进行Rest API自动化。 我发送了一个POST服务请求并获得了一些响应,例如:唯一ID,名字,姓氏。
现在我发送另一个GET请求,输入参数作为名字,来自我之前的POST请求响应的姓氏(使用属性转移步骤),作为回应,我得到了另一个唯一ID(GET的响应)。
我的要求是根据结果使用groovy和mark test pass或fail来比较来自这两个不同响应的这两个唯一id。请帮忙。
答案 0 :(得分:2)
您可以访问要比较和执行的属性,并在 groovy脚本中assert
检查所需条件。
您在问题中评论您正在使用属性转移步骤,但是您没有告诉您存储结果的位置,因为我想您例如将值存储在 TestCase 属性:
// you've to use the name of the property you set in the property transfer step
def fn = testRunner.testCase.getPropertyValue('firstName_firstResponse')
def fn2 = testRunner.testCase.getPropertyValue('firstName_secondResponse')
assert fn == fn2, "THE FIRST NAME AREN'T EQUALS"
在 groovy脚本testStep 上下文中,您有一个testRunner
对象,您可以使用该对象访问testCase
,testSuite
...然后获取理想的财产。
另一种可能的方法是执行相同操作,但直接从 testStep 的response
获取属性并执行 XPath ,这样做可以使用按照 groovy脚本:
def fn = context.expand('${TestStepName_1#response#*://firstName}')
def fn2 = context.expand('${TestStepName_2#response#*://firstName}')
assert fn == fn2, "THE FIRST NAME AREN'T EQUALS"
与testRunner
类似,context
对象已经在 groovy testStep 的上下文中。 context.expand
中使用的符号为${Test Step Name#response#XPath}
。
希望它有所帮助,