1

我正在使用 SOAP UI Pro 进行测试自动化,对此我很陌生。我正在使用这个工具来实现 Rest API 自动化。我发送了一个 POST 服务请求并得到了一些响应,例如:唯一 ID、名字、姓氏。

现在我发送另一个 GET 请求,其中输入参数作为名字,姓氏来自我之前的 POST 请求响应(使用属性传输步骤),作为响应,我得到了另一个唯一 ID(GET 响应)。

我的要求是使用 groovy 比较这两个不同响应中的这两个唯一 ID,并根据结果标记测试通过或失败。请帮忙。

4

1 回答 1

3

您可以访问要比较和执行的属性,并在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"

就像对象已经在groovy testSteptestRunner的上下文中一样。中使用的符号是.contextcontext.expand${Test Step Name#response#XPath}

希望能帮助到你,

于 2016-04-21T07:58:57.383 回答