2714a6b12f606d808401e1867386139334b06db4
[WWW-Mechanize-Script.git] / lib / WWW / Mechanize / Script / Plugin / ResponseTimeTest.pm
blob2714a6b12f606d808401e1867386139334b06db4
1 package WWW::Mechanize::Script::Plugin::ResponseTimeTest;
3 use strict;
4 use warnings;
6 use parent qw(WWW::Mechanize::Script::Plugin);
8 # ABSTRACT: check response time of request
10 our $VERSION = '0.001_003';
12 use 5.014;
14 sub check_value_names
16 return qw(min_elapsed_time max_elapsed_time);
19 sub check_response
21 my ( $self, $check, $mech ) = @_;
23 my $code = 0;
24 my $msg;
26 my $min_time = $self->get_check_value( $check, "min_elapsed_time" );
27 my $max_time = $self->get_check_value( $check, "max_elapsed_time" );
28 my $total_time = $mech->client_elapsed_time();
30 if ( defined($min_time) and $min_time > $total_time )
32 my $err_code = $self->get_check_value( $check, "min_elapsed_time_code" ) // 1;
33 $code = &{ $check->{compute_code} }( $code, $err_code );
34 $msg = "elapsed time $total_time exceeded lower threshold ($min_time)";
36 if ( defined($max_time) and $max_time < $total_time )
38 my $err_code = $self->get_check_value( $check, "max_elapsed_time_code" ) // 1;
39 $code = &{ $check->{compute_code} }( $code, $err_code );
40 if ($msg)
42 $msg .= " and upper threshold ($max_time)";
44 else
46 $msg = "elapsed time $total_time exceeded upper threshold ($max_time)";
50 return ( $code, ( $msg ? ($msg) : () ) );