http://www.perlmonks.org?node_id=836545


in reply to Performance testing using Parallel::ForkManager?

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.)

  • Comment on Re: Performance testing using Parallel::ForkManager?

Replies are listed 'Best First'.
Re^2: Performance testing using Parallel::ForkManager?
by Anonymous Monk on Apr 24, 2010 at 16:04 UTC
    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

      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.