如何通过Robot Framework将WS-A地址添加到SOAP Web服务请求中?

时间:2019-02-01 13:26:32

标签: soap robotframework

我是Robot Framework的新手,但遇到了问题。

我尝试调用需要WSA(Web服务寻址)的Web服务。

我尝试在使用SoapUI时发送请求。 启用WSA时,通过SoapUI发送请求在标头中提供了<wsa:Action><wsa:RelatesTo><wsa:MessageID>标签。

现在我要对RobotFramework做同样的事情。

如何通过Robot Framework注入这些相同的标签?

这是我的考试

*** Settings ***
Library           SudsLibrary
Library           Collections
Library           String

*** Test Cases ***
test
    [Tags]    blah
    Create Soap Client    C:${/}Robot WS${/}WS${/}wsdl${/}C60W30A.wsdl
    Set Http Authentication    MyUID    MyPWD
    ${C60W30A}=    Create Wsdl Object    ns0:Invoer
    ${taimen}=    Set Soap Headers    "wsa:Action"     GenBetKenmOperation
    Set Wsdl Object Attribute    ${C60W30A}    Functie    04
    Set Wsdl Object Attribute    ${C60W30A}    Bronsysteem    COA
    Set Wsdl Object Attribute    ${C60W30A}    Gebruiker    WILLT10
    ${result}=    Call Soap Method    GenBetKenmOperation    ${C60W30A}

结果XML为:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.MyCompany.nl/inning/coa/GenererenBetKenmerk" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header/>
   <ns0:Body>
      <ns1:GenererenBetKenm>
         <Invoer>
            <Functie>04</Functie>
            <Bronsysteem>COA</Bronsysteem>
            <Gebruiker>GeBrID</Gebruiker>
         </Invoer>
      </ns1:GenererenBetKenm>
   </ns0:Body>
</SOAP-ENV:Envelope>

错误:

FAIL : WebFault: Server raised fault: 'A required header representing a Message Addressing Property is not present'

您可以看到<wsa:Action>标签丢失了。添加其他SOAP标头标记也一样。

0 个答案:

没有答案