APP-REST-RestTestSuite
view release on metacpan or search on metacpan
script/rest-client view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use File::Basename;
use Getopt::Long;
use POSIX;
use APP::REST::RestTestSuite;
use Data::Dumper;
$Data::Dumper::Indent = 1;
my ( $config_file, $log_dir, $action, $suite );
my $client = File::Basename::basename($0);
my %options = (
'c|configfile=s' => \$config_file,
'l|logdir=s' => \$log_dir,
'r|run-test-suite' => \$action->{runtestsuite},
't|test-load=s' => \$action->{testload},
's|get-sample-config' => \$action->{getsampleconfig},
'd|debug' => \$action->{debug},
'h|help' => \&usage,
'V|version' =>
sub { print "Version : ", APP::REST::RestTestSuite->VERSION, "\n"; exit; },
);
mini_usage() unless @ARGV;
GetOptions(%options) or mini_usage();
sub mini_usage {
print STDERR <<HELP;
Usage: $client [options] command [...]
Try `$client --help` for more options.
HELP
exit;
}
sub usage {
print STDERR <<HELP;
Usage: $client [options] command [...]
Options:
-h,--help Display this usage.
-V,--version Print the version of the tool.
-c,--configfile=<file> Input the config file with full path.
-l,--logdir=<dir> Input full path of the directory where you want to log the test results.
-t,--test-load=n Test the average response time by simulating 'n' number of requests on the web server.
Commands:
-r,--run-test-suite Test the configured web services defined in the config file.
-g,--get-sample-config Get a sample config file to configure your web services as test suite.
***Note:
By default tool uses the sample-config file. You need to get that and configure the suite.
Examples:
$client --get-sample-config
# Get sample config file for configuring web services in the current directory.
$client --run-test-suite --configfile=<rest_config_file>
# Execute the test suite against the supplied config file.
# Supply the full path of config file if it is not present in current directory.
$client --test-load=10 --configfile=<rest_config_file>
# Send parallel requests (10* number of web services configured in config file).
# Give average response time by simulating huge traffic in the web server.
$client --run-test-suite --configfile=<rest_config_file> --logdir=<log-directory-path>
$client --test-load=10 --configfile=<rest_config_file> --logdir=<log-directory-path>
# Create LOG files in the path specified by executing the test cases.
HELP
exit;
}
print
"\n===============================Rest Test Automation Tool=============================\n";
if ( $^O =~ /Win/ ) {
$config_file =~ s/\//\\/g if ($config_file);
$log_dir =~ s/\//\\/g if ($log_dir);
}
if ( $config_file && $log_dir ) {
print "Parsing Config File : $config_file\n";
print "Using log dir as : $log_dir\n";
$suite = new APP::REST::RestTestSuite(
REST_CONFIG_FILE => $config_file,
LOG_FILE_PATH => $log_dir,
);
} elsif ($config_file) {
print "Parsing Config File : $config_file\n\n";
$suite = new APP::REST::RestTestSuite( REST_CONFIG_FILE => $config_file, );
} elsif ($log_dir) {
( run in 0.583 second using v1.01-cache-2.11-cpan-13bb782fe5a )