rdkcentral / python_raft

RAFT is a Python based testing framework for writing engineering tests. It provides a modular, config driven, low level testing framework
Apache License 2.0
2 stars 0 forks source link

Rapid Application Framework for Test (RAFT)

The RAFT framework provides a flexible environment for engineering-level device testing, empowering developers to thoroughly validate code changes before commits, promoting code quality and enabling the testing of multiple commits simultaneously.

Contents * [Features](#features) * [Why Use This System](#why-use-this-system) * [Installation](#installation) * [Requirements](#requirements) * [User Installation](#user-installation) * [Getting Started](#getting-started) * [Running Your First Test](#running-your-first-test) * [How it works?](#how-it-works) * [The Logs](#the-logs) * [Documentation](#documentation) * [Contributing](#contributing) * [License](#license)

Features:

Configuration Management

The system includes a flexible parsing mechanism for configuration. This allows simple environment configuration for describing racks, the devices within them, network settings and other essential test parameters. Providing ultimate flexibility in testing setup, without needing to modify the test.

Command-Line Customisation

Test runs can be customised by providing dynamic command-line arguments. These arguments might specify which rack to use, device slots to target, debug mode, and other runtime settings. The system intelligently combines these arguments with your pre-defined configurations.

Device Control and Management

Centralized Device Management: The core of the system is a device manager that provides a centralized way to organize and control multiple devices in the testing setup.

It understands how to:

Why Use This System

Installation

Requirements

User Installation

Clone the repository and ensure that all requirements are met.

Getting Started

Running Your First Test

For our first test script we will be using the example_test.py. There are extensive comments in the test files to explain what it does.

This test script can be run with the below command: ./example_test.py --config ../configs/getting_started_rack_config.yml

How it works?

Two config files are used for running this test. They are:

The Logs

After running your test you should find a new folder has been created called logs. This should contain test logs in both text and .csv format.

The summary files in this directory show the results of all tests that ran.

If multiple instances of our test class had been created they would each get a test-<index>.log and corresponding .csv, with all their results being collated into the summary files.

Documentation

Contributing

See contributing file: CONTRIBUTING.md

License

See license file: LICENSE