CORD Tester
The CORD Automated Tester Suite is an extensible end-to-end system test suite targeting CORD PODs. Prerequisites include:
- Python 2.7 or later
- Docker
- vagrant(Optional)
How to Install cord-tester
To install cord-tester
, execute the following:
$ git clone https://github.com/opencord/cord-tester.git
$ cd cord-tester
$ vagrant up
$ vagrant ssh cordtest
$ cd /cord-tester/src/test/setup/
$ Run prerequisites.sh(It gets you needed dependencies and tools to start)
* Build all required test container images
$ sudo ./cord-test.py build all
$ sudo ./cord-test.py -h
usage: cord-test.py [-h] {run,setup,xos,list,build,metrics,start,cleanup} ...
Cord Tester
positional arguments:
{run,setup,xos,list,build,metrics,start,cleanup}
run Run cord tester
setup Setup cord tester environment
xos Building xos into cord tester environment
list List test cases
build Build cord test container images
metrics Info of container
start Start cord tester containers
cleanup Cleanup test containers
optional arguments:
-h, --help show this help message and exit
$ sudo ./cord-test.py run -h
usage: cord-test.py run [-h] [-t TEST_TYPE] [-o ONOS] [-q] [-a APP] [-l]
[-e TEST_CONTROLLER] [-r SERVER] [-k] [-s]
[-u {test,quagga,radius,all}] [-n NUM_CONTAINERS]
[-c CONTAINER] [-m MANIFEST] [-p PREFIX] [-d]
[-i IDENTITY_FILE]
optional arguments:
-h, --help show this help message and exit
-t TEST_TYPE, --test-type TEST_TYPE
Specify test type or test case to run
-o ONOS, --onos ONOS ONOS container image
-q, --quagga Provision quagga container for vrouter
-a APP, --app APP Cord ONOS app filename
-l, --olt Use OLT config
-e TEST_CONTROLLER, --test-controller TEST_CONTROLLER
External test controller ip for Onos and/or radius
server. Eg: 10.0.0.2/10.0.0.3 to specify ONOS and
Radius ip to connect
-r SERVER, --server SERVER
ip:port address to connect for cord test server for
container requests
-k, --keep Keep test container after tests
-s, --start-switch Start OVS when running under OLT config
-u {test,quagga,radius,all}, --update {test,quagga,radius,all}
Update cord tester container images. Eg:
--update=quagga to rebuild quagga image.
--update=radius to rebuild radius server image.
--update=test to rebuild cord test image.(Default)
--update=all to rebuild all cord tester images.
-n NUM_CONTAINERS, --num-containers NUM_CONTAINERS
Specify number of test containers to spawn for tests
-c CONTAINER, --container CONTAINER
Test container name for running tests
-m MANIFEST, --manifest MANIFEST
Provide test configuration manifest
-p PREFIX, --prefix PREFIX
Provide container image prefix
-d, --no-switch Dont start test switch.
-i IDENTITY_FILE, --identity-file IDENTITY_FILE
ssh identity file to access compute nodes from test
container
$ sudo ./cord-test.py build -h
usage: cord-test.py build [-h] [-p PREFIX] {quagga,radius,test,all}
positional arguments:
{quagga,radius,test,all}
optional arguments:
-h, --help show this help message and exit
-p PREFIX, --prefix PREFIX
Provide container image prefix
$sudo ./cord-test.py list -h
usage: cord-test.py list [-h] [-t TEST]
optional arguments:
-h, --help show this help message and exit
-t TEST, --test TEST Specify test type to list test cases. Eg: -t tls to
list tls test cases. -t tls-dhcp-vrouter to list
tls,dhcp and vrouter test cases. -t all to list all
test cases.
If you want to run cord-tester
without Vagrant and already have an
ubuntu 14.04 server installed, do the following:
$ git clone https://github.com/opencord/cord-tester.git
$ cd cord-tester/src/test/setup/
$ sudo ./prerequisites.sh
Then follow the same instructions as described above.
How to Use cord-tester
eval.sh
runs all the test cases for you.
$ sudo ./eval.sh
To run all test cases in a module (e.g., for DHCP):
$ sudo ./cord-test.py run -t dhcp
To run a single test case in a module:
$ sudo ./cord-test.py run -t dhcp:dhcp_exchange.test_dhcp_1request
To run all test cases:
$ sudo ./cord-test.py run -t all
To check the list of test cases:
$ sudo ./cord-test.py list -t all/<Module name>
To check the list of a specific module:
$ sudo ./cord-test.py list -t dhcp
To cleanup all test containers:
$ sudo ./cord-test.py cleanup
For other options, run with -h option.
CORD API Tests
This module contains tests using XOS APIs. Test cases are written in RobotFramework utilizing some automated python library framework.
Install Robot Framework
To install robotframework
do the following:
$ sudo pip install robotframework
$ sudo pip install pygments
$ sudo apt-get install python-wxgtk2.8
$ sudo pip install robotframework-ride
To bring up IDE for the robot framework, do the following:
$ ride.py
Execute testcases
Testcases can be run using the ride.py
IDE, or from the command
line:
$ cd cord-tester/src/test/cord-api/Tests
$ pybot <testcase.txt>
Input Files for testcases
Input files for the testcases are present in the tests/data
directory.