# Load required modules use Net::DNS; # Used for DNS lookup use LWP::UserAgent; # Used for Web Page Query use Crypt::SSLeay; # Used for SSL Queries use File::Compare; # Used to compare website output with prior versions use Net::SMTP::OneLiner; # Used to easily send a basic email alert use Time::HiRes qw(gettimeofday tv_interval); # Used to calculate reponse times in milliseconds my $ua = new LWP::UserAgent(agent => 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4'); $ua->cookie_jar( {} ); # Load the home page $url = "http://www.petsits.com/"; $starttime = [gettimeofday]; $httprequest = new HTTP::Request('GET', $url); print "Loading page $url...\n"; $response = $ua->request($httprequest); if ($response->is_success) { #print $response->as_string; $page1elapsedtime = tv_interval ( $starttime, [gettimeofday] ); print "Page $url loaded successfully in $page1elapsedtime seconds\n\n"; } else { print "Error, could not open page $url. " . $response->status_line . "\n\n"; } # Load the second page $url = "http://www.petsits.com/mb/login.php?redirect=maindex.php"; $starttime = [gettimeofday]; $httprequest = new HTTP::Request('GET', $url); print "Loading page $url...\n"; $response = $ua->request($httprequest); if ($response->is_success) { #print $response->as_string; $page2elapsedtime = tv_interval ( $starttime, [gettimeofday] ); $totalelapsedtime += $page2elapsedtime; if ($response->content =~ m/form\saction=\"login\.php\?sid=(\w*)\"/ ) { $sid = $1; } else { print "Form not found on page $url\n"; } print "Page $url loaded successfully in $page2elapsedtime seconds\n\n"; } else { print "Error, could not open page $url. " . $response->status_line . "\n\n"; } # Submit the login form $url = "http://www.petsits.com/mb/login.php?sid=$sid"; #$url = "http://www.petsits.com/mb/login.php"; $starttime = [gettimeofday]; $httprequest = new HTTP::Request('POST', $url); #Referer: http://www.petsits.com/mb/login.php?redirect=maindex.php $httprequest->content_type('application/x-www-form-urlencoded'); $httprequest->content('username=kevinmbong&password=cheese12&redirect=maindex.php%3Ffolder%3D%26mode%3D%26p%3D&login=Member+Log+In'); print "Loading page $url...\n"; $response = $ua->request($httprequest); if (($response->is_success) || ($response->code ==302)) { #print $response->as_string; $page3elapsedtime = tv_interval ( $starttime, [gettimeofday] ); $totalelapsedtime += $page3elapsedtime; if ($response->code ==302 ) { print "Login successful, redirecting to main page\n\n"; } else { print "Login Unsuccessful\n"; } print "Page $url loaded in $page3elapsedtime seconds\n\n"; } else { print "Error, could not open page $url. " . $response->status_line . "\n\n"; } # Look for "Welcome to the Members Only area" # Redirect to the petsits page $url = "http://www.petsits.com/mb/maindex.php?folder=&mode=&p=&sid=$sid"; $starttime = [gettimeofday]; $httprequest = new HTTP::Request('GET', $url); print "Loading page $url...\n"; $response = $ua->request($httprequest); if ($response->is_success) { #print $response->as_string; $page4elapsedtime = tv_interval ( $starttime, [gettimeofday] ); $totalelapsedtime += $page4elapsedtime; if ($response->content =~ m/Welcome to the Members Only area/ ) { print "Successful, found content \"Welcome to the Members Only area\"\n"; } else { print "Content Welcome to the Members Only area not found\n"; } print "Page $url loaded in $page4elapsedtime seconds\n\n"; } else { print "Error, could not open page $url. " . $response->status_line . "\n\n"; } # Look for "Welcome to the Members Only area" print "\n\nTest Complete. Elapsed Time $totalelapsedtime seconds\n";