如何在 REST 请求中使用脚本生成的 UUID
How to use script generated UUID in REST Request
我需要测试一个场景,我需要生成一个随机 UUID,以便最近将其用作 POST 请求的 json 正文的一部分。
根据我从文档中了解到的内容,我的步骤如下:
- UUID生成
- 像这样的属性声明
- 比一个属性传输这样设置:
此时,如果我 运行 从 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}
。但是每次运行测试,值都会不同。
我几乎从不使用属性或 属性 传输步骤。
我需要测试一个场景,我需要生成一个随机 UUID,以便最近将其用作 POST 请求的 json 正文的一部分。 根据我从文档中了解到的内容,我的步骤如下:
- UUID生成
- 像这样的属性声明
- 比一个属性传输这样设置:
此时,如果我 运行 从 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}
。但是每次运行测试,值都会不同。
我几乎从不使用属性或 属性 传输步骤。