В целях тестирования мне нужно иметь ложный ответ в SoapUI, который возвращает динамические значения на основе запроса.А именно, я посылаю идентификатор объекта, с которым мне нужно работать позже, в моей программе.
Когда у меня есть такой скрипт, как этот:
def holder = new com.eviware.soapui.support.XmlHolder( mockRequest.requestContent )
requestContext.exportId = holder.getNodeValue("//Uwid_exp")
И часть ложного ответа вродеэто:
<Uwid_exp>${exportId}</Uwid_exp>
Тогда это работает, когда я вызываю мой фиктивный сервис через SoapUI.
Однако, когда я вызываю сервис дистанционно из моего приложения, что мне нужно для тестирования,затем фиктивная служба возвращает нулевое значение.
Согласно MessageLog, входящий запрос выглядит так:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<AKCEPTACE_PROTOKOL xmlns="https://ws.nrhzs.uzis.cz/NRHZS_WebService" xmlns:ns2="https://ws.nrhzs.uzis.cz/NRHZS_WebService/NRHZS_WebService.BussinesLayer.DTO" xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/">
<Ico>47114304</Ico>
<Cpo>211</Cpo>
<Uwid_exp>000119</Uwid_exp>
<PDF_Potvrzeni>A</PDF_Potvrzeni>
</AKCEPTACE_PROTOKOL>
</soap:Body>
</soap:Envelope>
Но в исходящей части есть:
<Uwid_exp></Uwid_exp>
Я подозреваю, что mockRequest.requestContent
не указывает на запрос в этом случае, поэтому скрипт пытается присвоить значение переменной ${exportId}
, но ее нет.Но до сих пор я не смог уточнить, что вместо этого поместить в XMLHolder
определение объекта.
Где я могу найти содержимое фактического входящего запроса?