2017-03-06 29 views
0

我想用JMeter來調用一個RPC/SOAP Web服務,當我調用服務時,我的名字空間被從實際值改爲NS1。JMeter改變我的名字空間

<?xml version="1.0" encoding="UTF-8"?> 
<wpc:invoke xmlns:wpc="http://wpc.ibm.com"> 
    <wpc:envelope communicationVersion="5.3"> 
     <wpc:WPCResponseType>asynchronous</wpc:WPCResponseType> 
     <wpc:wpcHeader> 
      <wpc:companyName>mycompany</wpc:companyName> 
      <wpc:wpsUserID>me</wpc:wpsUserID> 
      <wpc:wpcUserID>wpcUsername</wpc:wpcUserID> 
      <wpc:password /> 
      <wpc:messageIdentifier>9E2FA100-BE54-11E5-8A91-BF48E24665E0</wpc:messageIdentifier> 
      <wpc:timestamp>2016-01-18</wpc:timestamp> 
      <wpc:supplierId><![CDATA[0Z188]]></wpc:supplierId> 
      <wpc:localeForDisplay>en_US</wpc:localeForDisplay> 
      <wpc:localeRestriction>en_US</wpc:localeRestriction> 
     </wpc:wpcHeader> 
     <wpc:wpcBody> 
      <wpc:wpcCommand mode="ASYNC" type="UPLOAD"> 
       <wpc:wpcCatalogName>Item Transaction Catalog</wpc:wpcCatalogName> 
       <wpc:wpcFileDocStorePath>test_data/upload/0003_items.csv</wpc:wpcFileDocStorePath> 
       <wpc:wpcUpdateOnly>false</wpc:wpcUpdateOnly> 
      </wpc:wpcCommand> 
     </wpc:wpcBody> 
    </wpc:envelope> 
</wpc:invoke> 

更改:

<?xml version="1.0" encoding="UTF-8"?> 
<ns1:invoke xmlns:ns1="http://wpc.ibm.com"> 
    <ns1:envelope communicationVersion="5.3"> 
     <ns1:WPCResponseType>asynchronous</ns1:WPCResponseType> 
     <ns1:wpcHeader> 
      <ns1:companyName>mycompany</ns1:companyName> 
      <ns1:wpsUserID>me</ns1:wpsUserID> 
      <ns1:wpcUserID>wpcUsername</ns1:wpcUserID> 
      <ns1:password/> 
      <ns1:messageIdentifier>9E2FA100-BE54-11E5-8A91-BF48E24665E0</ns1:messageIdentifier> 
      <ns1:timestamp>2016-01-18</ns1:timestamp> 
      <ns1:supplierId><![CDATA[0Z188]]></ns1:supplierId> 
      <ns1:localeForDisplay>en_US</ns1:localeForDisplay> 
      <ns1:localeRestriction>en_US</ns1:localeRestriction> 
     </ns1:wpcHeader> 
     <ns1:wpcBody> 
      <ns1:wpcCommand mode="ASYNC" type="UPLOAD"> 
       <ns1:wpcCatalogName>Item Transaction Catalog</ns1:wpcCatalogName> 
       <ns1:wpcFileDocStorePath>test_data/upload/0003_items.csv</ns1:wpcFileDocStorePath> 
       <ns1:wpcUpdateOnly>false</ns1:wpcUpdateOnly> 
      </ns1:wpcCommand> 
     </ns1:wpcBody> 
    </ns1:envelope> 
</ns1:invoke> 

必須有JMeter的設置,以保持該消息從我原來有意義的命名空間被轉化爲這張名​​爲NS1的任意命名空間?當在目標端點收到消息時,由於此語義錯誤,它無法解析請求。

任何/所有的答覆表示讚賞! MG

+0

你如何把你的要求嗎?那是一個採樣器? –

+0

採樣器是SOAP/RPC。上面的請求是JMeter採樣器中的數據。 – Griff

+0

然後,你知道什麼,我相信這與JMeter沒什麼關係,它只是將原始的東西發送出去。檢查你的服務器行爲和/或兩者之間的鏈條,如果有的話。 –

回答

1

JMeter不應該更改請求正文中的任何內容,也許這是您的Web服務的問題?發送Web服務請求(不要忘記的仔細檢查正在由JMeter的使用嗅探工具發送類似Wireshark

JMeter namespace

在任何情況下,嘗試切換到HTTP Request樣的要求,這是推薦的方法加HTTP Header Manager發送Content-TypeSOAPAction標題)。

參考文獻: