如何参数化Soap请求中的值

时间:2013-05-23 13:40:37

标签: soapui

我是soapUI的新手,所以要掌握这个工具,所以任何帮助都会非常感激..

我们有两个环境配置(DEV,Staging),每个环境都有不同的端点,这使我可以在两个环境中的任何一个上运行我的测试套件。

作为我的一个测试用例中的请求的一部分,我需要提供一个'accountID'但是这个accountID对于每个环境都是不同的,因此我想知道如何以及在哪里可以添加使我能够选择不同的逻辑帐户ID取决于我在项目级别选择的环境?

请参阅我提交的账户ID的附件图片,我目前不得不根据我正在运行测试的服务器进行手动更改...

如果解决方案基于groovy脚本,那么请你提供一下脚本应该是什么样子,因为我的脚本技能在这一点上并不是那么好..

干杯

enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:2)

向项目添加自定义属性。您可以在不同环境中重新定义此属性的值。在测试用例中,您可以以$ {#Project#property_name}

的形式访问此属性

答案 1 :(得分:1)

有时可能存在特定于测试用例的属性,特定适用的类似属性,并且在项目级别定义可能非常适用/有意义。

因此,可以在测试请求步骤中访问相同的属性,如下所示类似于项目属性

  • 测试用例级别属性 - $ {#TestCase#TEST_CASE_PROPERTY_NAME}
  • 测试套件级别属性 - $ {#TestSuite#TEST_SUITE_PROPERTY_NAME}
  • 项目级属性 - $ {#Project#PROJECT_PROPERTY_NAME}

如果需要以下面的方式在 groovy脚本中访问相同的属性:

def propValueTC = testRunner.testCase.getPropertyValue('TEST_CASE_PROPERTY_NAME') 
def propValueTS = testRunner.testCase.testSuite.getPropertyValue('TEST_SUITE_PROPERTY_NAME') 
def propValueP = testRunner.testCase.testSuite.project.getPropertyValue('PROJECT_PROPERTY_NAME') 
//or
def propValueTC = context.expand('${#TestCase#TEST_CASE_PROPERTY_NAME}')
def propValueTS = context.expand('${#TestSuite#TEST_SUITE_PROPERTY_NAME}')
def propValueP = context.expand('${#Project#PROJECT_PROPERTY_NAME}')

同样可以使用setPropertyValue('property','value')作为获取的对应部分