#!/usr/lib/perl
use strict;
use warnings;
use Carp;
use File::Find;
use XML::Parser;
use File::Spec::Functions qw( canonpath );
my $failureMessage = "";
my $failure = "";
my $error = "";
my $value = "";
my $element = "";
#chomp $element;
if ( @ARGV == 0 ) {
push @ARGV, "C:\\Users\\bijoymeethal\\Desktop\\xml test";
warn "Using default path $ARGV[0]\n Usage: $0 path ...\n";
}
open(HTML_FILE, ">BAT_Report.html") || die "Can't open file: $!\n";
# Print the initial HTML tags
print HTML_FILE "\n
\nBAT Report - JMeter Test
\n
TestPlan | Test Failed? | FailureMessage | Link to Source |
";
find(
sub {
return unless ( /[.]log\z/i and -f );
extract_information();
return;
},
@ARGV
);
sub extract_information {
my( $expat, $element, %attrs ) = @_;
#my $line = $expat->current_line;
if ($element eq "httpSample") {
if( %attrs ) {
while( my( $key, $value ) = each( %attrs )) {
if ($key eq "lb"){
print "\t$key => $value\n";
}
}
}
}elsif ($element eq "failure"){
$failure = $element;
}elsif ($element eq "error"){
$error = $element;
}elsif ($element eq "failureMessage"){
$failureMessage = $element;
}
print HTML_FILE <<"EOF";
$value | $failure | $failureMessage |
EOF
return;
}
print HTML_FILE "
";
close (HTML_FILE);