From e6896a606189e45ae03541335418c71f4d747094 Mon Sep 17 00:00:00 2001 From: lanqinglong Date: Wed, 21 Oct 2015 11:58:24 +0800 Subject: Create a new framework of running onos test JIRA:ONOSFW-138 Onosfw need some test, so it need a new framework Change-Id: Iaccdc1184767bdb1b794d36d92e09bf03a38d82f Signed-off-by: lanqinglong --- framework/scripts/README | 12 ++++ framework/scripts/function_test/Teston/Readme.txt | 5 ++ framework/scripts/function_test/Teston/__init__.py | 0 .../function_test/Teston/adapters/__init__.py | 0 .../function_test/Teston/adapters/foundation.py | 64 ++++++++++++++++++++++ framework/scripts/function_test/Teston/config.yaml | 16 ++++++ .../scripts/function_test/Teston/dependencies/onos | 23 ++++++++ .../scripts/function_test/Teston/log/temp.log | 0 .../scripts/function_test/Teston/onosfunctest.py | 21 +++++++ 9 files changed, 141 insertions(+) create mode 100644 framework/scripts/function_test/Teston/Readme.txt create mode 100644 framework/scripts/function_test/Teston/__init__.py create mode 100644 framework/scripts/function_test/Teston/adapters/__init__.py create mode 100644 framework/scripts/function_test/Teston/adapters/foundation.py create mode 100644 framework/scripts/function_test/Teston/config.yaml create mode 100644 framework/scripts/function_test/Teston/dependencies/onos create mode 100644 framework/scripts/function_test/Teston/log/temp.log create mode 100644 framework/scripts/function_test/Teston/onosfunctest.py diff --git a/framework/scripts/README b/framework/scripts/README index e69de29b..df76de78 100644 --- a/framework/scripts/README +++ b/framework/scripts/README @@ -0,0 +1,12 @@ +1.Functon_test is a framework of running onosfw function testcases; +2.Folder tree: + ©¤function_test + ©¸©¤Teston + ©À©¤adapters + ©À©¤dependencies + ©¸©¤log +(1)adapters include some drivers of running onosfw test. +(2)dependencies include some dependency files. +(3)log inlude the running log. +3.How to run the test? +Easy to run, run "sudo python onosfunctest.py" in path "onosfw/framework/scripts/function_test/Teston" \ No newline at end of file diff --git a/framework/scripts/function_test/Teston/Readme.txt b/framework/scripts/function_test/Teston/Readme.txt new file mode 100644 index 00000000..7393f59a --- /dev/null +++ b/framework/scripts/function_test/Teston/Readme.txt @@ -0,0 +1,5 @@ +1.This is a basic test run about onos,we will make them better and better +2.This test include two suites: +(1)Test northbound(network/subnet/ports create/update/delete) +(2)Ovsdb test,default configuration,openflow connection,vm go onlines. +3.Later we will make a framework to do this test \ No newline at end of file diff --git a/framework/scripts/function_test/Teston/__init__.py b/framework/scripts/function_test/Teston/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/framework/scripts/function_test/Teston/adapters/__init__.py b/framework/scripts/function_test/Teston/adapters/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/framework/scripts/function_test/Teston/adapters/foundation.py b/framework/scripts/function_test/Teston/adapters/foundation.py new file mode 100644 index 00000000..c909d36b --- /dev/null +++ b/framework/scripts/function_test/Teston/adapters/foundation.py @@ -0,0 +1,64 @@ +""" +Description: + This file include basis functions + lanqinglong@huawei.com +""" + +import logging +import os +import time +import yaml + +class foundation: + + def __init__(self): + + currentpath = os.getcwd() + self.logdir = os.path.join( currentpath, 'log' ) + self.workhome = currentpath[0:currentpath.rfind('testcases')-1] + self.Result_DB = '' + + def log (self, loginfo): + """ + Record log in log directory for deploying test environment + parameters: + loginfo(input): record info + """ + filename = time.strftime( '%Y-%m-%d-%H-%M-%S' ) + '.log' + filepath = os.path.join( self.logdir, filename ) + logging.basicConfig( level=logging.INFO, + format = '%(asctime)s %(filename)s:%(message)s', + datefmt = '%d %b %Y %H:%M:%S', + filename = filepath, + filemode = 'w') + filelog = logging.FileHandler( filepath ) + logging.getLogger( 'Functest' ).addHandler( filelog ) + print loginfo + logging.info(loginfo) + + def getdefaultpara( self ): + """ + Get Default Parameters value + """ + with open(self.workhome + "testcases/config_functest.yaml") as f: + functest_yaml = yaml.safe_load(f) + f.close() + + self.Result_DB = str(functest_yaml.get("results").get("test_db_url")) + self.masterusername = str(functest_yaml.get("ONOS").get("general").\ + get('onosbench_username')) + self.masterpassword = str(functest_yaml.get("ONOS").get("general").\ + get("onosbench_password")) + self.agentusername = str(functest_yaml.get("ONOS").get("general").\ + get("onoscli_username")) + self.agentpassword = str(functest_yaml.get("ONOS").get("general").\ + get("onoscli_password")) + self.runtimeout = functest_yaml.get("ONOS").get("general").get("runtimeout") + self.OCT = str(functest_yaml.get("ONOS").get("environment").get("OCT")) + self.OC1 = str(functest_yaml.get("ONOS").get("environment").get("OC1")) + self.OC2 = str(functest_yaml.get("ONOS").get("environment").get("OC2")) + self.OC3 = str(functest_yaml.get("ONOS").get("environment").get("OC3")) + self.OCN = str(functest_yaml.get("ONOS").get("environment").get("OCN")) + self.OCN2 = str(functest_yaml.get("ONOS").get("environment").get("OCN2")) + self.localhost = self.OCT + return True \ No newline at end of file diff --git a/framework/scripts/function_test/Teston/config.yaml b/framework/scripts/function_test/Teston/config.yaml new file mode 100644 index 00000000..78afb01b --- /dev/null +++ b/framework/scripts/function_test/Teston/config.yaml @@ -0,0 +1,16 @@ +ONOS: + general: + onosbench_username: 'root' + onosbench_password: 'root' + onoscli_username: 'root' + onoscli_password: 'root' + runtimeout: 300 + environment: + OCT: '189.42.8.99' + OC1: '189.42.8.101' + OC2: '189.42.8.102' + OC3: '189.42.8.103' + OCN: '189.42.8.104' + OCN2: '189.42.8.105' +results: + test_db_url: http://213.77.62.197 \ No newline at end of file diff --git a/framework/scripts/function_test/Teston/dependencies/onos b/framework/scripts/function_test/Teston/dependencies/onos new file mode 100644 index 00000000..d4d59e0f --- /dev/null +++ b/framework/scripts/function_test/Teston/dependencies/onos @@ -0,0 +1,23 @@ +#!/bin/bash +# ----------------------------------------------------------------------------- +# ONOS remote command-line client. +# ----------------------------------------------------------------------------- + +[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 +. /root/.bashrc +. $ONOS_ROOT/tools/build/envDefaults +. $ONOS_ROOT/tools/test/bin/find-node.sh + +[ "$1" = "-w" ] && shift && onos-wait-for-start $1 + +[ -n "$1" ] && OCI=$(find_node $1) && shift + +if which client 1>/dev/null 2>&1 && [ -z "$ONOS_USE_SSH" ]; then + # Use Karaf client only if we can and are allowed to + unset KARAF_HOME + client -h $OCI -u karaf "$@" 2>/dev/null +else + # Otherwise use raw ssh; strict checking is off for dev environments only + #ssh -p 8101 -o StrictHostKeyChecking=no $OCI "$@" + sshpass -p karaf ssh -l karaf -p 8101 $OCI "$@" +fi diff --git a/framework/scripts/function_test/Teston/log/temp.log b/framework/scripts/function_test/Teston/log/temp.log new file mode 100644 index 00000000..e69de29b diff --git a/framework/scripts/function_test/Teston/onosfunctest.py b/framework/scripts/function_test/Teston/onosfunctest.py new file mode 100644 index 00000000..e8524430 --- /dev/null +++ b/framework/scripts/function_test/Teston/onosfunctest.py @@ -0,0 +1,21 @@ +""" +Description: This test is to run onos Teston VTN scripts + +List of test cases: +CASE1 - Northbound NBI test network/subnet/ports +CASE2 - Ovsdb test&Default configuration&Vm go online + +lanqinglong@huawei.com +""" +from adapters.client import client + +if __name__=="__main__": + + main = client() + main.getdefaultpara() + + #scripts to run + runhandle = main.onosstart() + main.RunScript(runhandle, "FUNCvirNetNB") + main.RunScript(runhandle, "FUNCovsdbtest") + main.onosclean( runhandle ) -- cgit 1.2.3-korg