如何使用 groovy 比较 SOAP UI 中两个不同请求的响应值?

How to compare values from response of two different requests in SOAP UI using groovy?

我正在使用 SOAP UI Pro 进行测试自动化,我是新手。我将此工具用于 Rest API 自动化。 我发送了一个 POST 服务请求并得到了一些响应,例如:唯一 ID、名字、姓氏。

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

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

您可以访问要比较和执行的属性,并assertgroovy脚本中检查您需要的条件。

您在问题中评论说您正在使用 属性 传输步骤 但是您没有说明将结果存储在哪里例如,您将值存储在 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 对象,您可以使用该对象访问 testCasetestSuite...然后得到想要的属性.

另一种可能的方法是做同样的事情,但直接从 testStepresponse 获取属性并执行 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}.

希望对您有所帮助,