Scenarios
- Defined using simple XML files
- Defined using simple XML files
- Allows hierarchical structure and schema validation
- Has reasonably balanced horizontal aestetics - compared to JSON
Definition files are located in /tools/test/scenarios
Scenario can import other scenarios
- import can be qualified with a namespace
Comprised of steps or groups with dependencies
- Dependencies can be inherent or injected later
- Defines process flow as an execution DAG
Steps and Groups
- Step is an individual node in the scenario process flow
- associated with some form of executable via exec attribute
- Group is a collection of other groups and steps
- used for grouping related sets of steps
- used for encapsulation and definition of shared dependencies
- Has a name unique within the scope of a scenario
- namespace can be used to preserve uniqueness for scenario import
- Specifies other steps or groups it inherently requires
- Can be marked as optional using if or unless attributes
Properties and Environment
- Most attributes support property expansion
- specified as ${property}
- evaluated using values of environment variables or Java properties
- Pass-through properties for downstream steps
- @key=value included in output one property per line
- only supported for exec attribute
- Steps and groups can specify env attribute
- value can be a path to a file to be sourced-in
- value can be “~“ to indicate command exit status should be ignored
- Steps and groups can specify cwd attribute
- value is directory to be set before execution of the step command
Parallel Chains