APP-REST-RestTestSuite

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN

    },
    configure_requires => {
        'Module::Build' => 0,
    },
    build_requires => {
        'Test::More' => 0,
    },
    requires           => {
        'LWP::Parallel::UserAgent' => 0,
        'LWP::UserAgent'           => 0,
        'HTTP::Request'            => 0,
        'File::Path'               => 0,
        'File::Basename'           => 0,
        'Time::HiRes'              => 0,
        'Getopt::Long'             => 0,
    },
    add_to_cleanup     => [ 'APP-REST-RestTestSuite-*' ],
    create_makefile_pl => 'traditional',
);

$builder->create_build_script();

META.json  view on Meta::CPAN

      "configure" : {
         "requires" : {
            "Module::Build" : "0"
         }
      },
      "runtime" : {
         "requires" : {
            "File::Basename" : "0",
            "File::Path" : "0",
            "Getopt::Long" : "0",
            "HTTP::Request" : "0",
            "LWP::Parallel::UserAgent" : "0",
            "LWP::UserAgent" : "0",
            "Time::HiRes" : "0"
         }
      }
   },
   "provides" : {
      "APP::REST::ParallelMyUA" : {
         "file" : "lib/APP/REST/ParallelMyUA.pm",
         "version" : "0.03"

META.yml  view on Meta::CPAN

  APP::REST::ParallelMyUA:
    file: lib/APP/REST/ParallelMyUA.pm
    version: 0.03
  APP::REST::RestTestSuite:
    file: lib/APP/REST/RestTestSuite.pm
    version: 0.03
requires:
  File::Basename: 0
  File::Path: 0
  Getopt::Long: 0
  HTTP::Request: 0
  LWP::Parallel::UserAgent: 0
  LWP::UserAgent: 0
  Time::HiRes: 0
resources:
  license: http://opensource.org/licenses/artistic-license-2.0.php
  repository: https://github.com/rkmithun/APP-REST-RestTestSuite
version: 0.03

Makefile.PL  view on Meta::CPAN

# Note: this file was auto-generated by Module::Build::Compat version 0.4206
use ExtUtils::MakeMaker;
WriteMakefile
(
  'EXE_FILES' => [
                   'script/rest-client'
                 ],
  'NAME' => 'APP::REST::RestTestSuite',
  'PL_FILES' => {},
  'PREREQ_PM' => {
                   'HTTP::Request' => 0,
                   'File::Path' => 0,
                   'Time::HiRes' => 0,
                   'Test::More' => 0,
                   'Getopt::Long' => 0,
                   'LWP::Parallel::UserAgent' => 0,
                   'LWP::UserAgent' => 0,
                   'File::Basename' => 0
                 },
  'VERSION_FROM' => 'lib/APP/REST/RestTestSuite.pm',
  'INSTALLDIRS' => 'site'

lib/APP/REST/RestTestSuite.pm  view on Meta::CPAN

package APP::REST::RestTestSuite;

use 5.006;
use strict;
use warnings FATAL => 'all';
use Data::Dumper;
use HTTP::Request;
use Time::HiRes qw( time sleep );
use File::Path;
use Cwd;
use LWP::UserAgent;
use APP::REST::ParallelMyUA;


use constant LOG_FILE     => 'rest_client.log';
use constant ERR_LOG_FILE => 'rest_client_error.log';
use constant LINE         => '=' x 50;

lib/APP/REST/RestTestSuite.pm  view on Meta::CPAN

            next;
        }

        $uri              = qq|$self->{rest_uri_base}| . qq|$tc->{uri}|;
        $method           = uc( $tc->{request_method} );
        $req_content_type = $tc->{request_content_type};
        $req_body         = $tc->{request_body} || 0;
        $status           = $tc->{response_status};

        if ( $tc->{request_method} =~ /get/i ) {
            $request = HTTP::Request->new( $method, $uri );
            $request->authorization_basic( $username, $password )
              if ( $username && $password );
        } else {
            $request =
              HTTP::Request->new( $method, $uri, new HTTP::Headers, $req_body );
            $request->authorization_basic( $username, $password )
              if ( $username && $password );
            $request->content_type($req_content_type);
            $request->content_length( length($req_body) );
        }

        print STDERR "Executing Test case $count => $tc->{test_case}";
        print $fh "Executing Test case $count => $tc->{test_case}";

        my $start_time = time;

lib/APP/REST/RestTestSuite.pm  view on Meta::CPAN


        #Support only GET methods at present
        if ( $tc->{request_method} =~ /get/i ) {

            # Create HTTP request pool for later execution by parallel useragent
            $method           = uc( $tc->{request_method} );
            $req_content_type = $tc->{request_content_type};
            $req_body         = $tc->{request_body} || 0;
            $status           = $tc->{response_status};

            my $request = HTTP::Request->new( $method, $uri );
            $request->authorization_basic( $username, $password )
              if ( $username && $password );
            push( @reqs, $request );
        }

        $total++;

    }

    print STDERR "\nRequesting [$total] web services together.\n";



( run in 1.197 second using v1.01-cache-2.11-cpan-4505f990765 )