Bug 38640 - Web service SOAP data is repeated across requests if "Memory cache" is active
Web service SOAP data is repeated across requests if "Memory cache" is active
Status: RESOLVED FIXED
Product: JMeter
Classification: Unclassified
Component: Main
2.1.1
Other Linux
: P3 normal (vote)
: ---
Assigned To: JMeter issues mailing list
:
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2006-02-14 14:16 UTC by Ivan Rancati
Modified: 2006-02-20 11:43 UTC (History)
0 users



Attachments
test plan that shows the issue if "Memory Cache" is checked (37.38 KB, application/octet-stream)
2006-02-14 14:18 UTC, Ivan Rancati
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Rancati 2006-02-14 14:16:47 UTC
Thread group (1 loop - 1 thread)
    User defined variables (http server name and port)
    HTTP Authorization Manager
    WebService(SOAP) Request
       Response Assertion
    WebService(SOAP) Request
    WebService(SOAP) Request
    WebService(SOAP) Request
    View Results Tree
    Assertion Results

For the 4 requests, server ip, port number, path and SOAP Action are the
same.
By default, when creating a Web Service request, "Memory Cache" is checked, but
I think it means to cache the SOAP data across the same request in multiple
threads, not that all requests will share the same SOAP data.

The Soap/XML-RPC data changes only in the <email> part.
I am going to attach the file, where 
request 1 is a positive test case
request 2 is a negative test case (searching for an email address not present in
the database)
request 3 is a negative test case (issuing the request without the required
parameter)
request 4 is a negative test case (issuing the request with a wrong data type)

<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
        <soapenv:Body>
                <ns1:findCustomerByEmail
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:ns1="urn://mobility-platform.de/mpcustomerdb/">
                        <email xsi:type="xsd:string">[EMAIL PROTECTED]
                        </email>
        </ns1:findCustomerByEmail>
        </soapenv:Body>
</soapenv:Envelope>

When I run the test case, the same SOAP content is sent for all the 4
requests.
I have verified the behaviour by running through a proxy.

In general, it looks like there is something strange with the WebService
requests when "Memory Cache" is selected: for example, if I change the order of
the requests, I have to close and reopen the test plan for the change to take
effect.

Server is running Debian Linux, and the webservice is Axis.
On the client, I am running Suse 9.3, Jmeter 2.1.1 and JDK 1.5
Comment 1 Ivan Rancati 2006-02-14 14:18:07 UTC
Created attachment 17687 [details]
test plan that shows the issue if "Memory Cache" is checked
Comment 2 Sebb 2006-02-18 22:43:01 UTC
Problem is that the file name is used as the cache key, but if the XML is
provided in the test plan, then there is no file name.

Code has been fixed in 2.1 branch to only use the pool for XML files, as
test-plan documents can contain variables.

The next nightly build should contain the fix - hopefully this has fixed the
problem?
Comment 3 Ivan Rancati 2006-02-20 19:34:42 UTC
build 2-1.20060220 works correctly:
I can use the "Memory Cache" option both for requests that use a file and for
requests that have online XML, and I see from a proxy that the requests are all
different.

I think the bug can be marked as resolved (it's not my database so I'd rather
let a JMeter developer resolve)

thanks for the fix
Comment 4 Sebb 2006-02-20 20:43:54 UTC
Thanks for confirming that the problem is fixed.
I'll close the call.

BTW: since you raised it yourself, I don't think anyone would mind if had you 
marked it as fixed.