Если вы не используете 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 и использовать их в вызовах 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"))
Затем, все еще в цикле, вызвать веб-сервис:
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)
Завершить цикл:
}
Последняя часть - динамическое получение значений свойств в вызове soap. Вы делаете это так в запросе XML:
<soap:Header/>
<soap:Body>
<ns:SomeRequest>
<ns:address>${#TestCase#address}</ns:address>
<ns:name>${#TestCase#name}</ns:name>
...
Как только вы понимаете, что имеете доступ к полному языку Groovy, возможно многое.