Welcome to TestON !

TestON is a solution that aims to interact with OpenFlow/SDN components and automate the functionality of the components.

TestON is an end to end automation solution for testing the Openflow/SDN components run across various components in an OpenFlow topology. This solution aims to provide an automation framework that is not just exhaustive in coverage, but also makes it easy to debug and author scripts.

Test Launch

In order to run TestON, you must have:

  • A Linux 2.6.26 or greater kernel compiled with network namespace support enabled (see INSTALL for additional information.)

  • Python 2.6 or higher versions.

  • Install python package configObj. It can be installed as :

    $ sudo pip install configObj
    

How to launch a test:

  • Navigate to the bin/ directory which resides in the TestON/ directory:

    $ ./cli.py
    teston> run SAMPstartTemplate_1node
    

    or

    $ ./cli.py run SAMPstartTemplate_1node
    

Examples

For more examples, refer to the TestON/tests/SAMP/ directory. Check out the ONOS Wiki for guides in creating a test.

Documents

  • Documentation can be auto generated by running the generate-docs.sh script in the TestON directory.
  • Auto generated Documentation can be found in the Documentation folder.
  • index.html is the home page.

Note

Corresponding logs for the executed test or example will be available in ~/logs/

TestON Docker container

This container image is based on Ubuntu 18.04 and contains the following tools/packages:

  • OpenSSH server and client
  • Kubectl (v1.22.1)
  • Python2 and pip
  • Curl
  • Supervisor (To start sshd)

By default, an user jenkins will be creted with password jenkins.

To build the container image:

./docker/build.sh [--wk] [--di] [--jenkins jenkins-url jenkins-node]

To include user's SSH keys, use --wk option. To include DeepInsight API utility, add --di option.

For some tests, you need to include config files such as Kubernetes POD config. You can copy them to the docker/fs/ directory before building it.

To add Jenkins support, use --jenkins option with the Jenkins URL and node name, for example:

./build.sh --jenkins jenkins.myproject.org compute-node-1

You also need to place secret.txt with Jenkins secret under docker/fs/home/jenkins/ directory.

A new container image called teston:latest will be created after build.

Use the following command to start the container:

docker compose up -d

To attach to the test on shell:

docker compose exec -it teston-node bash

To stop the container:

docker compose down