我如何在soapUI中循环发出具有不同内容的请求? [关闭]

2024-04-27

我有一个方法作为soapUI 中的请求。它将数据传输到在线平台。我有不同的变量,每次都有不同的竞争。有没有办法让我每次都用不同的内容循环请求?

我尝试以某种方式将请求连接到常规脚本,以便对那里的循环进行编程,但不知道如何做到这一点

目标是拥有一个 cvs 文件,其中保存了 100 个地址。然后传输所有数据。但与同一地址相关的所有数据都在同一请求中传输。并且必须对每个“数据组”重复该请求(例如地址、姓名、电话号码、身份证、性别)


如果您不使用 Pro,则可以使用开源版本做很多事情,但它需要一些 Groovy 脚本。不过这并不太难。基本前提是:从 CSV 读取一些数据 -> 对于每条记录替换变量值 -> 使用这些变量调用服务。全部在一个脚本中。

我们先获取 CSV 数据:

    new File("/path/to/data.csv").splitEachLine(",") { line ->
        def address = line[0]
        def name = line[1]
        def telephoneNumber = line[2]
        def id = line[3]
        def gender = line[4]

进行测试以确保:

        log.info(name)

SoapUI 使用一个称为属性的概念,该概念链接到各个级别的范围:测试用例、测试套件、项目等。您可以使用 CSV 值填充类似的 props,并在 SOAP 调用中使用它们。您可以将其与上面的内容结合起来,但为了清楚起见,我将其分开:

        testRunner.testCase.setPropertyValue( "address", address )
        testRunner.testCase.setPropertyValue( "name", name )
        testRunner.testCase.setPropertyValue( "telephoneNumber", telephoneNumber )
        testRunner.testCase.setPropertyValue( "id", id )
        testRunner.testCase.setPropertyValue( "gender", gender )

如果选择了测试用例,您将在“自定义属性”选项卡上看到它们。您还可以像这样以编程方式检索值:

        log.info(testRunner.testCase.getPropertyValue("name"))

然后,仍然在循环中调用 Web 服务:

        def soapTestStep = testRunner.testCase.getTestStepByName("My SOAP Request").name
        testRunner.runTestStepByName(soapTestStep)

如果您想要将结果 XML 保存到文件中,请像这样获取:

        import com.eviware.soapui.support.XmlHolder
        def xml = new XmlHolder(context.response)

结束循环:

    }

最后一部分是将属性值动态获取到肥皂调用中。您可以在请求 XML 中执行以下操作:

    <soap:Header/>
        <soap:Body>
            <ns:SomeRequest>
                 <ns:address>${#TestCase#address}</ns:address>
                 <ns:name>${#TestCase#name}</ns:name>
                 ...

一旦您意识到您可以访问完整的 Groovy 语言,很多事情都是可能的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我如何在soapUI中循环发出具有不同内容的请求? [关闭] 的相关文章

随机推荐