Tuesday, 30 September 2014

Test 5: Print meaning of status code received from server

Test:
Check http response code received from network for a webpage and display its meaning like 200 means OK

Learning: 
Use LWP::Simple
is_success($variable) is used for success cases.
is_error($variable) is used for error cases
status_message($variable) is used to get meaning of error code

Code received by network can be:
RC_CONTINUE
   RC_SWITCHING_PROTOCOLS
   RC_OK
   RC_CREATED
   RC_ACCEPTED
   RC_NON_AUTHORITATIVE_INFORMATION
   RC_NO_CONTENT
   RC_RESET_CONTENT
   RC_PARTIAL_CONTENT
   RC_MULTIPLE_CHOICES
   RC_MOVED_PERMANENTLY
   RC_MOVED_TEMPORARILY
   RC_SEE_OTHER
   RC_NOT_MODIFIED
   RC_USE_PROXY
   RC_BAD_REQUEST
   RC_UNAUTHORIZED
   RC_PAYMENT_REQUIRED
   RC_FORBIDDEN
   RC_NOT_FOUND
   RC_METHOD_NOT_ALLOWED
   RC_NOT_ACCEPTABLE
   RC_PROXY_AUTHENTICATION_REQUIRED
   RC_REQUEST_TIMEOUT
   RC_CONFLICT
   RC_GONE
   RC_LENGTH_REQUIRED
   RC_PRECONDITION_FAILED
   RC_REQUEST_ENTITY_TOO_LARGE
   RC_REQUEST_URI_TOO_LARGE
   RC_UNSUPPORTED_MEDIA_TYPE
   RC_INTERNAL_SERVER_ERROR
   RC_NOT_IMPLEMENTED
   RC_BAD_GATEWAY
   RC_SERVICE_UNAVAILABLE
   RC_GATEWAY_TIMEOUT
   RC_HTTP_VERSION_NOT_SUPPORTED

Solution:

#!/usr/bin/perl

use Test::More;
use LWP::Simple;
use HTTP::Status;

#define number of planned test cases
plan tests => 2; 

#URL under test
my @url = qw("http://www.google.com" "http://www.iamperl.com");

for($i=0;$i<@url;$i++)
{
my $content = mirror($url[$i],abc); 
$a = status_message($content);
if($content == 200)
{
ok(is_success($content), "Http response code is $content which 

means $a");
}
else
{
ok(is_error($content), "Http response code is $content which 

means $a");
}
}


output snapshot:

No comments:

Post a Comment