如何在 REST 请求中使用脚本生成的 UUID

How to use script generated UUID in REST Request

我需要测试一个场景,我需要生成一个随机 UUID,以便最近将其用作 POST 请求的 json 正文的一部分。 根据我从文档中了解到的内容,我的步骤如下:

  1. UUID生成

  1. 像这样的属性声明

  1. 比一个属性传输这样设置:

此时,如果我 运行 从 GenerateGUID 到 属性 传输,我可以看到值已成功传输。

现在我需要像这样在 Json 中使用 属性:

我尝试了在互联网上找到的不同解决方案,但没有成功,我是 SoapUI 的新手,这个任务已经分配给我了。请任何人都可以发现我遗漏了什么或者可以指出正确的方向吗?

恕我直言,SoapUI 文档没有说明的一件事是,有几种不同的方法可以完成同一件事。一些或多或少的效率。在你的情况下,我看到两个选项。

=> 选项 1

如果您只需要在一个地方使用该值,即仅在有效负载中使用该值,但您不需要稍后在断言之类的地方需要它。在这种情况下,您可以使用 inline dynamic property.

在您的“CalculateObj 测试”步骤中,就在您的负载中,输入以下内容:

{ "guid": "${=java.util.UUID.randomUUID()}", ...other fields }

每次你运行这个,都会生成一个不同的UUID。当然,您不再需要前面的三个步骤。

=> 选项 2

如果您需要在多个地方使用相同的 UUID,但每次 运行 测试时仍然需要不同的 UUID。在这里您可能希望将值存储为测试用例 属性 并使用简单的 property expansion.

将“更改 GUID”脚本步骤更改为以下内容:

def Guuid = java.util.UUID.randomUUID()
testRunner.testCase.setPropertyValue('guuid', Guuid)

然后在您的“CalculateObj 测试”步骤负载中,输入以下内容:

{ "guid": "${#TestCase#guuid}", ...other fields }

随后,在您的测试用例中您需要使用该值的任何其他地方,例如在断言中,您始终可以将其称为 ${#TestCase#guuid}。但是每次运行测试,值都会不同。

我几乎从不使用属性或 属性 传输步骤。