Test:
Check http response code received from network for a webpage and display its meaning like 200 means OK
Learning:
Use LWP::Simple
getmirror($url, $file) returns data received from network followed by response code. Data is saved to file.
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:
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");
}
}

No comments:
Post a Comment