我正在为测试步骤编写一个验证 groovy 脚本,旨在测试 SOAP Web 服务。
现在,我想调用同一个测试步骤,使用与groovy脚本不同的输入值。有可能吗?我不想再写一个测试步骤。
谢谢
您可以在“where”定义中的单元测试中包含参数。在那里添加您喜欢的任何内容,并在第一行按名称使用值
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'
}
是的,这是可能的,无论如何,你的问题太开放了,所以我打算采取以下方法。
例如,在您的测试步骤请求中使用测试案例属性,这样您就可以更改此属性并多次重用相同的请求。为此,请在您的测试步骤中使用以下语法:${#TestCase#Your属性}
,例如,假设您有一个SOAP请求,它可以是:
<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)
例如,如果您要根据属性值多次运行此testStep,您可以使用:
// get the testCase
def tc = testRunner.testCase
// get testStep by its name
def ts = tc.getTestStepByName('TestStepName')
// property values
def propertyValueArray = ['firstValue','anotherValue','moreValues','lastOne']
// for each property value
propertyValueArray.each { value ->
// set the value for your property
tc.setPropertyValue('yourProperty',value)
// invoke testStep
ts.run(testRunner,context)
}
希望这有帮助,
我在SoapUI中有一个Groovy脚本,它可以为每个测试步骤记录该步骤是通过了还是失败了。我还希望Groovy脚本记录出错的断言消息。 此时,我得到以下输出: 我希望失败的断言以更详细的方式显示它失败的原因的消息。如果失败的TestStep本身,我就会收到消息: 此外,当我运行这个Groovy脚本时,会弹出一个名为“Information”的窗口,它的背景是黑色的,太宽了,我似乎找不到它的右侧。
我在从groovy脚本(groovy脚本是SoapUI测试套件的一部分)运行java代码时遇到了问题,我创建了简单的脚本: TopClass的代码: 我将myjar.jar放入soapui-pro-2.5\lib和soapui-pro-2.5\bin\ext文件夹中。但行书我得到: org.codehaus.groovy.control.multipleCompilationerrorsExcep
谢谢你的帮助
当我尝试在soapUI测试步骤中解析响应时,收到了以下异常。也尝试了getXMLHolder方法。还是没运气。 答复如下
问题内容: 我有一个普通的脚本,我想在Java中执行它。有人可以为我提供更多有关如何实现此目的的文档/示例吗? 问题答案: 基本的Java + Groovy集成: 请参阅本文以获取更多从Java调用Groovy的方法 PS: 您需要包括如在Java程序中,例如:
我从项目中的脚本执行一个脚本。 该脚本中还有另一个循环,即执行请求。之后,应该执行另外两个脚本来处理输出。这些在请求步骤之后的相同testcase中,但不会自动执行。