怎样SOAPUI和Groovy—每次发送不同的SOAP消息(使用文件中的属性)?

怎样SOAPUI和Groovy—每次发送不同的SOAP消息(使用文件中的属性)?,groovy,soapui,saml,Groovy,Soapui,Saml,我正在尝试使用SOAPUI(4.0)进行负载测试,我希望每个SOAP请求都不同,请求中的一些属性值和元素值是从(例如)文本文件填充的 除了几个属性值和元素值之外,每个请求的SOAP消息都是相同的 SOAP消息包含一个未签名的SAML断言,该断言具有一些属性,这些属性对于每个SOAP请求可能是不同的。在这些属性中有一个称为“IssueInstant”的属性,它基本上是一个日期/时间戳字符串,还有一个“Id”属性,它是每个请求的唯一字符串 理想情况下,我希望能够从文本文件中填充“Id”属性值 我已经

我正在尝试使用SOAPUI(4.0)进行负载测试,我希望每个SOAP请求都不同,请求中的一些属性值和元素值是从(例如)文本文件填充的

除了几个属性值和元素值之外,每个请求的SOAP消息都是相同的

SOAP消息包含一个未签名的SAML断言,该断言具有一些属性,这些属性对于每个SOAP请求可能是不同的。在这些属性中有一个称为“IssueInstant”的属性,它基本上是一个日期/时间戳字符串,还有一个“Id”属性,它是每个请求的唯一字符串

理想情况下,我希望能够从文本文件中填充“Id”属性值

我已经能够在SOAPUI中自动填充IssueInstant,方法是包含一小段Groovy代码,以获取当前日期/时间,重新格式化,然后将其存储在属性中。此Groovy代码位于SOAPUI测试用例的启动脚本中

在SOAP消息的主体中,我有一个Subject元素,我想从文本文件中填充它

填充IssueInstant、Id和主题后,我希望SOAPUI发送请求

例如,假设文本文件具有:

id0001,cn=foo1,dc=whatever,dc=com
id0002,cn=foo2,dc=whatever,dc=com
id0003,cn=foo3,dc=whatever,dc=com
然后,当我运行SOAPUI负载测试时,我希望第一个请求具有
Id=id0001
和subject
cn=foo1,dc=where,dc=com
,第二个请求具有
Id=id0002
和subject
cn=foo2,dc=where,dc=com
,第三个请求具有
Id=id0003
和subject
cn=foo3,dc=where,dc=com
,然后负载测试循环通过这3组值,直到结束

我很难理解的是,如何在Groovy代码中单步遍历文件,以及Groovy代码如何知道文本文件中的哪一行是构建属性的下一行


我希望我所寻找的解释足够清楚。如果没有,请告诉我,我希望有人能帮助。

在soapUI Pro中存在所谓的
数据源
数据源循环
测试步骤。它们用于循环一组测试数据。例如,文本文件。如果您能够使用soapUI Pro,我建议您看看以下内容:

否则,您必须通过groovy加载该文件

如何在Groovy代码中单步遍历文件

我相信你会通过谷歌找到一些代码片段

Groovy代码如何知道文本文件中的哪一行是构建属性的下一行


创建初始值为1的测试用例属性。始终在读取一行后,将值增加1。通过在groovy代码中读取此属性,您总是知道要读取哪一行。

您当前有代码吗?我知道groovy,但不知道soapui:-/sebi-我忘了(我真的是想,但忘了)我们正试图用非Pro soapui来实现这一点,所以我们没有数据源步骤功能。我有一些groovy代码,现在我遇到了问题,但我不知道如何在这个问题中发布它,所以我将在Groovy上发布一个新问题-抱歉。