2017-07-07 133 views
0

我正在使用JMeter使用基本認證對WCF Web服務運行測試,服務正在運行且憑據正確(我從SOAPUI成功運行它們)。無法從JMeter授權給WCF基本認證Web服務

從我的研究,我已經配置了兩個「HTTP標頭管理」和「HTTP基本身份驗證」,我看不出什麼毛病我實際的HTTP標頭在提交時:

enter image description here

我迄今所做的:

我把它對準目前仍然可以工作,但JMeter的基本身份驗證的SOAPUI將SOAPAction的一些操作失敗後: enter image description here

的HTTP響應之下,但它是標準的(我得到這個從SOAPUI的時候我故意輸入錯誤的憑據)

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">a:InvalidSecurity</faultcode><faultstring xml:lang="en-ZA">An error occurred when verifying security for the message.</faultstring></s:Fault></s:Body></s:Envelope> 

我有包括綁定配置下它使用標準basicHttpsBinding的(不WsHttpBinding的):

<service name="PayM8.Axis.PaymentsService.V1.HyperLink.HyperLinkService"> 
     <endpoint address="" binding="basicHttpsBinding" bindingConfiguration="DefaultHttpsBinding" 
      contract="PayM8.Axis.PaymentsService.V1.HyperLink.IHyperLinkService"/> 
</service> 

<basicHttpsBinding> 
    <binding name="DefaultHttpsBinding" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"> 
     <security mode="TransportWithMessageCredential"> 
     <transport clientCredentialType="Basic" /> 
     </security> 
    </binding> 
</basicHttpsBinding> 

任何想法是什麼可能是我的JMeter基本認證HTTP請求錯?

回答

1

Web服務可能有不同的身份驗證類型,您收到的錯誤是關於丟失或不正確的WS-Security標頭。

有多種方法將頭添加到請求中,您可以嘗試使用JMeterSoapPlugin,它有一些驗證類型支持。

您也可以查看Take the Pain out of Load Testing Secure Web Services以瞭解如何繞過不同類型的Web服務身份驗證。

+0

感謝您指出了這一點,它肯定會取得了意義,如果我們使用的wsHttpBinding的,但它使用了標準的basicHttpsBinding(更新與設置的問題)。我們在使用wsHttpBinding的服務器上有一些其他的服務,所以爲了安全起見,我也禁用了它們,但沒有改變,它仍然返回,並且出現了完全相同的錯誤。 –

+0

我站在糾正Dmitri,我們正在使用** WS Security **,因爲它的[TransportWithMessageCredential]的安全模式。自定義用戶名和密碼驗證程序無法在「TransportCredentialOnly」(使用Windows驗證的IIS級別基本驗證)上工作。 JMeter插件對我不起作用(嘗試了一對包括提供的一對),但會發布我如何通過在HTTP有效內容中包含WS Header來使WS JMeter發佈工作。感謝您的解釋,它幫助我指出了正確的方向。 –

0

在短德米特里提到的,我們使用的是WS安全性,當你(都在BasicHttpBindings和的wsHttpBinding)

<security mode="TransportWithMessageCredential"> 

通常基本驗證利用HTTP報頭的配置如下面的安全模式添加此啓用下面:

授權:基本QWxhZGRpbjpPcGVuU2VzYW1l

當使用WS Security但是用戶名和密碼被包含在SOAP有效載荷本身。當我在JMeter HTTP Request中的HTTP Body數據中添加對象時,它可以正常工作。

JMeter HTTP Request with wsse:Security

有用的工具,如果你不想弄清楚WSSE的內容:保障對象我建議送其關閉使用SOAPUI,然後從SOAPUI日誌抓住格式的對象。請記住將WSS-Password Type設置爲PasswordText。

enter image description here