如何使用SoapUI在我的JSON输入请求中使用全局属性名称?

Kar*_*ndi 6 groovy global properties soapui

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

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

如果是groovy脚本意味着,我将使用这样的.

字符串HTiC_Username = com.eviware.soapui.model.propertyexpansion.PropertyExpansionUtils.globalProperties ['HTiC_Username'].value;

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

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

谢谢

小智 8

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

...其中"范围"指的是在该属性已被定义的电平(例如Global,Project,TestSuite,TestCase).

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

${#Global#username}
Run Code Online (Sandbox Code Playgroud)

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

......如下例所示:

context.expand('${#Global#username}')
Run Code Online (Sandbox Code Playgroud)


nzs*_*nzs 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>
...
Run Code Online (Sandbox Code Playgroud)

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

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