如何在运行时从SOAP UI中的groovy脚本调用带有输入的测试步骤?

时间:2015-06-03 05:12:51

标签: soap groovy soapui soap-client

我正在为测试步骤编写一个验证groovy脚本,用于测试SOAP Web服务。

现在,我想调用相同的测试步骤,使用groovy脚本中的不同输入值。可能吗?我不想写另一个测试步骤。

由于

2 个答案:

答案 0 :(得分:2)

是的,这是可能的,无论如何你的问题太开放了,所以我的目的是跟随。

在testStep请求中使用示例testCase属性,这样您就可以更改此属性并多次重复使用相同的请求。为此,请使用TestStep中的以下语法:def "Field '#field' with value '#val' should result in '#code'"() { when: def myObject = ["$field": val] then: fooMethod(myObject) == code where: field | code | val 'myField' | 'nullable' | null 'myField' | 'blank' | '' 'myField' | 'valid' | 'abc123' } ,假设您有一个SOAP请求,它可以是:

${#TestCase#YourProperty}

然后在你的groovy testStep中你可以设置属性值并按你想要的时间调用你的testStep,看看下面的代码我希望它是自我解释的:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
        <someRequest>
            <changeValue>${#TestCase#yourProperty}</changeValue>
        <someRequest>
   </soapenv:Body>
</soapenv:Envelope>

例如,如果您根据属性值多次运行此testStep,则可以使用:

// get the testCase
def tc = testRunner.testCase

// set the value for your property
tc.setPropertyValue('yourProperty','someValue')

// get testStep by its name
def ts = tc.getTestStepByName('TestStepName')

// invoke testStep 
ts.run(testRunner,context)

希望这有帮助,

答案 1 :(得分:-1)

您可以在'where'定义中的单元测试中使用参数。 添加您喜欢的任何内容,并在第一行按名称使用值

&#x2611;