Lines 11-16
BEGIN {
Link Here
|
11 |
eval { require "$FindBin::Bin/kohalib.pl" }; |
11 |
eval { require "$FindBin::Bin/kohalib.pl" }; |
12 |
} |
12 |
} |
13 |
|
13 |
|
|
|
14 |
use Getopt::Long; |
14 |
use HTTPD::Bench::ApacheBench; |
15 |
use HTTPD::Bench::ApacheBench; |
15 |
use LWP::UserAgent; |
16 |
use LWP::UserAgent; |
16 |
use Data::Dumper; |
17 |
use Data::Dumper; |
Lines 18-28
use HTTP::Cookies;
Link Here
|
18 |
use C4::Context; |
19 |
use C4::Context; |
19 |
use C4::Debug; |
20 |
use C4::Debug; |
20 |
|
21 |
|
21 |
my $baseurl= $ARGV[0] || "http://am123/cgi-bin/koha/"; |
22 |
my $help; |
22 |
my $max_tries = 200; |
23 |
GetOptions( |
|
|
24 |
'help' => \$help, |
25 |
); |
26 |
|
27 |
if ($help) { |
28 |
print <<EOF |
29 |
This script runs a benchmark of the staff interface. It benchmark 6 different pages: |
30 |
\t- the staff main page |
31 |
\t- the catalog detail page, with a random biblionumber |
32 |
\t- the patron detail page, with a random borrowernumber |
33 |
\t- the patron search page, searching for "Jean" |
34 |
\t- the patron quick search page, searching for A |
35 |
\t- the circulation itself, doing check-out and check-in of random items to random patrons |
36 |
parameters : |
37 |
\thelp = this screen |
38 |
\tThe 1st parameter must be the URL of the staff interface to query |
39 |
\tThe 2nd parameter must be the login |
40 |
\tThe 3rd parameter must be the password |
41 |
|
42 |
SAMPLE : ./benchmark_circulation.pl http://yourstaff.org/cgi/bin/ test test |
43 |
|
44 |
EOF |
45 |
; |
46 |
die; |
47 |
} |
48 |
my $baseurl= $ARGV[0] || die "Please run me with --help for needed parameters\n"; |
49 |
my $max_tries = 20; |
23 |
my $concurrency = 30; |
50 |
my $concurrency = 30; |
24 |
my $user = $ARGV[1] ||'hdl'; |
51 |
my $user = $ARGV[1] || die "Please run me with --help for needed parameters\n"; |
25 |
my $password = $ARGV[2] || 'hdl'; |
52 |
my $password = $ARGV[2] || die "Please run me with --help for needed parameters\n"; |
26 |
|
53 |
|
27 |
# Authenticate via our handy dandy RESTful services |
54 |
# Authenticate via our handy dandy RESTful services |
28 |
# and grab a cookie |
55 |
# and grab a cookie |
Lines 139-145
$ro = $b2->execute;
Link Here
|
139 |
# calculate hits/sec |
166 |
# calculate hits/sec |
140 |
print ("\t".$b2->total_time."ms\t".(1000*$b2->total_requests/$b2->total_time)." borrowers/sec\n"); |
167 |
print ("\t".$b2->total_time."ms\t".(1000*$b2->total_requests/$b2->total_time)." borrowers/sec\n"); |
141 |
|
168 |
|
142 |
my $b2 = HTTPD::Bench::ApacheBench->new; |
169 |
$b2 = HTTPD::Bench::ApacheBench->new; |
143 |
$b2->concurrency( $concurrency ); |
170 |
$b2->concurrency( $concurrency ); |
144 |
print "Load testing patron search page"; |
171 |
print "Load testing patron search page"; |
145 |
for (my $i=1;$i<=$max_tries;$i++) { |
172 |
for (my $i=1;$i<=$max_tries;$i++) { |
Lines 154-160
$ro = $b2->execute;
Link Here
|
154 |
|
181 |
|
155 |
print ("\t".$b2->total_time."ms\t".(1000*$b2->total_requests/$b2->total_time)." borrowers/sec\n"); |
182 |
print ("\t".$b2->total_time."ms\t".(1000*$b2->total_requests/$b2->total_time)." borrowers/sec\n"); |
156 |
|
183 |
|
157 |
my $b2 = HTTPD::Bench::ApacheBench->new; |
184 |
$b2 = HTTPD::Bench::ApacheBench->new; |
158 |
$b2->concurrency( $concurrency ); |
185 |
$b2->concurrency( $concurrency ); |
159 |
|
186 |
|
160 |
print "Load testing patron search page"; |
187 |
print "Load testing patron search page"; |
161 |
- |
|
|