获取DataGenerator先前生成的请求中的值

时间:2015-06-04 20:11:21

标签: soapui

这是我的第一个问题,所以我会尝试详细解释。

我有很多请求,值几乎总是唯一的,不涉及下一种情况:Request_1和Request_2。 Request_1中有Value_1,此值由DataGen生成(Type ^ Number)。 我想取这个值(After generation)并把它放在Request_2中,但我在DataGen中使用Read模式(需要它),我总是有唯一的编号。

Request_1:

    {
       "Intent": 0,
       "RequestDetail":    {
          "Stan": "${DataGen#Stan}", **--> for ex: 1234 after generation**
          "ReferenceNumber": "${DataGen#RefNum}",
          "LocalDateTime": "2015-04-06",
          "Amount": 123,
          "CurrencyType": 0,
          "Track2": "value"
       }

    Request_2:
    {
       "Intent": 4,
       "RequestDetail":    {
          "Stan": "${DataGen#Stan}",
          "ReferenceNumber": "${DataGen#RefNum}",
          "LocalDateTime": "2015-04-06",
          "Amount": 123,
          "CurrencyType": 0,
          "OrigStan": "${Request_1#Request#$.RequestDetail.Stan}" **--> Here I hope to get '1234' but I got differet number.**
    }}

感谢。

1 个答案:

答案 0 :(得分:0)

在评估后,您需要获取值。这是通过" RawRequest"参数,如:

"OrigStan": "${Request_1#RawRequest#$.RequestDetail.Stan}"

一些旧版本的SoapUI有一个错误,上面的内容无法正常工作。我不确定错误何时得到修复,并且它可能已经重新进入。

您可以使用解决方法。

一种可能性是使用额外的传输测试步骤,将数据源中的值传输到测试用例属性,然后让所有测试步骤引用此 stable 属性。 官方documentation就在这里。

另一种可能性是拥有两个数据源循环,一个循环生成您现在所做的所有数据,第二个循环收集所有数据。第二个循环将再次稳定,您可以安全地使用该值的值。 这在more detail SoapUI提示和技巧部分中进行了描述。