Using MultiLogResults for SAFS XML Logs

==============================================================================
Author: Carl Nagle
Since: FEB 18, 2013
Update: FEB 18, 2013

Copyright (2013) SAS Institute http://www.sas.com
General Public License (GPL):  http://www.opensource.org/licenses/gpl-license.php
==============================================================================
Refer to the associated SAFS MultiLogResults API Reference for additional detail.

MultiLogResults Process Graphic

Introduction

The purpose of this command-line capable Java API is to allow the post-processing of one or more SAFS XML logs into a single XML Summary.

The idea is that some complex integration and/or systems-level tests are sometimes split into multiple separate SAFS test runs--each producing a separate SAFS test log.

Yet, it is the summation of these separete test runs that makes up the whole of the complex test.

The MultiLogResults tool allows us to convert/transform all these separate logs into one summary log for simpler analysis and reporting.


How it Works

There are many entry points into the overall process, but the most basic usage is as follows:

  1. Create an XML List File of all XML Log Files in a target directory.
  2. Process each XML Log File in the XML List to cumulatively summarize the test logs.
  3. Create an XML Summary File containing the final cumulative summary of all test logs.

It should be noted that processing only attempts to summarize or count the last STATUS_REPORT in each SAFS log.  That is because each log may have many status reports, but the last one should contain the summary of all tests for that log.  If no status report exists in a particular log, then no status information for that log will be summarized nor added to the running total for all logs.


Install dependencies

This new command-line tool is available via the SAFS JAR files built on or after Feb 18, 2013.

There is a 3rd party dependency for a non-default Java JAXP XSLT Processor.  Any JAXP XSLT Processor conforming to XSLT 2.0 or higher should work.  Unfortunately, the default XALAN JAXP XSLT Processor shipped with some versions of Java only supports XSLT 1.0.

The tools has only been tested with the common SAXON 9.4 implementation using the following JAR files:

These required SAXON JAR files might already be available to you via the SAFS lib directory.
Otherwise, the user can download SaxonHE9-4...J.ZIP from the
SAXON download website to get these JARs.
(Note the "J" in the ZIP filename to signify the "Java JAR" version of SAXON assets.)

The relevant JAR files (SAFS + XSLT Processor) must be in the System CLASSPATH or otherwise be valid in the runtime CLASSPATH at the time of execution.

The default XSL file used for XSLT processing is XSLMultiLogsListSummary.xsl.  This file should be provided by SAFS and will normally exist in the /SAFS/samples/Log Transforms directory.  By default, this file is expected to be placed in the same directory where the SAFS XML Logs to be processed are located.  If you DO NOT place the XSL file in that Logs directory, then you must use the -xsl command-line option to point to the location of the XSL file.


Usage Notes

Assuming all setup is correct and no special or advanced usage is intended, the simplest example invocation would be something like:

Of course, you would point to your actual target Logs directory.   You can also prepare a Windows BAT file that already contains the desired Java invocation so that you only have to run the BAT file with no additional arguments.

Successful execution should result with the creation of 2 new files in the specified Logs directory:

For more advanced capabilities and processing options consult the MultiLogResults JavaDoc for the full list of available command-line options.


Copyright (2013) SAS Institute http://www.sas.com
General Public License (GPL):  http://www.opensource.org/licenses/gpl-license.php