如何为数据源循环内的每个请求更改 header 的值?

How do I change the value of a header for each request inside a datasource loop?

我有一个名为 RequestID 的 header,它的值是我在下面的 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 中的步骤顺序:

基本上每发送一个新的request,都应该有一个新的requestid。如果说得通。

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

将数据源循环中的目标测试步骤更改为 Groovy 脚本测试步骤。