PagePoker 1.2

PagePoker is a Perl package that defines a browser agent with many powerful features for monitoring and testing Web sites.

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!
send us
an update
GPL (GNU General Public License) 
3.1/5 26
Mark Wolgemuth
ROOT \ System \ Monitoring
PagePoker is a Perl package that defines a browser agent with many powerful features for monitoring and testing Web sites, including elaborate failure handling that can send email and trigger SNMP traps. The application comes with three scripts that implement it for different uses:, for single agents;, for many parallel agents, and, for loadtesting and benchmarking.


Run " --help" for detailed help on using the package. Briefly, creates a PagePoker object, accepting all sorts of options. It is designed for monitoring web pages to verify they are returning desired information or to dump the contents of web pages to a file (like fetch). It can loop on a variety of conditions and crawl a series of pages, posting and passing cookies. The other component,, is simply a forking variation that accepts as its parameters an agent id and the options for that agent. It can be used for monitoring many sites simultaneously or for load testing single sites. On a dual 400 mhz machine I was able to run about 120 concurrent agents.


> --url

returns (first element is date):
20000225170507 SUCCESS: Page loaded by agent

> --url --no-status --print-response

returns the plain html

> agent1 "--url --no-status --email-failures
--email-address --iterations 1000 --interval 10"
agent2 "--urls>>
--no-status --email-failures --email-address """

will launch two agents, first agent will poll for connection failures every 10 seconds 1000 times, emailing if a failure is encountered, second agent will hit then and exit, emailing two people if either one doesn't respond.

There is a lot of logic to control how often and under what conditions email is sent. You can search for desired in text the headers or the html response, and send email or snmp traps on certain failure conditions. To loadtest, you could launch looping batches of ten agents, adding ten more a minute later in a another process, etc.

More advanced load testing can be done with It gets its own README (README.pokehard).

Here is the output of --help, minus the USAGE statement:

How to use it:

--url "http://host/page"

--urls "http://host/page1>>http://host/page2>>etc"

--urls-from-file "file_path"

--urls-delay "n"
Seconds between each request

--method {GET|POST}

--post-query "query string"

--basic-auth-name "agent login" (one per agent)

--basic-auth-pass "agent password"

--interval "n"
Loop with n seconds between pokes

--iterations "n"
Cycles to run loop (requires --interval)

--look-for "pattern to find in response text"

--resend-cookie "cookiename"

Allow cookie to be resent through all iterations

Includes headers in response text

Dump agent retrieved text to STDOUT

Allow server disabling on failure

--disable-snmp-trap "snmp trap"
To disable in loadbalancer

Allow server re-enabling on recovery

--enable-snmp-trap "snmp trap"
To enable server after successful run

Turn on alarm emails

--email-addresses "address1 address2 etc"

--email-subject "override default with arbitrary text"

--failures-until-email "n"
Consecutive errors triggers email

--min-time-between-emails "seconds"

--die-after-date "yyyymmddhhmmss" (requires interval and iterations)

Store numbers used for performance measurement (by

Output nothing (except email, if set)

Do not output status info (ie SUCCESS, etc)

--print-to-file "file"
Write output to file

Print this text and exit


· libwww-perl
· HTML-Parser
· MailTools
· MIME-Base64
· Crypt-SSLeay WITH rsaref lib support

What's New in This Release:

· Bug fixes, SSL support added

Last updated on July 17th, 2007

#define browser agent #website monitoring #website testing #PagePoker #define #browser #agent

Add your review!