如果您不使用 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 语言,很多事情都是可能的。