使用JMETER访问WebService时出现Soap错误

时间:2016-11-08 20:46:59

标签: web-services testing jmeter soapui

我试图通过Jmeter(3.0)联系网络服务,我收到以下错误:

<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
   <s:Body>
      <s:Fault>
         <s:Code>
            <s:Value>s:Sender</s:Value>
            <s:Subcode>
               <s:Value xmlns:a="http://schemas.microsoft.com/ws/2005/05/addressing/none">a:ActionNotSupported</s:Value>
            </s:Subcode>
         </s:Code>
         <s:Reason>
            <s:Text xml:lang="es-AR">The message with Action '' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.  Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).</s:Text>
         </s:Reason>
      </s:Fault>
   </s:Body>
</s:Envelope>

我没有遇到任何与SoapUI联系Web服务的问题,所以我想知道可能导致此问题的原因。

您可以在此处查看截屏:

树中的HTTP请求,HTTP请求数据的第一部分,HTTP标头管理器设置:https://i.stack.imgur.com/6HxIK.jpg

enter image description here

以下是SoapUI的结果(工作得很好):

Results and log enter image description here

SoapUI发送请求的方式是否可能与Jmeter的工作方式不同,以及它的工作原理是什么?

请帮忙。谢谢!

2 个答案:

答案 0 :(得分:1)

我认为http header SOAPAction的值有一些微不足道的错误。

发生了通知(在您附加的图片中)其值中有双引号 只需从"值中删除双引号SOAPAction即可。

<强>更新

在编辑问题时,注意到soapui已经发送了一个带有值的额外http标头action(您屏蔽了该值)。

因此,请在jmeter请求中添加action标头,并在jmeter计划中添加正确的值。

答案 1 :(得分:1)

您需要将此action位置为Content-Type标题的一部分,如:

Header Manager Settings

我还建议将HTTP Cookie Manager添加到您的测试计划

出于兴趣,为什么不使用JMeter HTTP(S) Test Script Recorder来记录源自SoapUI的请求,如:

  1. 配置JMeter进行录制。最简单的方法是使用JMeter Templates功能

    • 来自JMeter主菜单:File - Templates - Recording - Create
    • Workbench - HTTP(S)测试脚本记录器 - 开始

      JMeter Proxy

  2. 配置SoapUI进行录制

    • 来自SoapUI主菜单:Preferences - Proxy Settings
    • Proxy Settting:manual,host:运行JMeter的机器的IP地址或主机名,端口:8888

      SoapUI proxy settings

  3. 在SoapUI中执行请求

  4. 在Workbench下的JMeter中检查记录的请求 - &gt;录音控制器。