summaryrefslogtreecommitdiffstats
path: root/robot/resources/stack_validation/darkstat_interface.robot
diff options
context:
space:
mode:
authorDR695H <dr695h@att.com>2017-02-17 18:44:24 -0500
committerDR695H <dr695h@att.com>2017-02-17 18:44:41 -0500
commitccff30b6e325f359879595998e83bbfe6624c851 (patch)
treec98f950f33baa71d21b091b6b10ca3ffb7700467 /robot/resources/stack_validation/darkstat_interface.robot
parent234c2226d8cb3368a7af3d280a5ec280782bed63 (diff)
Initial checkin of EopenECOMP testsuite
Change-Id: I64a2b6d8cf66169829866b73b3d26a4ff59b0a42 Signed-off-by: DR695H <dr695h@att.com>
Diffstat (limited to 'robot/resources/stack_validation/darkstat_interface.robot')
-rw-r--r--robot/resources/stack_validation/darkstat_interface.robot82
1 files changed, 82 insertions, 0 deletions
diff --git a/robot/resources/stack_validation/darkstat_interface.robot b/robot/resources/stack_validation/darkstat_interface.robot
new file mode 100644
index 00000000..3537408a
--- /dev/null
+++ b/robot/resources/stack_validation/darkstat_interface.robot
@@ -0,0 +1,82 @@
+*** Settings ***
+Documentation The main interface for interacting with A&AI. It handles low level stuff like managing the http request library and A&AI required fields
+Library ExtendedSelenium2Library
+Library StringTemplater
+Library UUID
+Library OperatingSystem
+Resource ../global_properties.robot
+Resource ../browser_setup.robot
+
+*** Variables ***
+${SNK_HOSTS_TEMPLATE} http://\${host}:\${port}/hosts/
+${SNK_HOME_TEMPLATE} http://\${host}:\${port}/
+${SNK_PATH}
+${SNK_PORT} 667
+${BYTES_PER_PACKET} 29
+${PACKETS_PER_SECOND_PER_STREAM} 11
+${MONITOR_INTERVAL_IN_SECONDS} 4
+
+*** Keywords ***
+Get Darkstat Bytes In
+ [Documentation] Get bytes received on the passed interface for the given interval
+ [Arguments] ${host} ${interface} ${interval}=${MONITOR_INTERVAL_IN_SECONDS}
+ ${map}= Create Dictionary host=${host} port=${SNK_PORT} path=${SNK_PATH}
+ ${url}= Template String ${SNK_HOSTS_TEMPLATE} ${map}
+ Connect to Darkstat ${host} ${url}
+ Title Should Be Hosts (darkstat3 eth1)
+ ${initial_bytes}= Get Current Bytes In ${interface}
+ Sleep ${interval}
+ Go To ${url}
+ ${new_bytes}= Get Current Bytes In ${interface}
+ ${return_bytes}= Evaluate int(${new_bytes}) - int(${initial_bytes})
+ [Return] ${return_bytes}
+
+Get Darkstat Packets In
+ [Documentation] Get bytes received on the passed interface for the given interval
+ [Arguments] ${host} ${interval}=${MONITOR_INTERVAL_IN_SECONDS}
+ ${map}= Create Dictionary host=${host} port=${SNK_PORT} path=${SNK_PATH}
+ ${url}= Template String ${SNK_HOME_TEMPLATE} ${map}
+ Connect to Darkstat ${host} ${url}
+ Title Should Be Graphs (darkstat3 eth1)
+ ${initial_pkts}= Get Current Packets In
+ Sleep ${interval}
+ Go To ${url}
+ ${new_pkts}= Get Current Packets In
+ ${return_pkts}= Evaluate int(${new_pkts}) - int(${initial_pkts})
+ [Return] ${return_pkts}
+
+
+Connect to Darkstat
+ [Documentation] COnnects to the Darkstat port on passed host
+ [Arguments] ${host} ${url}
+ ## Being managed by the test case
+ ##Setup Browser
+ Go To ${url}
+ Maximize Browser Window
+ Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
+ Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
+ Log Logging in to ${url}
+ Handle Proxy Warning
+
+
+Get Current Bytes In
+ [Documentation] Retrieves packets input from given host from current Darkstats hosts page
+ [Arguments] ${interface}
+ ${bytes}= Get Text xpath=//tr[td/a[text() = '${interface}']]/td[4]
+ ${bytes}= Evaluate ${bytes.replace(',', '')}
+ [Return] ${bytes}
+
+Get Current Packets In
+ [Documentation] Retrieves packets input from given host from current Darkstats hosts page
+ ${bytes}= Get Text xpath=//span[@id = 'tp']
+ ${bytes}= Evaluate ${bytes.replace(',', '')}
+ [Return] ${bytes}
+
+
+Get Expected Range For Number Of Streams
+ [Documentation] Calculates the expected range of bytes for an interval for the given number of streams
+ [Arguments] ${number_of_streams}
+ ${bytes_per_second}= Evaluate ${BYTES_PER_PACKET}*(${PACKETS_PER_SECOND_PER_STREAM}*${number_of_streams})
+ ${low_bytes}= Evaluate (${MONITOR_INTERVAL_IN_SECONDS}-1)*${bytes_per_second}
+ ${high_bytes}= Evaluate (${MONITOR_INTERVAL_IN_SECONDS}+1)*${bytes_per_second}
+ [Return] ${low_bytes} ${high_bytes} \ No newline at end of file