ASNMTAP
view release on metacpan or search on metacpan
plugins/jUnit/check_jUnit.pl view on Meta::CPAN
my $jUnitUsername = 'junitmanager';
my $jUnitPassword = 'tdvmim';
my $jUnitRequest = 'junitserver signal SENT_OK';
my $jUnitUkey = $uniqueKey;
my $jUnitType = ($onDemand) ? '0' : '1';
my $jUnitSvparam = (defined $svParam) ? $svParam : '';
my $jUnitMaxtime = (defined $maxtime) ? $maxtime : 30;
my ($testcaseTimewait, $testcaseServer, $testcaseWlsusername, $testcaseWlspassword, $testcaseAppname, $testcaseEejbname, $testcaseVersion, $testcaseParameters, $testcaseTestclass);
my $resultOutOfDate = $interval;
my $xmlCleanUpSpaces = 1;
my $xmlCleanUpLineFeeds = 1;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# $testcaseServer : <protocol>://<servername>:<port number>
# $testcaseServer : - missing protocol => <error message="javax.naming.ConfigurationException [Root exception is java.net.MalformedURLException: no protocol
# $testcaseServer : - wrong protocol => <error message="javax.naming.CommunicationException [Root exception is java.net.UnknownHostException: Unknown protocol: '<protocol>']
# $testcaseServer : - wrong servername => <error message="javax.naming.CommunicationException [Root exception is java.net.ConnectException: <protocol>://<servername>:<port number>: Destination unreachable; nested exception is:
# $testcaseServer : - wrong port number => <error message="javax.naming.CommunicationException [Root exception is java.net.ConnectException: <protocol>://<servername>:<port number>: Destination unreachable; nested exception is:
# $testcaseWlsusername: - wrong username => <error message="javax.naming.AuthenticationException [Root exception is java.lang.SecurityException: User: username00, failed to be authenticated.]" type="java.util.MissingResourceException">
# $testcaseWlspassword: - wrong password => <error message="javax.naming.AuthenticationException [Root exception is java.lang.SecurityException: User: username00, failed to be authenticated.]" type="java.util.MissingResourceException">
# $testcaseAppname : - don't exist => be.citap.common.systemservices.junitserver.core.exception.TestCaseFinderException: no file found in application directory
# $testcaseAppname : - wrong name => be.citap.common.systemservices.junitserver.core.exception.TestCaseFinderException: no file found in application directory
# $testcaseEejbname : - don't exist => <error message="javax.naming.CommunicationException [Root exception is java.net.ConnectException: <protocol>://<servername>:<port number>: Destination unreachable; nested exception is:
# $testcaseEejbname : - wrong name => <error message="javax.naming.CommunicationException [Root exception is java.net.ConnectException: <protocol>://<servername>:<port number>: Destination unreachable; nested exception is:
# $testcaseVersion : = '';
# $testcaseParameters : - 'null' => <error message="javax.naming.CommunicationException [Root exception is java.net.ConnectException: <protocol>://<servername>:<port number>: Destination unreachable; nested exception is:
# $testcaseParameters : - don(t exist => <error message="javax.naming.CommunicationException [Root exception is java.net.ConnectException: <protocol>://<servername>:<port number>: Destination unreachable; nested exception is:
# $testcaseParameters : - wrong parameter => <error message="javax.naming.CommunicationException [Root exception is java.net.ConnectException: <protocol>://<servername>:<port number>: Destination unreachable; nested exception is:
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
my ($rv, $dbh, $sth, $sql, $xml, $stateXML, $numberRecordsSameUkey, $returnCode);
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Evaluate previous test
$rv = 1;
$dbh = DBI->connect("DBI:mysql:$jUnitServerDbC:$jUnitServerName:$jUnitServerPort", "$jUnitServerUser", "$jUnitServerPass") or $rv = errorTrapDBI (\$objectPlugins, "Sorry, cannot connect to the database: $jUnitServerDbC:$jUnitServerName:$jUnitServerPo...
if ($dbh and $rv) {
$sql = "select count(UKEY) from $jUnitServerTablBS, $jUnitServerTablS where UKEY = '$jUnitUkey' and $jUnitServerTablBS.SERV_ID = $jUnitServerTablS.SERV_ID and ACTIVATED = '1' and STATUS = 'ASNMTAP'";
$sth = $dbh->prepare($sql) or $rv = errorTrapDBI (\$objectPlugins, "dbh->prepare: $sql");
$rv = $sth->execute() or $rv = errorTrapDBI (\$objectPlugins, "sth->execute: $sql") if $rv;
$numberRecordsSameUkey = ($rv) ? $sth->fetchrow_array() : 0;
$sth->finish() or $rv = errorTrapDBI (\$objectPlugins, "sth->finish");
print "$sql < $numberRecordsSameUkey >\n" if ( $debug );
$dbh->disconnect() or $rv = errorTrapDBI (\$objectPlugins, "Sorry, $jUnitServerDbC:$jUnitServerName:$jUnitServerPort was unable to disconnect.");
}
$dbh = DBI->connect("DBI:mysql:$jUnitServerDbDR:$jUnitServerName:$jUnitServerPort", "$jUnitServerUser", "$jUnitServerPass") or $rv = errorTrapDBI (\$objectPlugins, "Sorry, cannot connect to the database: $jUnitServerDbDR:$jUnitServerName:$jUnitServer...
if ($dbh and $rv) {
my $jUnitSvparamSql = ($jUnitSvparam eq '') ? '' : " and SVPARAM = '$jUnitSvparam'";
$sql = "select RESULT_ID, SERV_ID, UKEY, TESTTYPE, SVPARAM, STATUS, ERROR_CODE, EXCEPTION, INPUT_XML, OUTPUT_XML, STARTED_DT, ENDED_DT, REQUESTED_DT, FINISHED_DT, TIMESLOT from $jUnitServerTablDR where UKEY = '$jUnitUkey'". $jUnitSvparamSql ." orde...
print "$sql\n" if ( $debug );
$sth = $dbh->prepare($sql) or $rv = errorTrapDBI (\$objectPlugins, "dbh->prepare: $sql");
$rv = $sth->execute() or $rv = errorTrapDBI (\$objectPlugins, "sth->execute: $sql") if $rv;
if ( $rv ) {
my $currentTimeslot = timelocal (0, (localtime)[1,2,3,4,5]);
my $httpdumpMessage;
my ($RESULT_ID, $SERV_ID, $UKEY, $TESTTYPE, $SVPARAM, $STATUS, $ERROR_CODE, $EXCEPTION, $INPUT_XML, $OUTPUT_XML, $STARTED_DT, $ENDED_DT, $REQUESTED_DT, $FINISHED_DT, $TIMESLOT);
my ($recordCount, $performanceDataTests, $performanceDataFailures, $performanceDataErrors, $performanceDataTime);
$recordCount = $performanceDataTests = $performanceDataFailures = $performanceDataErrors = $performanceDataTime = 0;
my $alertError = '+';
while ( my $ref = $sth->fetchrow_hashref() ) {
$recordCount++;
$RESULT_ID = (defined $ref->{RESULT_ID}) ? $ref->{RESULT_ID} : '';
$SERV_ID = (defined $ref->{SERV_ID}) ? $ref->{SERV_ID} : '';
$UKEY = (defined $ref->{UKEY}) ? $ref->{UKEY} : '';
$TESTTYPE = (defined $ref->{TESTTYPE}) ? $ref->{TESTTYPE} : '';
$SVPARAM = (defined $ref->{SVPARAM}) ? $ref->{SVPARAM} : '';
$STATUS = (defined $ref->{STATUS}) ? $ref->{STATUS} : '';
$ERROR_CODE = (defined $ref->{ERROR_CODE}) ? $ref->{ERROR_CODE} : '';
$EXCEPTION = (defined $ref->{EXCEPTION}) ? $ref->{EXCEPTION} : '';
$INPUT_XML = (defined $ref->{INPUT_XML}) ? $ref->{INPUT_XML} : '';
$OUTPUT_XML = (defined $ref->{OUTPUT_XML}) ? $ref->{OUTPUT_XML} : '';
$STARTED_DT = (defined $ref->{STARTED_DT}) ? $ref->{STARTED_DT} : '';
$ENDED_DT = (defined $ref->{ENDED_DT}) ? $ref->{ENDED_DT} : '';
$REQUESTED_DT = (defined $ref->{REQUESTED_DT}) ? $ref->{REQUESTED_DT} : '';
$FINISHED_DT = (defined $ref->{FINISHED_DT}) ? $ref->{FINISHED_DT} : '';
$TIMESLOT = (defined $ref->{TIMESLOT}) ? $ref->{TIMESLOT} : '';
print "$RESULT_ID\n$SERV_ID\n$UKEY\n$TESTTYPE\n$SVPARAM\n$STATUS\n$ERROR_CODE\n$EXCEPTION\n$INPUT_XML\n$OUTPUT_XML\n$STARTED_DT\n$ENDED_DT\n$REQUESTED_DT\n$FINISHED_DT\n$TIMESLOT\n" if ( $debug );
print "$STATUS\n$ERROR_CODE\n" if ($debug == 2);
if ( $currentTimeslot - $TIMESLOT > $resultOutOfDate ) {
my $alert = "Result into database is out of date";
$alert = "Run ondemand test again PLEASE, $alert" if ( $SVPARAM =~ /ONDEMAND/ );
$objectPlugins->pluginValues ( { stateValue => $ERRORS{WARNING}, alert => $alert }, $TYPE{APPEND} );
} elsif ($STATUS eq 'OK') {
($returnCode, $xml) = extract_XML ( asnmtapInherited => \$objectPlugins, resultXML => $OUTPUT_XML, headerXML => HEADER, footerXML => FOOTER, validateDTD => 0 );
unless ($returnCode) {
my (undef, $testresultSuffix) = split ( /\@/, $xml->{name} );
my $testresultName = (defined $testresultSuffix) ? '_' .$testresultSuffix : '';
if ( $debug ) {
print "xml->{version}<->\n", $xml->{version}, "\n";
print "xml->{name}<->\n", $xml->{name}, "\n";
print "xml->{server}<->\n", $xml->{server}, "\n";
print "xml->{Test_success}<->\n", $xml->{Test_success}, "\n";
if ( defined $xml->{testClass}->{name} ) {
print "xml->{testClass}->{name}<->\n", $xml->{testClass}->{name}, "\n";
print "xml->{testClass}->{package}<->\n", $xml->{testClass}->{package}, "\n";
print "xml->{testClass}->{tests}<->\n", $xml->{testClass}->{tests}, "\n";
print "xml->{testClass}->{failures}<->\n", $xml->{testClass}->{failures}, "\n";
print "xml->{testClass}->{errors}<->\n", $xml->{testClass}->{errors}, "\n";
print "xml->{testClass}->{time}<->\n", $xml->{testClass}->{time}, "\n";
if (defined $xml->{testClass}->{testcase}->{name}) {
print "xml->{testClass}->{testcase}->{name}<->\n", $xml->{testClass}->{testcase}->{name}, "\n";
print "xml->{testClass}->{testcase}->{time}<->\n", $xml->{testClass}->{testcase}->{time}, "\n";
} else {
foreach my $testcase_name (keys %{$xml->{testClass}->{testcase}}) {
print "xml->{testClass}->{testcase}->{$testcase_name}->{time}<->\n", $xml->{testClass}->{testcase}->{$testcase_name}->{time}, "\n";
}
}
}
}
if ( defined $xml->{Test_success} and $xml->{Test_success} =~ /^True$/i ) {
if ( defined $xml->{testClass}->{name} ) {
$performanceDataTests += $xml->{testClass}->{tests};
$performanceDataFailures += $xml->{testClass}->{failures};
$performanceDataErrors += $xml->{testClass}->{errors};
$performanceDataTime += $xml->{testClass}->{time};
if (defined $xml->{testClass}->{testcase}->{name}) {
$objectPlugins->appendPerformanceData ( "'" .$xml->{testClass}->{testcase}->{name}.$testresultName. "'=". $xml->{testClass}->{testcase}->{time} .'s;;;;' );
} else {
foreach my $testcase_name (keys %{$xml->{testClass}->{testcase}}) {
print "xml->{testClass}->{testcase}->{$testcase_name}->{time}<->\n", $xml->{testClass}->{testcase}->{$testcase_name}->{time}, "\n" if ($debug == 2);
$objectPlugins->appendPerformanceData ( "'".$testcase_name.$testresultName."'=". $xml->{testClass}->{testcase}->{$testcase_name}->{time} .'s;;;;' );
}
}
}
} else {
$objectPlugins->pluginValue ( stateValue => $ERRORS{UNKNOWN} );
}
}
} elsif ($STATUS =~ /(NOTOK|TIMEOUT)/) {
if ($EXCEPTION eq '') {
print "EXCEPTION ...\n" if ( $debug );
} elsif ( $EXCEPTION =~ m/^$XMLHEADER/i ) {
($returnCode, $xml) = extract_XML ( asnmtapInherited => \$objectPlugins, resultXML => $EXCEPTION, headerXML => HEADER, footerXML => FOOTER, validateDTD => 0 );
unless ($returnCode) {
my (undef, $testresultSuffix) = split ( /\@/, $xml->{name} );
my $testresultName = (defined $testresultSuffix) ? '_' .$testresultSuffix : '';
plugins/jUnit/check_jUnit.pl view on Meta::CPAN
if (defined $xml->{testClass}->{testcase}->{name}) {
my ($status, $type, $message, $content);
if (defined $xml->{testClass}->{testcase}->{error}) {
$status = 'ERROR';
$type = $xml->{testClass}->{testcase}->{error}->{type};
$message = $xml->{testClass}->{testcase}->{error}->{message};
$content = $xml->{testClass}->{testcase}->{error}->{content};
} elsif (defined $xml->{testClass}->{testcase}->{failure}) {
$status = 'FAILURE';
$type = $xml->{testClass}->{testcase}->{failure}->{type};
$message = $xml->{testClass}->{testcase}->{failure}->{message};
} else {
$status = 'OK';
$type = $message = '';
}
$httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:red;\"><TD>$xml->{testClass}->{testcase}->{name}</TD><TD>$status</TD><TD>$type</TD><TD>$xml->{testClass}->{testcase}->{time}</TD...
if ($status ne 'OK') {
$httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:red;\"><TD></TD><TD colspan=\"3\"><PRE>$message</PRE></TD></TR>\n";
$httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:red;\"><TD></TD><TD colspan=\"3\"><PRE>$content</PRE></TD></TR>\n" if (defined $content);
}
} else {
foreach my $testcase_name (keys %{$xml->{testClass}->{testcase}}) {
my ($status, $type, $message, $content);
if (defined $xml->{testClass}->{testcase}->{$testcase_name}->{error}) {
$status = 'ERROR';
$type = $xml->{testClass}->{testcase}->{$testcase_name}->{error}->{type};
$message = $xml->{testClass}->{testcase}->{$testcase_name}->{error}->{message};
$content = $xml->{testClass}->{testcase}->{$testcase_name}->{error}->{content};
} elsif (defined $xml->{testClass}->{testcase}->{$testcase_name}->{failure}) {
$status = 'FAILURE';
$type = $xml->{testClass}->{testcase}->{$testcase_name}->{failure}->{type};
$message = $xml->{testClass}->{testcase}->{$testcase_name}->{failure}->{message};
} else {
$status = 'OK';
$type = $message = '';
}
$httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:red;\"><TD>$testcase_name</TD><TD>$status</TD><TD>$type</TD><TD>$xml->{testClass}->{testcase}->{$testcase_name}->{time}</TD></...
if ($status ne 'OK') {
$httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:red;\"><TD></TD><TD colspan=\"3\"><PRE>$message</PRE></TD></TR>\n";
$httpdumpMessage .= "<TR style=\"background:#eeeee0; font: normal 68% bold verdana,arial,helvetica; color:red;\"><TD></TD><TD colspan=\"3\"><PRE>$content</PRE></TD></TR>\n" if (defined $content);
}
}
}
$httpdumpMessage .= "</TABLE>\n";
}
$alertError .= (defined $testresultSuffix) ? $testresultSuffix : $xml->{name};
$alertError .= '+';
}
} else {
print "$EXCEPTION\n" if ($debug == 2);
}
print "$INPUT_XML\n" if ($debug == 2);
} elsif ($STATUS eq 'LAUNCH_FAILED') {
$objectPlugins->pluginValues ( { stateValue => $ERRORS{CRITICAL}, alert => $EXCEPTION }, $TYPE{APPEND} );
} elsif ($STATUS eq 'XML_WRONG_FORMAT') {
$objectPlugins->pluginValues ( { stateValue => $ERRORS{CRITICAL}, alert => 'Under construction: '. $STATUS }, $TYPE{APPEND} );
} else {
$objectPlugins->pluginValues ( { stateValue => $ERRORS{CRITICAL}, alert => "Undefined error: '$STATUS'" }, $TYPE{APPEND} );
}
my $sqlMOVE = 'REPLACE INTO `' .$jUnitServerTablDRA. '` SELECT * FROM `' .$jUnitServerTablDR. '` WHERE RESULT_ID = "' .$RESULT_ID. '"';
$dbh->do( $sqlMOVE ) or $rv = errorTrapDBI (\$objectPlugins, "Cannot dbh->do: $sqlMOVE");
if ( $rv ) {
$sqlMOVE = 'DELETE FROM `' .$jUnitServerTablDR. '` WHERE RESULT_ID = "' .$RESULT_ID. '"';
$dbh->do( $sqlMOVE ) or $rv = errorTrapDBI (\$objectPlugins, "Cannot dbh->do: $sqlMOVE");
}
}
$httpdumpMessage .= "</BODY>\n</HTML>" if (defined $httpdumpMessage);
$objectPlugins->appendPerformanceData ( 'tests='. $performanceDataTests .';;;;' );
$objectPlugins->appendPerformanceData ( 'failures='. $performanceDataFailures .';1;;0;'. $performanceDataTests );
$objectPlugins->appendPerformanceData ( 'errors='. $performanceDataErrors .';;1;0;'. $performanceDataTests );
$objectPlugins->appendPerformanceData ( 'time='. $performanceDataTime .'s;;;;' );
if ( $recordCount ) {
if ( $numberRecordsSameUkey != $recordCount ) {
$objectPlugins->pluginValues ( { stateValue => $ERRORS{CRITICAL}, alert => "Only $recordCount from the wanted $numberRecordsSameUkey results into the table $jUnitServerTablDR from database $jUnitServerDbDR" }, $TYPE{APPEND} );
}
if ($alertError eq '+') {
$objectPlugins->pluginValues ( { alert => 'All test succeed' }, $TYPE{APPEND} );
} else {
$objectPlugins->pluginValues ( { alert => $alertError }, $TYPE{APPEND} );
}
if (defined $httpdumpMessage) {
print "$httpdumpMessage\n" if ($debug == 4);
$objectPlugins->write_debugfile ( \$httpdumpMessage, 0 );
}
} else {
$objectPlugins->pluginValues ( { stateValue => $ERRORS{UNKNOWN}, alert => "No results into the table $jUnitServerTablDR from database $jUnitServerDbDR" }, $TYPE{APPEND} );
}
$sth->finish() or $rv = errorTrapDBI (\$objectPlugins, "sth->finish: $sql");
}
$dbh->disconnect() or $rv = errorTrapDBI (\$objectPlugins, "Sorry, $jUnitServerDbDR:$jUnitServerName:$jUnitServerPort was unable to disconnect.");
}
# Launch new test - - - - - - - - - - - - - - - - - - - - - - - - - - - -
my ($_ACTIVATED, $_STATUS);
$rv = 1;
$dbh = DBI->connect("DBI:mysql:$jUnitServerDbC:$jUnitServerName:$jUnitServerPort", "$jUnitServerUser", "$jUnitServerPass") or $rv = errorTrapDBI (\$objectPlugins, "Sorry, cannot connect to the database: $jUnitServerDbC:$jUnitServerName:$jUnitServerPo...
if ($dbh and $rv) {
$sql = "select ACTIVATED, STATUS, NAME, WLSUSERNAME, WLSPASSWORD, APPNAME, EJBNAME, VERSION, PARAMETERS, TESTCLASS, TIMEWAIT, MAXTIME from $jUnitServerTablBS, $jUnitServerTablS where UKEY = '$jUnitUkey' and $jUnitServerTablBS.SERV_ID = $jUnitServer...
print "$sql\n" if ( $debug );
$sth = $dbh->prepare($sql) or $rv = errorTrapDBI (\$objectPlugins, "dbh->prepare: $sql");
( run in 1.097 second using v1.01-cache-2.11-cpan-39bf76dae61 )