如何更改数据源循环中每个请求的标头值?

时间:2017-03-28 00:50:49

标签: groovy soapui ready-api

我有一个名为 RequestID 的标头,其值为我在下面的groovy脚本中生成的UUID:

import static java.util.UUID.randomUUID
import com.eviware.soapui.support.types.StringToStringMap  

def uuid = randomUUID() as String
def headers = new StringToStringMap()

headers.put("RequestID", uuid)
testRunner.testCase.getTestStepByName("Get Username").testRequest.setRequestHeaders(headers)

我还有一个名为“Get Username”的REST请求,它通过数据源循环多次调用。我的groovy脚本似乎只为整个循环生成一个UUID,而不是为每个命中生成一个新的UUID。我错过了我的脚本中的内容还是错误的步骤顺序?我还在我的数据源步骤中使用一个名为 SSN 的网格来将数据提供给请求。

以下是我在SOAPUI中的步骤的顺序:

  • SSN
  • Groovy脚本
  • 获取用户名,
  • DataSource循环(数据源步骤:SSN,目标步骤:获取用户名)

基本上每次发送新请求时,都应该有一个新的请求。如果这是有道理的。

1 个答案:

答案 0 :(得分:1)

当测试到达DataSource循环时,它从DataSource获取新数据并执行目标测试步骤(在您的情况下 - 获取用户名)。所以它只执行一次Groovy脚本。

将DataSource循环中的Target测试步骤更改为Groovy Script测试步骤。