我试图通过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
以下是SoapUI的结果(工作得很好):
SoapUI发送请求的方式是否可能与Jmeter的工作方式不同,以及它的工作原理是什么?
请帮忙。谢谢!
答案 0 :(得分:1)
我认为http header SOAPAction
的值有一些微不足道的错误。
发生了通知(在您附加的图片中)其值中有双引号
只需从"
值中删除双引号SOAPAction
即可。
<强>更新强>
在编辑问题时,注意到soapui已经发送了一个带有值的额外http标头action
(您屏蔽了该值)。
因此,请在jmeter请求中添加action
标头,并在jmeter
计划中添加正确的值。
答案 1 :(得分:1)
您需要将此action
位置为Content-Type
标题的一部分,如:
我还建议将HTTP Cookie Manager添加到您的测试计划
出于兴趣,为什么不使用JMeter HTTP(S) Test Script Recorder来记录源自SoapUI的请求,如:
配置JMeter进行录制。最简单的方法是使用JMeter Templates功能
配置SoapUI进行录制
在SoapUI中执行请求