Как заставить работать Property Transfer in SoapUI testcase? - PullRequest
0 голосов
/ 22 ноября 2011

Я пытаюсь передать значение из ответа одного вызова WS на запрос другого, используя SoapUI Transfer Property TestStep.

Первый ответ WS:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Header/>
  <soapenv:Body>
    <ns5:PSResponse xmlns:ns5="http://www.ab.com/abonline/service/PaymentService/1.0/" xmlns:ns6="http://www.ab.com/abonline/service/CustomerCard/1.0/" xmlns:ns7="https://secure.incab.se/DTServerModuleService/v1">
      <ns5:abTransactionReference>1085-0</ns5:abTransactionReference>
      <ns5:status>0</ns5:status>
    </ns5:PSResponse>
  </soapenv:Body>
</soapenv:Envelope>

Парсингсвойство отлично работает, используя выражение вроде:
declare namespace ns5="http://www.ab.com/abnline/service/PaymentService/1.0/" //ns5:abTransactionReference

Следующий запрос:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.ab.com/abonline/service/PaymentService/1.0/">
  <soapenv:Header/>
  <soapenv:Body>
    <UpdatePaymentRequest>
      <abTransactionReference>30</abTransactionReference>
... ...

Я пытаюсь вставить свойство в следующий запрос, используя:
//abTransactionReference

Дает мне: [Missing match for Target XPath [//abTransactionReference]]

Я также пробовал полный xpath:
declare namespace soapenv="http://schemas.xmlsoap.org/soap/envelope/" //soapenv:Envelope/soapenv:Body/UpdatePaymentRequest/abTransactionReference

..., что приводит к аналогичной ошибке.

Ответы [ 3 ]

0 голосов
/ 22 февраля 2012

Вы не можете использовать "" для определения пространства имен. Например, в случае выше >>

declare namespace soapenv="http://schemas.xmlsoap.org/soap/envelope/"

должно быть

declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
0 голосов
/ 09 декабря 2015

Попробуйте добавить утверждения XPath к сообщению запроса UpdatePaymentRequest. Нажмите кнопку «Объявление» в диалоговом окне «Конфигурация соответствия XPath», и вы увидите, какой префикс soapUI использует для пространства имен «http://www.ab.com/abonline/service/PaymentService/1.0/'». Я думаю, что это будет как:

declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
declare namespace ns1='http://www.ab.com/abonline/service/PaymentService/1.0/';

.

declare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';
declare namespace ns1='http://www.ab.com/abonline/service/PaymentService/1.0/';
/soapenv:Envelope/soapenv:Body/ns1:UpdatePaymentRequest/ns1:abTransactionReference
0 голосов
/ 22 ноября 2011

Похоже, вы должны установить пространство имен по умолчанию http://www.ab.com/..., а также

...