Add WUKS and stats collection time in OpenFlow perf test.
[integration/test.git] / csit / suites / openflowplugin / Performance_Flow_Config / 010_Rest_Config_Flows.robot
index 44032b11c7aa6f472f1a444c8bd39112876ce3da..cc6a72689c54a2149182095ad4c2a52f6c413e15 100644 (file)
@@ -1,75 +1,53 @@
 *** Settings ***
 Documentation     Test suite with connection of multiple switches
-Library        OperatingSystem
-Library        Collections
-Library        XML
-Library        Process
-Variables      ../../../variables/Variables.py
-Library        RequestsLibrary
-Library        ../../../libraries/Common.py
-Library        SSHLibrary
-Suite Setup       Start Suite
-Suite Teardown    Stop Suite
-
-
-*** Test Cases ***
-Are Switches Connected
-      [Documentation]   Checks wheather switches are connected to controller
-      [Setup]      Start Http Session
-      [Teardown]   Stop Http Session
-      ${resp}=   Get   tcsession     /restconf/operational/network-topology:network-topology/topology/flow:1    headers=${ACCEPT_XML}
-      Log    ${resp.content}
-      ${count}=   Get Element Count   ${resp.content}   xpath=node
-      Should Be Equal As Numbers    ${count}    ${switches}
-Configure And Deconfigure Flows
-      ${result}=    Run Process    ${PERFSCRIPT}  --host  ${CONTROLLER}  --flows  ${flows}  --threads  ${threads}  --auth  shell=yes
-      Log           ${result.stdout}
-      Create File   out.log.txt  content=${result.stdout}
-      Log           ${result.stderr}
-      Should Be Equal As Integers       ${result.rc}    0
-      ${result}=    Run Process    python  ${PARSESCRIPT}
+Suite Setup       Utils.Start Suite
+Suite Teardown    Utils.Stop Suite
+Library           OperatingSystem
+Library           XML
+Library           Process
+Library           RequestsLibrary
+Resource          ../../../libraries/Utils.robot
+Variables         ../../../variables/Variables.py
 
 *** Variables ***
 ${switches}       25
 ${flows}          2000
 ${threads}        5
-${start}          sudo mn --controller=remote,ip=${CONTROLLER} --topo linear,${switches},1 --switch ovsk,protocols=OpenFlow13
+${start}          sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --topo linear,${switches},1 --switch ovsk,protocols=OpenFlow13
 ${PERFSCRIPT}     ${CURDIR}/../../../../tools/odl-mdsal-clustering-tests/clustering-performance-test/flow_add_delete_test.py
 ${PARSESCRIPT}    ${CURDIR}/../../../../tools/odl-mdsal-clustering-tests/clustering-performance-test/create_plot_data_files.py
 
-*** Keywords ***
-Start Suite
-    [Documentation]    Basic setup/cleanup work that can be done safely before any system
-    ...    is run.
-    Log    Start the test on the base edition
-    ${mininet_conn_id}=     Open Connection    ${MININET}    prompt=>    timeout=600s
-    Set Suite Variable  ${mininet_conn_id}
-    Login With Public Key    ${MININET_USER}    ${USER_HOME}/.ssh/${SSH_KEY}    any
-    Write    sudo ovs-vsctl set-manager ptcp:6644
-    Read Until    >
-    Write    sudo mn -c
-    Read Until    >
-    Read Until    >
-    Read Until    >
-    Write    ${start}
-    Read Until    mininet>
-    Sleep    6
+*** Test Cases ***
+Check Switches Connected
+    [Documentation]    Checks wheather switches are connected to controller.
+    [Setup]    Start Http Session
+    Wait Until Keyword Succeeds    5    1    Are Switches Connected    ${switches}
+    [Teardown]    Stop Http Session
 
-Stop Suite
-    [Documentation]    Cleanup/Shutdown work that should be done at the completion of all
-    ...    tests
-    Log    Stop the test on the base edition
-    Switch Connection   ${mininet_conn_id}
-    Read
-    Write    exit
-    Read Until    >
-    Close Connection
+Configure And Deconfigure Flows
+    [Documentation]    Runs the flow peformance script and the script that parses the results to csv file.
+    ${result}=    Process.Run Process    ${PERFSCRIPT}    --host    ${ODL_SYSTEM_IP}    --flows    ${flows}
+    ...    --threads    ${threads}    --auth    shell=yes
+    Log    ${result.stdout}
+    OperatingSystem.Create File    out.log.txt    content=${result.stdout}
+    Log    ${result.stderr}
+    Should Be Equal As Integers    ${result.rc}    0
+    ${result}=    Process.Run Process    python    ${PARSESCRIPT}
 
+*** Keywords ***
 Start Http Session
-    [Documentation]    Starts http session
-    Log   http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML}
-    Create Session   tcsession   http://${CONTROLLER}:${RESTCONFPORT}   auth=${AUTH}   headers=${HEADERS_XML}
-Stop Http Session
-    [Documentation]    Stops http session
-    Delete All Sessions
+    [Documentation]    Starts http session.
+    Log    http://${ODL_SYSTEM_IP}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML}
+    RequestsLibrary.Create Session    tcsession    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
 
+Are Switches Connected
+    [Arguments]    ${switches}
+    [Documentation]    Checks Topology Contains a fix number ${switches} of switces.
+    ${resp}=    RequestsLibrary.Get Request    tcsession    /restconf/operational/network-topology:network-topology/topology/flow:1    headers=${ACCEPT_XML}
+    Log    ${resp.content}
+    ${count}=    XML.Get Element Count    ${resp.content}    xpath=node
+    Should Be Equal As Numbers    ${count}    ${switches}
+
+Stop Http Session
+    [Documentation]    Stops http session.
+    RequestsLibrary.Delete All Sessions