怎么样? SOAPUI和Groovy - 每次都发送不同的SOAP消息(带文件属性)?

时间:2011-07-12 23:22:49

标签: groovy soapui saml

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

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

SOAP消息包含无符号SAML断言,并且具有一些需要针对每个SOAP请求可能不同的属性。在这些属性中,有一个名为“IssueInstant”,它基本上是一个日期/时间戳字符串,以及一个“Id”属性,它是每个请求的唯一字符串。

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

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

在SOAP消息的正文中,我有一个我想要从文本文件中填充的Subject元素。

填充IssueInstant,Id和Subject之后,我希望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和主题cn=foo1,dc=whatever,dc=com,第二个请求包含Id=id0002和主题{{1 ,以及第三个请求cn=foo2,dc=whatever,dc=com和主题Id=id0003,然后负载测试循环回到这3组值,直到它结束。

我很难理解的是如何逐步浏览Groovy代码中的文件以及Groovy代码如何知道文本文件中的哪一行是构建属性的下一行?

我希望对我正在寻找的内容的这种解释是清楚的。如果没有,请告诉我,我希望有人可以提供帮助。

1 个答案:

答案 0 :(得分:0)

在soapUI Pro中存在所谓的DataSourceDataSource Loop测试步骤。它们用于循环遍历一组测试数据。例如,文本文件。如果您有能力使用soapUI Pro,我建议您查看:http://soapui.org/Data-Driven-Testing/functional-tests.html

否则你必须通过groovy加载文件。

  

如何在Groovy代码中单步执行文件

我相信您会通过Google找到一些代码段。

  

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

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