a4acf25d1ba9753a3c84b4565aee486444fb2719
[integration/test.git] / csit / suites / sxp / topology / 020_Scalability.robot
1 *** Settings ***
2 Documentation     Test suite to test scalability of SXP
3 Suite Setup       Setup SXP Environment
4 Suite Teardown    Clean SXP Environment
5 Test Setup        Clean Nodes
6 Library           RequestsLibrary
7 Library           SSHLibrary
8 Library           ../../../libraries/Sxp.py
9 Resource          ../../../libraries/SxpLib.robot
10 Resource          ../../../libraries/Utils.robot
11 Resource          ../../../libraries/KarafKeywords.robot
12 Resource          ../../../variables/Variables.py
13
14 *** Variables ***
15
16 *** Test Cases ***
17 Test Mega Topology
18     [Documentation]    Stress test that contains of connecting 20 Nodes and exporting their bindings
19     Setup Mega Topology
20     Sleep    5s
21     ${resp}    Get Bindings    127.0.0.1
22     : FOR    ${num}    IN RANGE    2    22
23     \    ${ip}    Get Ip From Number    ${num}
24     \    Should Contain Binding    ${resp}    ${num}    ${ip}/32    sxp
25
26 Test Complex Mega Topology
27     [Documentation]    Stress test that contains of connecting 30 Nodes and exporting their bindings
28     Setup Complex Mega Topology
29     Sleep    5s
30     ${resp}    Get Bindings    127.0.0.1
31     : FOR    ${num}    IN RANGE    22    32
32     \    ${ip}    Get Ip From Number    ${num}
33     \    Should Contain Binding    ${resp}    ${num}    ${ip}/32    sxp
34
35 Text Bindings export
36     [Documentation]    Stress test that consist of exporting 500 Bindings under 5s
37     : FOR    ${num}    IN RANGE    2    502
38     \    ${ip}    Get Ip From Number    ${num}
39     \    Add Binding    ${num}    ${ip}/32    127.0.0.2
40     Add Connection    version4    listener    127.0.0.2    64999    127.0.0.1
41     Add Connection    version4    speaker    127.0.0.1    64999    127.0.0.2
42     Sleep    5s
43     ${resp}    Get Bindings    127.0.0.1
44     : FOR    ${num}    IN RANGE    2    102
45     \    ${ip}    Get Ip From Number    ${num}
46     \    Should Contain Binding    ${resp}    ${num}    ${ip}/32    sxp
47
48 *** Keywords ***
49 Setup Mega Topology
50     [Arguments]    ${version}=version4
51     : FOR    ${num}    IN RANGE    2    22
52     \    ${ip}    Get Ip From Number    ${num}
53     \    Add Binding    ${num}    ${ip}/32    ${ip}
54     \    Add Connection    ${version}    listener    ${ip}    64999    127.0.0.1
55     \    Add Connection    ${version}    speaker    127.0.0.1    64999    ${ip}
56     \    Wait Until Keyword Succeeds    15    1    Verify Connection    ${version}    listener
57     \    ...    ${ip}
58
59 Setup Complex Mega Topology
60     [Arguments]    ${version}=version4
61     Setup Mega Topology    ${version}
62     ${second_num}    Convert To Integer    2
63     : FOR    ${num}    IN RANGE    22    32
64     \    ${ip}    Get Ip From Number    ${num}
65     \    ${second_ip}    Get Ip From Number    ${second_num}
66     \    Add Binding    ${num}    ${ip}/32    ${ip}
67     \    Add Connection    ${version}    listener    ${ip}    64999    ${second_ip}
68     \    Add Connection    ${version}    speaker    ${second_ip}    64999    ${ip}
69     \    Wait Until Keyword Succeeds    15    1    Verify Connection    ${version}    listener
70     \    ...    ${ip}    64999    ${second_ip}
71     \    ${second_num}    Set Variable    ${second_num + 1}
72     \    ${second_ip}    Get Ip From Number    ${second_num}
73     \    Add Connection    ${version}    listener    ${ip}    64999    ${second_ip}
74     \    Add Connection    ${version}    speaker    ${second_ip}    64999    ${ip}
75     \    Wait Until Keyword Succeeds    15    1    Verify Connection    ${version}    listener
76     \    ...    ${ip}    64999    ${second_ip}
77
78 Clean Nodes
79     : FOR    ${num}    IN RANGE    1    32
80     \    ${ip}    Get Ip From Number    ${num}
81     \    Clean Connections    ${ip}
82     \    Clean Bindings    ${ip}