当前位置: 首页 > 知识库问答 >
问题:

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

蒯胜泫
2023-03-14

我有一个包含大约60多个服务的SoapUI项目。每个服务都需要一些输入,这些输入在每次执行时都会改变。因此,我创建了某些全局属性,并为这些属性赋值。

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

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

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

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

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

谢谢

共有2个答案

凌展
2023-03-14

我们所做的是:

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

testdata.properties示例内容:

Billing_customerID=1234567

OtherService_paymentid=12121212

....

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

带有参数的服务的示例内容:

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

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

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

闻人修平
2023-03-14

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

...其中“范围”指的是定义属性的级别(例如< code >全局、< code >项目、< code >测试套件、< code >测试用例)。

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

${#Global#username}

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

…如以下示例所示:

context.expand('${#Global#username}')
 类似资料:
  • 我正在使用SoapUI的开源版本进行一些SOAP Web服务负载测试。 我希望每个请求与以前的请求尽可能不同,我不希望使用相同的属性进行负载测试。 我有一个属性文件,它有几个属性,每个属性值都调用groovy脚本从文件中读取一个随机值,并将其分配给测试用例属性,即在值字段中: <代码>${=(DynamicPropertyScript)} 脚本: 如果我在测试用例开始时调用这个脚本,那么这个脚本工

  • 我知道Javascript,但对NodeJS非常陌生。我希望在代码中的任何位置,即server.js之外的位置,重用HTTP请求。请看一看: server.js

  • 我正在尝试在SoapUI中发出SOAP请求,它需要使用用户名和密码进行身份验证。我让SoapUI基于wsdl文件生成一个测试,并尝试调用该服务。我按照SoapUI网站上的步骤使用身份验证(https://www.soapui.org/soap-and-wsdl/authenticating-soap-requests.html),但我不能让它工作。我不熟悉SOAP,所以我可能缺少一些基本的东西。我

  • 我正在寻找一种方法来使用当前的测试用例/测试步骤名称作为我的请求xml的一个属性的值。 有人知道语法吗?我查了SoapUI文档,但找不到 我正在寻找类似的东西 ${#TestCase#TestStep#标签}

  • 我希望“请输入一个带有字母S的句子”循环,直到用户输入字母“S”

  • 我正在尝试在Java中的SOAPUI项目中设置SOAPUI TestStep的属性,如下面的屏幕截图所示。 当我调试下面的代码时,当我得到属性或值时,我总是空值。我的观点是我想从我无法做到的 java 函数中设置属性变量。当我用谷歌搜索问题时,我在 Groovy 中得到了帮助。有人可以帮助我如何在 Java 中做到这一点吗 我想在执行程序时动态设置城市的值。请帮助我解决这个问题。