are you using soap/xml sampler or the soap webservice sampler?

peter


On 3/28/06, Richard Gaywood <[EMAIL PROTECTED]> wrote:
>
> Hi list. Just when I thought I was getting to grips with JMeter, a client
> threw me a curveball :o(
>
> I'm trying to load test a third-party SOAP web service to confirm it can
> cope that the traffic we're going to be putting down it. I have, from one
> of
> the developers, a precise XML conversion with three samples -- and initial
> request and two extra information requests -- which works fine in a telnet
> session to port 80 on the server. So, my first instinct was to feed it
> into
> a SOAP Sampler and go home earlier. Unfortunately, JMeter's SOAP parsing
> is
> mangling the request on the way through and I think the third-party server
> doesn't like it. It's some sort of XML namespace problem but I'm rather
> new
> at this bit and I can't see what's wrong.
>
> Here's what the developer gave me:
> ==================================================
> POST /foo.asmx HTTP/1.1
> Connection: Close
> User-Agent: HostDriver26/2.6.1
> Content-Type: text/xml
> SOAPAction: http://foo.soap.action
> Content-Length: 842
> Host: foo
>
> <Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance"; xmlns="
> http://schemas.xmlsoap.org/soap/envelope/";><Body><foo xmlns="
> http://foo.soap.action"; /></Body></Envelope>
> ==================================================
> (I've had to "foo" some bits out because it's commercially sensitive, but
> hopefully you see the gist. The Content-Length is right in the original
> :o)
>
> Note that this has some problems, like no XML declaration tag. I suspect
> the
> fact the developers and clients are all Microsoft programmers is the root
> of
> my problem. Anyway, I've cut and pasted this snippet, as appropriate, into
> a
> Webservice(SOAP) Request sampler. I didn't configure through the WSDL but
> manually input server name, path, SOAPAction and data. I've also turned
> off
> Memory Cache and turned on Read SOAP response. The Data part of the
> Sampler
> is the whole body of the request above (i.e. <Envelope
> ...>...</Envelope>).
>
> Now here is what Jmeter sends, grabbed through an outgoing recording HTTP
> proxy:
> ==================================================
> POST /foo.asmx HTTP/1.0
> Host: foo:80
> Content-Type: text/xml; charset=utf-8
> Content-Length: 917
> SOAPAction: "http://foo.soap.action";
>
> <?xml version='1.0' encoding='UTF-8'?>
> <xmlns:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xmlns:xmlns="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsd="
> http://www.w3.org/2001/XMLSchema";>
> <xmlns:Body>
> <foo xmlns="http://foo.soap.action"; />
> </xmlns:Body>
> </xmlns:Envelope>
> ==================================================
> JMeter has changed the xmlns declarations, and the server doesn't like it.
> This is what I get back:
> ==================================================
> HTTP/1.1 500 Internal Server Error.
> Connection: close
> Date: Tue, 28 Mar 2006 11:33:11 GMT
> Server: Microsoft-IIS/6.0
> X-Powered-By: ASP.NET
> X-AspNet-Version: 1.1.4322
> Cache-Control: private
> Content-Type: text/xml; charset=utf-8
> Content-Length: 485
>
> <?xml version="1.0" encoding="utf-8"?>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="
> http://www.w3.org/2001/XMLSchema";>
>   <soap:Body>
>     <soap:Fault>
>       <faultcode>soap:Server</faultcode>
>       <faultstring>Server was unable to process request. --&gt; This is a
> reserved namespace. Line 2, position 71.</faultstring>
>       <detail />
>     </soap:Fault>
>   </soap:Body>
> </soap:Envelope>
> ==================================================
> Is there anyway to get the SOAP sampler working? Does anyone more
> clueful/experienced than I have a suggestion?
>
> Failing that, I thought I'd try the TCP sampler out. I wrote three TCP
> Sampler requests to open port 80 on my client's server and push the raw
> text
> the developer gave me down the port. That works fine... for one Sampler at
> a
> time. As soon as more than one Sampler is in the Thread Group, the second
> and all subsequent ones fail instantly (0 milliseconds sample time).
>
> Looking at the debug log, it's failing because my SOAP call is closing the
> HTTP connection after the invocation but the TCP Sampler is trying to
> reuse
> the connection in the second Sampler call. The docs suggest that changing
> the case of the server name will prevent this behaviour, but it doesn't;
> the
> docs also suggest that this should cause a new connection to be reopened,
> but that doesn't seem to work either. Is there anything else I can try
> before I crack the source code out?
>
>

Reply via email to