3 # $Id: stress-test,v 1.1 2007-01-02 13:30:52 sondberg Exp $
4 # -------------------------------------------------
5 # Simulate a search/retrieve session
11 my $url = 'http://test.indexdata.dk:8001/~sondberg/pazpar2/www/search.pz2';
12 my $parser = new XML::LibXML;
13 my $ua = new LWP::UserAgent;
14 my $session_id = get_session($ua);
16 my @terms = qw(water mineral computer java texas energy xml pirsig clinton
17 management environment dinosaur houston washington);
21 my $term = get_random_term(@terms);
23 print STDERR "Search for: '", $term, "'\n";
25 if (start_search($session_id, $ua, $term)) {
26 print STDERR "Success...\n";
31 if (fetch_records($session_id, $ua)) {
32 print STDERR "Fetched...\n";
42 return $terms[int rand($#terms)];
48 my ($status_node) = $root->getElementsByTagName('status');
49 my $status = $status_node->textContent;
51 return ($status eq 'OK');
57 my $uri = $url . '?session=' . $sid . '&command=show';
58 my $response = $ua->get($uri);
60 if ($response->is_success) {
61 my $root = get_dom($response);
63 if (check_status($root)) {
65 my (@hits) = $root->getElementsByTagName('hit');
67 foreach my $h (@hits) {
68 my ($title) = $h->getElementsByTagName('title');
69 print STDERR "Title: '", $title->textContent, "'\n";
75 die($0 . ': Unable to fetch records, wrong status');
78 die($0 . ': Unable to fetch records');
85 my ($sid, $ua, $term) = @_;
86 my $uri = $url . '?session=' . $sid . '&command=search&query=' . $term;
87 my $response = $ua->get($uri);
89 if ($response->is_success) {
90 my $root = get_dom($response);
92 if (check_status($root)) {
95 die($0 . ': Unable to search');
98 die($0 . ': Unable to perform search');
105 my $doc = $parser->parse_string($resp->content);
107 return $doc->documentElement();
113 my $response = $ua->get($url . '?command=init');
115 if ($response->is_success) {
116 my $root = get_dom($response);
118 if (check_status($root)) {
119 my ($ses_node) = $root->getElementsByTagName('session');
120 return $ses_node->textContent;
122 die($0 . ':Unable to get session, wrong status');
125 die($0 . ': Unable to get session id');