OBMC GUI POC: Test Power Operations
Resolves openbmc/openbmc-test-automation#407
Change-Id: I74e47344add5bf20dec38461d52714610e049e5e
Signed-off-by: Sivas SRR <sivas.srr@in.ibm.com>
diff --git a/gui/data/variables.py b/gui/data/variables.py
index 1abc2e2..6acefd4 100644
--- a/gui/data/variables.py
+++ b/gui/data/variables.py
@@ -16,9 +16,27 @@
xpath_uname= "xpath=//*[@id='nosession']/form/input[1]"
xpath_password= "xpath=//*[@id='nosession']/form/input[2]"
xpath_signin= "xpath=//*[@id='sign-in']"
+
xpath_search= "xpath=//*[@id='searchbox']/input"
scan_name= "OP Full Scan"
xpath_op_scan= "xpath=//*[@id='main']/div[1]/section/table/tbody"
xpath_launch= "xpath=//*[@id='scans-show-launch-dropdown']/span"
xpath_default= "xpath=//*[@id='scans-show-launch-default']"
xpath_status= "xpath=//*[@id='main']/div[1]/section/div[2]/table/tbody/tr[1]/td[4]"
+ obmc_BMC_URL= "https://openbmc-test.mybluemix.net/#/login"
+ obmc_uname= "username"
+ obmc_user_name= "root"
+ obmc_password= "0penBmc"
+
+ # Power Operation Elements needed for power on
+ header_wrapper= "2"
+ header_wrapper_elt= "2"
+
+ # Power Operation Elements needed for power operations confirmation
+ power_operations= "4"
+ warm_boot= "3"
+ cold_boot= "4"
+ shut_down= "5"
+ power_off= "6"
+ confirm_msg= "2"
+ yes= "1"
diff --git a/gui/lib/obmcgui_utils.robot b/gui/lib/obmcgui_utils.robot
new file mode 100644
index 0000000..25f0889
--- /dev/null
+++ b/gui/lib/obmcgui_utils.robot
@@ -0,0 +1,79 @@
+*** Settings ***
+
+Library OperatingSystem
+Library Selenium2Library 120 120
+Library Screenshot
+
+Resource resource.txt
+
+*** Keywords ***
+
+Open Browser With URL
+ [Documentation] Open browser with specified URL and returns browser id.
+ [Arguments] ${URL} ${browser}=gc
+ # Description of argument(s):
+ # URL Openbmc GUI URL to be open
+ # (e.g. https://openbmc-test.mybluemix.net/#/login )
+ # browser browser used to open above URL
+ # (e.g. gc for google chrome, ff for firefox)
+ ${browser_ID}= Open Browser ${URL} ${browser}
+ [Return] browser_ID
+
+Model Server Power Click
+ [Documentation] Click main server power in the header section.
+ [Arguments] ${div_element} ${anchor_element}
+ # Description of argument(s):
+ # div_element Server power header divisional element
+ # (e.g. header_wrapper)
+ # anchor_element Server power header anchor element
+ # (e.g. header_wrapper_elt)
+ Wait Until Element Is Visible
+ ... //*[@id='header__wrapper']/div/div[${div_element}]/a[${anchor_element}]/span
+ Click Element
+ ... //*[@id='header__wrapper']/div/div[${div_element}]/a[${anchor_element}]/span
+
+Controller Server Power Click
+ [Documentation] Click main server power in the header section.
+ [Arguments] ${controller_element}
+ # Description of argument(s):
+ # controller_element Server power controller element
+ # (e.g. power__power-on)
+
+ Wait Until Element Is Visible ${controller_element}
+ Click Element ${controller_element}
+
+Controller Power Operations Confirmation Click
+ [Documentation] Click Common Power Operations Confirmation.
+ [Arguments] ${main_element} ${sub_element} ${confirm_msg_elt} ${confirmation}
+ # Description of argument(s):
+ # main_element Server power operations element
+ # (e.g. power_operations)
+ # sub_element Server power operations sub element
+ # (e.g. warm_boot, shut_down)
+ # confirm_msg_elt Server power operations confirm message element
+ # (e.g. confirm_msg)
+ # confirmation Server power operations confirmation
+ # (e.g. yes)
+
+ Click Element
+ ... //*[@id='power-operations']/div[${main_element}]/div[${sub_element}]/confirm/div/div[${confirm_msg_elt}]/button[${confirmation}]
+
+GUI Power On
+ [Documentation] Power on the CEC using GUI.
+
+ Model Server Power Click ${header_wrapper} ${header_wrapper_elt}
+ Page Should Contain Attempts to power on the server
+ Controller Server Power Click power__power-on
+
+OpenBMC GUI Login
+ [Documentation] Log into OpenBMC GUI.
+
+ Log ${obmc_BMC_URL}
+ Open Browser With URL ${obmc_BMC_URL} gc
+ Page Should Contain Button login__submit
+ Wait Until Page Contains Element ${obmc_uname}
+ Input Text ${obmc_uname} ${obmc_user_name}
+ Input Password password ${obmc_password}
+ Click Element login__submit
+ Page Should Contain System Overview
+
diff --git a/gui/tests/test_obmc_gui_power_operations.robot b/gui/tests/test_obmc_gui_power_operations.robot
new file mode 100644
index 0000000..d57e339
--- /dev/null
+++ b/gui/tests/test_obmc_gui_power_operations.robot
@@ -0,0 +1,60 @@
+*** Settings ***
+
+Documentation Test OBMC GUI Power Operations
+
+Resource ../lib/obmcgui_utils.robot
+
+Suite Setup OpenBMC GUI Login
+Suite Teardown Close Browser
+
+*** Test Cases ***
+
+Power On the CEC
+ [Documentation] Power on the CEC.
+ [Tags] Power_On_the_CEC
+
+ GUI Power On
+
+Warm Boot the CEC
+ [Documentation] Warm boot the CEC.
+ [Tags] Warm_Boot_the_CEC
+
+ Controller Server Power Click power__warm-boot
+ Controller Power Operations Confirmation Click ${power_operations}
+ ... ${warm_boot} ${confirm_msg} ${yes}
+
+Immediate Power Off the CEC
+ [Documentation] Immediate power off the CEC.
+ [Tags] Immediate_Power_Off_the_CEC
+
+ Controller Server Power Click power__hard-shutdown
+ Controller Power Operations Confirmation Click ${power_operations}
+ ... ${power_off} ${confirm_msg} ${yes}
+
+Cold Boot the CEC
+ [Documentation] Cold boot the CEC.
+ [Tags] Cold_Boot_the_CEC
+
+ Controller Server Power Click power__cold-boot
+ Controller Power Operations Confirmation Click ${power_operations}
+ ... ${cold_boot} ${confirm_msg} ${yes}
+
+Orderly Shutdown the CEC
+ [Documentation] Orderly shutdown the CEC.
+ [Tags] Orderly_Shutdown_the_CEC
+
+ Controller Server Power Click power__soft-shutdown
+ Controller Power Operations Confirmation Click ${power_operations}
+ ... ${shut_down} ${confirm_msg} ${yes}
+
+OpenBMC GUI Logoff
+ [Documentation] Log out from OpenBMC GUI.
+ [Tags] OpenBMC_GUI_Logoff
+
+ Log ${obmc_BMC_URL}
+ Log To Console ${obmc_BMC_URL}
+ Click Element header
+
+
+
+