Skip to content

Testing Guide

lguohan edited this page Jul 28, 2017 · 50 revisions

Testlab/Testbed

  • Requirement to Setup SONiC Testbed and Run SONiC Test Suite

    • Hardware/Software You are going to need
      • Repo that has all SONiC tests

      • Run test in docker-sonic-mgmt docker container

      • At least one 'Fanout' layer-2 switch to connect all your SONiC Switch ports and Linux test server port, you may have more 'Fanout' Switches connects to multiple SONiC switches as DUTs. for more info, please read 'Testbed How To' section

      • One high performance Linux Server that acts as packet generating test server sending/receiving packets to/from your Sonic Switch, if you want to duplicate Sonic test, minimum memory requirement should be 92G for one testbed. We are using 192G. More Detailed information of testbed design and implementation is available in 'Testbed How To' section

  • Testbed How To

    Testbed Design, Deploy and Examples

  • Minigraph

    Minigraph is the only resource/starting point for configuring a SONiC device.

    Minigraph is a XML format file. Each SONiC device must have a matching Minigraph file for device configuration and test.

    SONiC devices Minigraph files could be saved locally or centralized saved in a remote location.

    All local Minigraph files are saved under ansible/minigraph folder. The file name must match your SONiC device name specified in 'lab' inventory file under ansible/ folder

    Configuration and Minigraph

    Generate Minigraph File Based On Testbed Type

Run Tests

How to Run Test

  • Run all tests from docker container 'docker-sonic-mtmt'
  • Have a Linux(We are using Ubuntu) machine with docker installed and is reachable to your test bed. If you are not familiar with Docker, please download and install Docker and follow Docker Doc for detailed instruction and tutorial to help you start
  • Download docker-sonic-mgmt from here
    • Load sonic-mgmt-docker

      docker load -i docker-sonic-mgmt.gz

    • Then start and login to newly started docker

      docker run -it your-newly-built-image bash

    • At build time, docker-sonic-mgmt will automatically clone the newest Sonic Management Repo into docker '/var/your-login-username/sonic-mgmt' at build time for you to run test's Ansible playbook.

    • After start docker, you would need to patch your own lab information into to /var/your-login-username/sonic-mgmt folder and start to run your test.

Tests that you may run to validate SONiC switch features of your platform

  • Test List

  • Command to run tests:

    ansible-playbook -i lab --limit your-dut-name test_sonic.yml --tags your-test-tag1,test-tag-2

  • Example: run fib test

    ansible-playbook -i lab --limit your-dut-name test_sonic.yml --tags fib -e "ptf_host=10.64.246.19 testbed_type=t1"

Here are some test design docs

Clone this wiki locally