soapui传输测试套件属性使用脚本测试用例

时间:2014-09-25 08:54:43

标签: groovy automated-tests soapui

我开发了一些SoapUI案例,它通过从文件中读取属性来在每个测试用例的开头设置属性。这很好用,然后我可以在每个测试请求步骤中通过语法propertyA访问每个属性(比如${propertyA})。

现在我意识到每个测试用例的其中一个属性是相同的,所以我认为我为此创建了一个testsuite属性,并从测试用例属性文件中删除了属性定义。首先,我的测试用例都失败了,导致现在' propertyA'我不知道,但我发现(根据http://www.soapui.org/Scripting-Properties/property-expansion.html),一个解决方案是将propertyA的每个引用替换为#testSuite#propertyA

这有点乏味,所以我想在每个测试用例的开头创建一个groovy脚本,它从测试套件属性创建一个测试用例属性。根据 http://www.soapui.org/Scripting-Properties/tips-a-tricks.html我认为像

这样的剧本
def testSuiteProperty = testRunner.testCase.testSuite.getPropertyValue("propertyA")
testRunner.testCase.setPropertyValue("propertyA", testSuiteProperty)

应该做的工作。如果我log.info testSuiteProperty的值确实提供了所需的值,并且如果我将testCase属性分配给某个变量并且log.info它,它会显示正确的值。

但是,在下一个测试步骤中,propertyA未知。只是为了确保我尝试在那里使用${#testCase#propertyA},但这也是未知的。我在这里弄错了什么?

1 个答案:

答案 0 :(得分:0)

我认为您的问题是t中的testCase ${#testCase#propertyA}必须为大写:${#TestCase#propertyA}。如果我用你的代码添加一个groovy测试步骤:

def testSuiteProperty = testRunner.testCase.testSuite.getPropertyValue("propertyA")
testRunner.testCase.setPropertyValue("propertyA", testSuiteProperty)

然后我添加一个SOAP测试步骤,跟随xml:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:open="http://www.openuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <open:procesa>
         <open:selector>${#TestCase#propertyA}</open:selector>
      </open:procesa>
   </soapenv:Body>
</soapenv:Envelope>

它可以正常工作,但是如果我使用${#testCase#propertyA},则找不到属性值。

此外,您可以检查SOAP测试步骤请求左侧的raw选项卡中是否使用了正确的值。在此选项卡中,显示请求,其属性由其值替换。

希望这有帮助,