6

我有一个 SoapUI 项目,其中包含大约 60 多个服务。每个服务都需要一些输入,每次执行都会更改这些输入。所以我创建了某些全局属性并为这些属性分配了一些值。

我必须在我的 SoapUI 请求(即 JSON 格式请求)中使用这些属性值。

如果是groovy脚本的意思,我会这样用。

String HTiC_Username = com.eviware.soapui.model.propertyexpansion.PropertyExpansionUtils.globalProperties['HTiC_Username'].value;

但是,如何获取请求中全局属性的值呢?

希望你能理解我的问题。请提供适当的指导。

谢谢

4

2 回答 2

8

为了将属性的值动态“扩展”(即替换)到测试步骤中,使用以下语法:${#scope#propertyName}

...其中“范围”是指定义属性的级别(例如Global,、、、Project)。TestSuiteTestCase

因此,为了扩展定义为全局属性的名为username的属性,例如,可以在请求测试步骤中直接使用以下代码(例如,在 JSON 正文或标头值等中):

${#Global#username}

要在 Groovy 测试步骤中访问相同的属性值,可以使用以下语法: context.expand('${#scope#propertyName}')

...如下例所示:

context.expand('${#Global#username}')
于 2013-04-27T14:48:02.523 回答
2

我们所做的如下:

  • 创建了一个测试数据文件来存储不同服务的所有特定输入数据(testdata.properties)

testdata.properties 的示例内容:

Billing_customerID=1234567

OtherService_paymentid=12121212

……

  • 创建一个 SoupUi 全局参数(文件/首选项/全局属性):testdata_filepath =C:\...
  • 对于特定服务,我们添加了一个属性测试步骤。您可以为我们的新全局参数指定“加载自”字段:${#Global#testdata_filepath} 现在您可以使用“加载”按钮加载参数。
  • 最后,您可以按以下格式引用 xml 中的参数:${Properties#Billing_customerID}

带参数的服务示例内容:

...
<BillingCustomerIdentification>
     <BillingCustomerID>${#Properties#Billing_customerID}</BillingCustomerID>
</BillingCustomerIdentification>
...

以这种方式设置您的项目也有助于自动化服务测试,例如。使用 Hudson(请参阅我之前的 SO 答案)。

如果它太重并且自动化不是目标,您可以简单地在您的 xml 中使用${#Global#someinputvariable} 格式;-)

于 2013-04-26T07:27:27.887 回答