Testing data flow
During the deployment and/or testing procedure, multiple and independent components are used to execute each step. Usually they are confused, as they seem to be a single monolithic software. This document intend to make clear the difference between this components.
Keep in mind that the coupling between these components is quite low, and they all can be used separately. Specially, take this into account when reporting problems and bugs.
SAKET
SAKET stands for
Swiss Army Knife for ETICS Testing
, and it is a Python program that interacts directly
only with
ETICS and the user. It doesn't know, and doesn't need to know, how the build and deployment are going to be executed. It only cares about the output generated.
There are mainly two different parts in SAKET:
The agent
This part takes the specified configuration file and submit the corresponding tasks to
ETICS, waiting until they finish. Then it parses the output files and generates the summarized reports that are dumped to the web area and submitted by mail.
- Input: The configuration file
- Output: The summarized report
- Interacts with: ETICS, mainly trough properties.
For the build step, it expects a build-status.xml file in the
ETICS tar.gz output. For the test step, it expects a deployment and a test log, both in
XML
format. Both Yaimgen and the test wrapper generate this format, but it can be anything else as long as respect this constraint.
The web interface
Since version 1.3.0 the web interface is completely static, the index being regenerated each time a new execution is finished. Both the index and reports are generated in XML format, applying XSLT stylesheets to get the HTML output.
Yaimgen
Yaimgen
is a collection of bash scripts that installs and configures the specified components. If needed, will execute an
external script for the tests. It can be executed manually or by another script (or
ETICS client).
- Input: A list of arguments.
- Output: A deployment log - often XML - and optionally the test log coming from the test phase.
- Interacts with:
- Yaim (provided by the installed component)
- The test script
This component provides XSLT and CSS stylesheets to view the reports as HTML.
Configures the installed gLite components. See
YAIM.
Test wrapper
The test wrapper is a Python script that executes a
bunch of test using some metadata in the headers to prepare the environment. It also initializes the VOMS proxy if needed.
- Input: A list of arguments.
- Output: A XML report.
- Interacts with: The test set.
It is called by Yaimgen in the automated environment (nightlies), but it can be executed manually.
Test set
The characteristics of the tests sets are described in the
test writing guidelines page. As you can see there, they can be executed by the test wrapper, or by themselves, as long as the environment is properly set (see the configuration file).
Diagram
Simplified diagram. Left: build. Right: test.
You can see also a
more detailed diagram
.
--
AlejandroAlvarez - 06-Jan-2011