diff --git a/robot/resources/portal-sdk/portalSdkDef.robot b/robot/resources/portal-sdk/portalSdkDef.robot
new file mode 100644
index 0000000..1efb141
--- /dev/null
+++ b/robot/resources/portal-sdk/portalSdkDef.robot
@@ -0,0 +1,137 @@
+*** Settings ***
+Documentation    This is RobotFrame work script
+Library    ExtendedSelenium2Library
+Library    OperatingSystem
+#Library     	XvfbRobot
+
+
+*** Variables ***
+${PORTAL_SDK_URL}		http://portal.api.simpledemo.onap.org:8990
+${PORTAL_SDK_ENV}            /ONAPPORTALSDK
+${PORTAL_SDK_LOGIN_URL}                ${PORTAL_SDK_URL}${PORTAL_ENV}/login.htm
+${PORTAL_SDK_HOME_PAGE}        ${PORTAL_SDK_URL}${PORTAL_ENV}/welcome
+${PORTAL_SDK_MICRO_ENDPOINT}    ${PORTAL_SDK_URL}${PORTAL_ENV}/commonWidgets
+${PORTAL_SDK_HOME_URL}                ${PORTAL_SDK_URL}${PORTAL_ENV}/applicationsHome
+${GLOBAL_APPLICATION_ID}           robot-functional
+${GLOBAL_PORTAL_ADMIN_USER}		demo
+${GLOBAL_PORTAL_ADMIN_PWD}		demo
+${GLOBAL_SELENIUM_BROWSER}        chrome
+${GLOBAL_SELENIUM_BROWSER_CAPABILITIES}        Create Dictionary
+${GLOBAL_SELENIUM_DELAY}          0
+${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}        5
+${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}        15
+${GLOBAL_BUILD_NUMBER}    0
+${GLOBAL_VM_PRIVATE_KEY}   ${EXECDIR}/robot/assets/keys/robot_ssh_private_key.pvt
+
+#*** Test Cases ***
+
+*** Keywords ***
+
+SDKPortal admin Login To Portal GUI
+    [Documentation]    Logs into Portal GUI
+    #    Setup Browser
+    #    Start Virtual Display    1920    1080
+    Open Browser    ${PORTAL_SDK_LOGIN_URL}    chrome
+    #    Go To    ${PORTAL_SDK_LOGIN_URL}
+    Maximize Browser Window
+    Set Selenium Speed    ${GLOBAL_SELENIUM_DELAY}
+    Set Browser Implicit Wait    ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
+    Log    Logging in to ${PORTAL_SDK_URL}${PORTAL_SDK_ENV}
+    # Handle Proxy Warning
+    Title Should Be    Login
+    Input Text    xpath=//input[@id='loginId']    ${GLOBAL_PORTAL_ADMIN_USER}
+    Input Password    xpath=//input[@id='password']    ${GLOBAL_PORTAL_ADMIN_PWD}
+    Click Element    //*[@id="loginBtn"]
+    Wait Until Page Contains Element    xpath=//img[@src='app/fusionapp/icons/logo_onap_transbg.png']    ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
+    Log    Logged in to ${PORTAL_SDK_URL}${PORTAL_SDK_ENV}
+
+SDKPortalAdmin Navigation Application Link Tab
+    [Documentation]    Logs into Portal GUI as Portal admin
+    Comment    Click Element    xpath=.//h3[contains(text(),'xDemo App')]/following::div[1]
+    Comment    Go To    ${PORTAL_SDK_HOME_PAGE}
+    Comment    Dismiss Alert    accept=false
+    #Scroll Element Into View    xpath=//span[@id='tab-Home']
+    #Click Element    xpath=//span[@id='tab-Home']
+    #Click Element    xpath=(//span[@id='tab-xDemo-App']/following::i[@class='ion-close-round'])[1]
+    Comment    Click Element    xpath=.//h3[contains(text(),'xDemo App')]/following::div[1]
+
+Validate SDK Sub Menu
+    [Documentation]    Logs into SDK GUI as Portal admin
+    Page Should Contain    Home
+    Page Should Contain    Sample Pages
+    Page Should Contain    Reports
+    Page Should Contain    Profile
+    Page Should Contain    Admin
+
+Click Sample Pages and validate sub Menu
+    [Documentation]    Click Sample Pages
+    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
+    Click Link    xpath=//a[@id='parent-item-Sample-Pages']
+    Element Text Should Be    xpath=//a[@title='Collaboration']    Collaboration
+    Element Text Should Be    xpath=//a[@title='Notebook']    Notebook
+    Click Link    xpath=//a[contains(@title,'Collaboration')]
+    Page Should Contain    User List
+    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
+    Click Link    xpath=//a[@id='parent-item-Sample-Pages']
+    Click Link    xpath=//a[contains(@title,'Notebook')]
+    Element Text Should Be    xpath=//h1[contains(.,'Notebook')]    Notebook
+
+Click Reports and validate sub Menu
+     [Documentation]    Click Reports Tab
+     #Select frame    xpath=.//*[@id='tabframe-xDemo-App']
+     Click Link    xpath=//a[@id='parent-item-Reports']
+     Element Text Should Be    xpath=//a[@title='All Reports']    All Reports
+     Element Text Should Be    xpath=//a[@title='Create Reports']    Create Reports
+     Click Link    xpath=//a[contains(@title,'All Reports')]
+     Page Should Contain    Report search
+     Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
+     Click Link    xpath=//a[@id='parent-item-Reports']
+     Click Link    xpath=//a[contains(@title,'Create Reports')]
+     Page Should Contain    Report Wizard
+
+Click Profile and validate sub Menu
+    [Documentation]    Click Profile Tab
+    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
+    Click Link    xpath=//a[@id='parent-item-Profile']
+    Element Text Should Be    xpath=//a[@title='Search']    Search
+    Element Text Should Be    xpath=//a[@title='Self']    Self
+    Click Link    xpath=//a[contains(@title,'Search')]
+    Page Should Contain    Profile Search
+    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
+    Click Link    xpath=//a[@id='parent-item-Profile']
+    Click Link    xpath=//a[contains(@title,'Self')]
+    Page Should Contain    Self Profile Detail
+
+Click Admin and validate sub Menu
+    [Documentation]    Click Admin Tab
+    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
+    Click Link    xpath=//a[@id='parent-item-Admin']
+    Element Text Should Be    xpath=//a[@title='Roles']    Roles
+    Element Text Should Be    xpath=//a[@title='Role Functions']    Role Functions
+    Element Text Should Be    xpath=//a[@title='Cache Admin']    Cache Admin
+    Element Text Should Be    xpath=//a[@title='Menus']    Menus
+    Element Text Should Be    xpath=//a[@title='Usage']    Usage
+    Click Link    xpath=//a[contains(@title,'Roles')]
+    Page Should Contain    Roles
+    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
+    Click Link    xpath=//a[@id='parent-item-Admin']
+    Click Link    xpath=//a[contains(@title,'Role Function')]
+    Page Should Contain    Role Function
+    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
+    Click Link    xpath=.//a[@id='parent-item-Admin']
+    #Select frame    xpath=.//*[@id='tabframe-xDemo-App']
+    Click Link    xpath=//a[@id='parent-item-Admin']
+    Click Link    xpath=//a[contains(@title,'Cache Admin')]
+    Page Should Contain    Cache Regions
+    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
+    Click Link    xpath=.//a[@id='parent-item-Admin']
+    Click Link    xpath=//a[@id='parent-item-Admin']
+    Click Link    xpath=//a[contains(@title,'Menus')]
+    Page Should Contain    Admin Menu Items
+    Comment    Select frame    xpath=.//*[@id='tabframe-xDemo-App']
+    Click Link    xpath=//a[@id='parent-item-Admin']
+    Click Link    xpath=//a[@id='parent-item-Admin']
+    Click Link    xpath=//a[contains(@title,'Usage')]
+    Page Should Contain    Current Usage
+
+
diff --git a/robot/testsuites/portalApp.robot b/robot/testsuites/portalApp.robot
index 5bd88da..51c9fa3 100644
--- a/robot/testsuites/portalApp.robot
+++ b/robot/testsuites/portalApp.robot
@@ -1,149 +1,124 @@
 *** Settings ***
 Documentation    This is RobotFrame work script
 Resource	../resources/portal-sdk/portalDef.robot
+Resource	../resources/portal-sdk/portalSdkDef.robot
 
 *** Test Cases ***
      
-Login into Portal URL   
+Login into Portal URL
+    [TAGS]  portal
     Portal admin Login To Portal GUI  
-    
-# Portal R1 Release
-   #[Documentation]    ONAP Portal R1 functionality  test
-   # Notification on ONAP Portal
-   # Portal Application Account Management validation
 
 Portal Change REST URL Of X-DemoApp
+    [TAGS]  portal
     [Documentation]    Portal Change REST URL Of X-DemoApp
     Portal Change REST URL
     
 Portal R1 Release for AAF
+    [TAGS]  portal
     [Documentation]    ONAP Portal R1 functionality for AAF test
     Portal AAF new fields
 	  
 Create Microse service onboarding
+    [TAGS]  portal
 	Portal admin Microservice Onboarding
-	
-#Delete Microse service
-	#Portal admin Microservice Delete
-   
-#Create Widget for all users
-#	Portal Admin Create Widget for All users
 
-#Delete Widget for all users
-#	Portal Admin Delete Widget for All users
-     		
-#Create Widget for Application Roles
-#	Portal Admin Create Widget for Application Roles
-    
-#Delete Widget for Application Roles
-	#Portal Admin Delete Widget for Application Roles
-
-#EP Admin widget download
-	#Admin widget download
-    
 EP Admin widget layout reset
+    [TAGS]  portal
 	Reset widget layout option
 
 Validate Functional Top Menu Get Access
+    [TAGS]  portal
 	Functional Top Menu Get Access
     
 Validate Functional Top Menu Contact Us
+    [TAGS]  portal
 	Functional Top Menu Contact Us
     
 Edit Functional Menu
+    [TAGS]  portal
 	Portal admin Edit Functional menu
     
 Broadbond Notification functionality
+    [TAGS]  portal
 	${AdminBroadCastMsg}=    Portal Admin Broadcast Notifications
 	set global variable    ${AdminBroadCastMsg}
    
 Category Notification functionality
+    [TAGS]  portal
 	${AdminCategoryMsg}=   Portal Admin Category Notifications
 	set global variable    ${AdminCategoryMsg}
          
 Create a Test user for Application Admin -Test
+    [TAGS]  portal
 	Portal admin Add Application admin User New user -Test
 
 Create a Test User for Apllication Admin
+    [TAGS]  portal
 	Portal admin Add Application admin User New user
 	 
 Add Application Admin for Existing User Test user
+    [TAGS]  portal
 	Portal admin Add Application Admin Exiting User -APPDEMO
 
 Create a Test user for Standared User
+    [TAGS]  portal
 	Portal admin Add Standard User New user
     
 Add Application Admin for Exisitng User
+    [TAGS]  portal
 	Portal admin Add Application Admin Exiting User
             
 Delete Application Admin for Exisitng User
+    [TAGS]  portal
 	Portal admin Delete Application Admin Existing User
     
 Add Standard User Role for Existing user
+    [TAGS]  portal
 	Portal admin Add Standard User Existing user
     
 Edit Standard User Role for Existing user
+    [TAGS]  portal
 	Portal admin Edit Standard User Existing user
     
 Delete Standard User Role for Existing user
+    [TAGS]  portal
 	Portal admin Delete Standard User Existing user
 
-#Add Account new account from App Account Management
-	#Portal admin Add New Account
-            
-#Delete Account new account from App Account Management
-	#Portal admin Delete Account
-
-#EP Create Portal Admin
-	#Add Portal Admin
-
-#EP Portal Admin delete
-    #Delete Portal Admin
-	
 Logout from Portal GUI as Portal Admin
+    [TAGS]  portal
     Portal admin Logout from Portal GUI
 
 # Application Admin user Test cases
 	 
 Login To Portal GUI as APP Admin
+    [TAGS]  portal
 	Application admin Login To Portal GUI
 
-#Navigate Functional Link as APP Admin
-    #Application Admin Navigation Functional Menu
-    
 Add Standard User Role for Existing user as APP Admin
+    [TAGS]  portal
 	Application admin Add Standard User Existing user
     
 Edit Standard User Role for Existing user as APP Admin
+    [TAGS]  portal
 	Application admin Edit Standard User Existing user
     
 Delete Standard User Role for Existing user as APP Admin
+    [TAGS]  portal
 	Application admin Delete Standard User Existing user
 
-#Navigate Application Link as APP Admin
-	#Application Admin Navigation Application Link Tab
-
 Logout from Portal GUI as APP Admin
+    [TAGS]  portal
 	Application admin Logout from Portal GUI
    
 #Standard User Test cases
    
 Login To Portal GUI as Standared User
+    [TAGS]  portal
 	Standared user Login To Portal GUI
 
-#Navigate Application Link as Standared User
-	#Standared user Navigation Application Link Tab
-    
-#Navigate Functional Link as Standared User
-	#Standared user Navigation Functional Menu
-     
-#Broadcast Notifications Standared user
-	#Standared user Broadcast Notifications    ${AdminBroadCastMsg}
-      
-#Category Notifications Standared user
-	#Standared user Category Notifications    ${AdminCategoryMsg}
-      
 Logout from Portal GUI as Standared User
+    [TAGS]  portal
 	Standared User Logout from Portal GUI
     Close All Browsers
     
