SudsLibrary в Robot Framework: получение и настройка атрибутов объекта - PullRequest
0 голосов
/ 08 февраля 2019

Я работаю с SudsLibrary для Robot Framework.Ниже приведены Rq / Rs для веб-сервиса, который я тестирую.Вы также найдете информацию о Robot Framework и мой комментарий о том, что происходит.

ЗАПРОС

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sec="http://localhost/ABC/Services/Security/">
   <soapenv:Header/>
   <soapenv:Body>
      <sec:AuthUser>
         <sec:userName>MyAdmin</sec:userName>
         <sec:password>Password123</sec:password>
      </sec:AuthUser>
   </soapenv:Body>
</soapenv:Envelope>

ОТВЕТ

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.ompum-open.org/wss/2004/01/ompum-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.ompum-open.org/wss/2004/01/ompum-200401-wss-wssecurity-utility-1.0.xsd">
   <soap:Header>
      ...
   </soap:Header>
   <soap:Body>
      <AuthUserResponse xmlns="http://localhost/ABC/Services/Security/">
         <AuthTicket>k3l5d9k6-3z53-8765-b512-df09as87</AuthTicket>
      </AuthUserResponse>
   </soap:Body>
</soap:Envelope>
*** Settings ***
Library  SudsLibrary

*** Test Case ***
Check App Auth Ticket
    Create Soap Client    http://localhost/Services/Authentication.asmx?wsdl
    ${WSDLobj}    Create Wsdl Object    AuthUser
    Set Wsdl Object Attribute    ${WSDLobj}    userName    MyAdmin
    Set Wsdl Object Attribute    ${WSDLobj}    password    Password123
    ${result}    Call Soap Method    AuthUser    ${WSDLobj}
    log    Result: ${result}
    # Now get the specific element from the response
    ${AuthVal}    Get Wsdl Object Attribute    ${result}    AuthTicket
    log    Auth Ticket: ${AuthVal}

Все успешно в моемконтрольный пример Check App Auth Ticket, пока я не вызову ключевое слово SudsLibrary Get Wsdl Object Attribute.Возникает следующая ошибка: ValueError: Object must be a WSDL object (suds.sudsobject.Object).Почему я получаю сообщение об ошибке при создании объекта и его успешном вызове?

Когда я распечатываю переменную ${result}, это значение для AuthVal.Однако я хочу явно извлечь конкретное значение / элемент из ответа веб-службы.У меня есть другие ответы веб-службы, которые потребуют от меня анализа этих данных для проведения сквозного тестирования.

...