我正在为测试步骤编写一个验证groovy脚本,用于测试SOAP Web服务。
现在,我想调用相同的测试步骤,使用groovy脚本中的不同输入值。可能吗?我不想写另一个测试步骤。
由于
答案 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'定义中的单元测试中使用参数。 添加您喜欢的任何内容,并在第一行按名称使用值
☑