Before reinventing the wheel, you might want to check if ab doesn't already serve your needs.
| [reply] |
If this is a web application, then yes, Parallel::ForkManager may be useful for testing. As alternative have a look on AnyEvent and particularly on AnyEvent::HTTP, we're using it for load testing of our product, it allows us to simulate several thousands of simultaneous sessions.
| [reply] |
Actually, this is not about web application testing. It is about client-server application which runs as windows application. Can i still use the AnyEvent::HTTP as internally the request to the server is made using the http requests?
| [reply] |
| [reply] |
Testing server response time is not something you should put much time in hand-rolling yourself. There are a number of utilities that do this, not all in perl. I've had decent success with Apache JMeter, but that doesn't mean you shouldn't research other tools.
I'm not here to plug jmeter, but it's worked great for me in monitoring response time under load.
I'd be very curious if other monks have successfully handled this type of issue purely with perl, since I've always wanted to but never *needed* to (due to the presence of existing utilities.) | [reply] |
Actually, this is not about web application testing. It is about client-server application which runs as windows application. As per my knowledge the JMeter only works for Web Application. Am i correct?
-Isha
| [reply] |
Using fork (even via Parallel::ForkManager) on Windows, where fork is emulated, doesn't make much sense.
I use this for stress testing my local servers. By default it will run 20 clients, each will make 1000 (serial) connections and exchange 1000 conversations. Adapting it to your needs should be straight forward.
#! perl -slw
use strict;
use threads;
use IO::Socket;
our $W //= 20;
my @t = map{
async {
for( 1 .. rand 1000 ) {
my $s = new IO::Socket::INET(
'localhost:12345'
) or die "Failed to connect to server: $!";
for( 1 .. rand 1000 ) {
print $s "Message $_";
scalar <$s>;
}
close $s;
}
};
} 1 .. $W;
$_->join for @t;
-
-
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
| [reply] [d/l] |