Test Configuration
Test configurations consist of multiple assets, some of which are also called Templates. Some workflows do not require users to deal with any of these assets, while others may require the creation, fine-tuning or modification of some.
Test Assets Overview
The table below summarizes the assets involved in a test configuration.
Asset Type | Description |
---|---|
Message Templates | Message Templates, also referred to as Messages, are used to model structured data. As of this, Messages can represent a wide variety of things, from network protocol packets to media files. Based on the Message Templates the Engine configures a complex network of algorithms to produce specially crafted payloads for each test case generated during the test run. |
Test Flow Templates | A Test Flow Template, also known as a Test Flow, is a list of Actions to be performed by each test case produced by GUARDARA. These actions can be, for example, connecting to a target (Connect action), sending test cases based on Message templates (Send action), receiving and processing data (Receive action), and disconnecting from the target (Disconnect action). |
Callbacks | Callbacks allow users to execute arbitrary Python code during test runtime to perform operations unavailable via the user interface. Callbacks can be assigned to Callback actions within Test Flow Templates. |
Variable Collections | A Variable Collection is a list of pre-defined Session Variables that can be attached primarily to Message and Flow templates. The Session Variables allow implementing stateful protocols and test flows. In addition, it allows the creation of customisable test configurations on a per-target basis. |
Condition Group Collection | The Condition Group Collection allows the implementation of one or more rule sets (Condition Groups). These Condition Groups can be attached to Group Fields within Message Templates or Actions within Flow Templates. Only when all rules of a Condition Group evaluate to be True does the Group or Action the Condition Group assigned get processed. |
Groups | A Group allows to logically organize test assets. It can have one or more assets as children, including other Groups. |
Projects | A Project defines the target(s) to be tested, what transport mechanism to use to deliver the test cases, and may specify the use of one or more Monitors. Additionally, the Project allows configuring specific run-time options to fine-tune test execution. A Project also acts as a Group allowing all project-related assets to be stored under the Project. |
The high-level diagram below illustrates the relationship of the different assets.
As can be seen, only one Variable Collection can be used within a Project. The Variable Collection can be attached to the Message Template(s), the Flow Template or both. The Project automatically inherits the Variable Collection from the Flow Template.
Similarly, only one Condition Group Collection can be used within Project.
Multiple Message Templates can be included in the Test Flow by assigning them to Send Actions. At least one Send Action must be present in the Test Flow with a Message Template assigned to be able to execute the test.
A Test Flow may include multiple Callbacks.
A Project can use only one Test Flow Template.
Test Configuration Details
The information under the Test Assets Overview section is enough for users to start building or customizing test configurations. However, more advanced users will likely find a complete, detailed diagram showing the relationship of all the test assets, including their components, useful. Everything shown in the diagram below is discussed in the following sections of the User's Guide.