Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Изменить реквест перед посылкой сообщения в SoapUI


(Mykhailo Poliarush) #1

у меня есть тест, который просто шлет реквест и получает респонс (ответ)

так вот мне перед отправкой реквеста нужно сам реквест параметризировать

так как сам xml очень большой, то я хочу это сделать через groovy и xpath, для того чтобы бы руками не писать прописывать одни и те же проперти 20 раз

 

я даже нашел код, как можно изменить реквест перед отправкой http://www.soapui.org/Scripting-Properties/tips-a-tricks.html#5-change-a-request-xml-from-groovy

 

def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context )  

// get XmlHolder for request message def
holder = groovyUtils.getXmlHolder( “login#Request” )

// change password using XPath
holder["//username"] = “test”

// write updated request back to teststep
holder.updateProperty()

один вопрос, что нужно передать в getXmlHolder, чтобы получить доступ к моему реквету? Мне фактически надо взять реквест, который находится в другом шаге сценария, а groovy шаг находиться немного выше.

кто-то решал подобные проблемы?


(Mykhailo Poliarush) #2

вся проблема была в том, что я не знал, какой правильный формат строки передавать в getXmlHolder

строка в виде activation#Request - означает, что у вас должен быть реквест шаг в тесте, который называется activation, а Request это тип сообщения

 

спасибо http://minibiti.blogspot.se/2011/05/soapui-and-dynamic-xml-values.html

I am currently using SOAPUI to load test an application via web services.
In order to do that, I need to be able to change the value of some XML elements on the fly.
Here is how you can do that:
- Create a Test Suite
- Create a Test Case (which will contains Test Steps)
- Your first test step will be a SOAP request called TestReq1
- In the Test Case Editor, you can create a Setup Script

Here is the Groovy script I use to set the value of one element dynamically (in this case the element attribute called Version):

 

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder("TestReq1#Request")
holder.setNodeValue("//@Version","7.2")
holder.updateProperty()