Hi Sebb,
can you please answer some more questions on this topic. I gave some of my
assumptions and dopubts below your response
>>The current TCP Sampler creates a new socket for each sampler
>>occurrence in each thread. I do plan to add re-usable sockets to the
>>TCP Sampler, but that probably won't be for a few weeks.
First I planned to extend the TCPsampler by myself and though of a design like
this :
There will be a specialized TcpSampler(for discussion lets call it
SharedTcpSampler) . Instances of this SharedTcpSampler will be used for all the
TCP requests that we want to make to a server over a single connection/socket.
This SharedTcpSampler will have a property called "sharedSocketReference"
which will be something like a reference name that we give to a global counter
inorder to use it else where in testplan.
Each SharedTcpSampler will first try to get the socket instance by searching
for it in a Global NameSpace (Iam yet to know what this Global Name Space would
be in Jmeter context) by giving the "sharedSocketReference" value that user
will configure in testplan.
If this search is successful,( ie some other SharedTcpSampler in the testplan
has already created a socket connection and registered it under this name),
then it will send its "Text To send" (inherited from TcpSampler) over that
socket and reads back the response.
If this search fails , which will be the case with first SharedTcpSampler in
the testplan , it will create a new socket and register it in a Global
NameSpace under the name specified in "sharedSocketReference" and continues
using it for implmenting the protocol
So in this solution, all the SharedTcpSamplers in a testplan with same value
given in their "sharedSocketReference" property will share a single socket
connection. Hence I think it will serve the purpose.
But I know that inorder to implement this I need to know the architecture of
Jmeter and different components of it in detail. I was unable to study this any
further as I was tied to some other work. :-(
Sebb, can you please tell me whether this design fits the bill. If yes please
direct me towards some resources thru which I can quickly learn about
architecture and components of Jemter and implement this.
Iam planning to do this as soon as possible. :-)
>>One way to re-use the same socket might to have only a single sampler,
>>and vary the content of the request using a function call to read it
>>from a file.
can you eloborate on this or tell me about the resources where I can find
details.
>>However, I've not tried this.
==
>>Note that the TCPSampler class is the one that creates the socket. The
>>TCPClientImpl class uses the socket to implement the protocol.
>>The current protocol sends the string as is, and reads bytes until the
>>EOL byte is seen. EOL can be defined by the property tcp.eolByte.
In my application all server responses end with a "5".
We achive this by appending (char)5 at the end to the String to be sent .
like String txtTosend = "some data "+(char)5
stream.write(txtTosend.getBytes());
So now can I give 5 for tcp.eolByte so that Jmeter reads entire response
string/data ???
==
>>JMeter is built around the assumption of a request/response sample.
>>There's currently no provision for reading from a socket without
>>previously writing to it, but that would be trivial to add - I may
>>well add that to the nightly code shortly. Or indeed it may already
>>work if you provide an empty string.
>>But the test plan would have to include samplers for each expected
>>server response.
>>If a single client request results in a known number of responses, or
>>there is some other way of telling that the server has finished
>>responding to the original request, then the TCPClientImpl read()
>>method could implement this.
can you eloborate on this or tell me about the resources where I can find
details.
S.
>
Regards
Srikanth.P
Disclaimer
------------------------------------------------------------------------------------
This e-mail message may contain confidential, proprietary
or legally privileged information. It should not be used by
anyone who is not the original intended recipient. If you
have erroneously received this message, please delete it
immediately and notify the sender.
The views, opinions, conclusions and other information
expressed in this electronic mail are those of the
individual sender and not endorsed by SDG Software
Technologies Pvt. Ltd. unless otherwise indicated by an
authorised representative independent of this message.
Before opening any attachment please check them for viruses
and defects. SDG Software Technologies Pvt. Ltd. shall not
accept responsibility for any loss or damage arising from
the use of this email or attachment(s).
-------------------------------------------------------------------------------------
---------------------------------
How much free photo storage do you get? Store your friends n family photos for
FREE with Yahoo! Photos.
http://in.photos.yahoo.com