当前位置: 首页 > 知识库问答 >
问题:

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

秦德海
2023-03-14

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

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

谢谢

共有2个答案

申屠瀚海
2023-03-14

您可以在“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'
}
季华茂
2023-03-14

是的,这是可能的,无论如何,你的问题太开放了,所以我打算采取以下方法。

例如,在您的测试步骤请求中使用测试案例属性,这样您就可以更改此属性并多次重用相同的请求。为此,请在您的测试步骤中使用以下语法:${#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中,但不会自动执行。