diff --git a/robot/testsuites/create-cloud-config.robot b/robot/testsuites/create-cloud-config.robot
index 0af4f0e..662bc29 100644
--- a/robot/testsuites/create-cloud-config.robot
+++ b/robot/testsuites/create-cloud-config.robot
@@ -11,7 +11,7 @@
 Create Cloud Config Test
     [TAGS]    mso    cloudconfig
     # Run Create Cloud Configuration    RegionOne   RegionOne   RegionOne    DEFAULT_KEYSTONE    identify_url:http://10.12.25.2:5000/v2.0    mso_id:demo  mso_pass:encrypted_password  admin_tenant:1e097c6713e74fd7ac8e4295e605ee1e    member_role:admin    identity_server_type:KEYSTONE    identity_authentication_type:USERNAME_PASSWORD
-    Create Cloud Configuration    ${GLOBAL_INJECTED_REGION}   ${GLOBAL_INJECTED_REGION}  ${GLOBAL_INJECTED_REGION}   DEFAULT_KEYSTONE    ${GLOBAL_INJECTED_KEYSTONE}/${GLOBAL_INJECTED_OPENSTACK_KEYSTONE_API_VERSION}    ${GLOBAL_INJECTED_OPENSTACK_USERNAME}   ${GLOBAL_INJECTED_OPENSTACK_MSO_ENCRYPTED_PASSWORD}    ${GLOBAL_INJECTED_OPENSTACK_TENANT_ID}     admin    KEYSTONE    USERNAME_PASSWORD 
+    Create Cloud Configuration    ${GLOBAL_INJECTED_REGION}   ${GLOBAL_INJECTED_REGION}  ${GLOBAL_INJECTED_REGION}   DEFAULT_KEYSTONE    ${GLOBAL_INJECTED_KEYSTONE}/${GLOBAL_INJECTED_OPENSTACK_KEYSTONE_API_VERSION}    ${GLOBAL_INJECTED_OPENSTACK_USERNAME}   ${GLOBAL_INJECTED_OPENSTACK_API_KEY}    ${GLOBAL_INJECTED_OPENSTACK_TENANT_ID}     admin    KEYSTONE    USERNAME_PASSWORD 
 
 Create Cloud Config RegionThree V3 Test
     [TAGS]    mso    cloudconfig  cloudconfigv3
diff --git a/robot/testsuites/demo.robot b/robot/testsuites/demo.robot
index a4ab099..1e9e8d4 100644
--- a/robot/testsuites/demo.robot
+++ b/robot/testsuites/demo.robot
@@ -13,6 +13,7 @@
 ${HB_STACK}
 ${HB_SERVICE_INSTANCE_ID}
 ${HB_SERVICE}
+${HB_IPV4_OAM_ADDRESS}
 
 
 *** Test Cases ***
diff --git a/robot/testsuites/health-check.robot b/robot/testsuites/health-check.robot
index daba7c1..5feaa9c 100644
--- a/robot/testsuites/health-check.robot
+++ b/robot/testsuites/health-check.robot
@@ -286,11 +286,11 @@
 
 Basic Holmes Rule Management API Health Check
     [Tags]    health    medium   health-dcae
-    Run Holmes Rule Mgmt Health Check
+    Run Holmes Rule Mgmt Healthcheck
 
 Basic Holmes Engine Management API Health Check
     [Tags]    health    medium   health-dcae
-    Run Holmes Engine Mgmt Health Check
+    Run Holmes Engine Mgmt Healthcheck
 
 Basic Multicloud-fcaps API Health Check
     [Tags]    health    multicloud   health-multicloud
diff --git a/robot/testsuites/hvves.robot b/robot/testsuites/hvves.robot
index a67b0c3..941f664 100644
--- a/robot/testsuites/hvves.robot
+++ b/robot/testsuites/hvves.robot
@@ -1,7 +1,9 @@
 *** Settings ***
-Documentation   HV-VES 'Sunny Scenario' Robot Framwork test - message is sent to the collector and Kafka topic is checked if the message has been published.
-Default Tags    HVVES   ete
-Test Timeout    10s
+Documentation   HV-VES 'Sunny Scenario' Robot Framwork test - message is sent to the collector and Kafka topic is checked if the message has been published. 
+
+
+Library    Rammbock
+Library    OperatingSystem
 Resource    ${EXECDIR}/robot/resources/global_properties.robot
 Resource    ${EXECDIR}/robot/resources/test_templates/hvves_template.robot
 Suite Teardown  Reset Rammbock
@@ -10,6 +12,8 @@
 
 *** Test Cases ***
 HV-VES test case
+    [Tags]    HVVES   ete
+    [Timeout]     10s
     ${msg_number_initial}=  Check Number Of Messages On Topic   ${GLOBAL_DNS_MESSAGE_ROUTER_KAFKA_NAME}  ${GLOBAL_MESSAGE_ROUTER_KAFKA_PORT}  ${hvves_kafka_topic}
     Define WTP Protocol
     Start HV-VES TCP Client And Send Message     ${GLOBAL_DNS_HV_VES_NAME}   ${GLOBAL_HV_VES_SERVER_PORT}
diff --git a/robot/testsuites/model-distribution-vcpe.robot b/robot/testsuites/model-distribution-vcpe.robot
index b0016b2..09a4430 100644
--- a/robot/testsuites/model-distribution-vcpe.robot
+++ b/robot/testsuites/model-distribution-vcpe.robot
@@ -3,7 +3,6 @@
 Library    OperatingSystem
 Library    RequestsLibrary
 Library    Collections
-Library 	      ExtendedSelenium2Library
 Resource          ../resources/test_templates/model_test_template_vcperescust.robot
 
 Test Template         Model Distribution For vCPEResCust Directory
diff --git a/robot/testsuites/model-distribution.robot b/robot/testsuites/model-distribution.robot
index fb31c20..5633cdc 100644
--- a/robot/testsuites/model-distribution.robot
+++ b/robot/testsuites/model-distribution.robot
@@ -3,7 +3,6 @@
 Library    OperatingSystem
 Library    RequestsLibrary
 Library    Collections
-Library 	      ExtendedSelenium2Library
 Resource          ../resources/test_templates/model_test_template.robot
 
 Test Template         Model Distribution For Directory
diff --git a/robot/testsuites/pnf-registration.robot b/robot/testsuites/pnf-registration.robot
index b4aeee3..6336df2 100644
--- a/robot/testsuites/pnf-registration.robot
+++ b/robot/testsuites/pnf-registration.robot
@@ -10,16 +10,7 @@
 Create A&AI antry without SO and succesfully registrate PNF, PNF entry contains: correlation ID, PNF_IPv4_address and PNF_IPv6_address
      [Documentation]  This test is checking creation A&AI entry without SO and succesfull PNF registration
      [Tags]   pnf_registrate   ete
-     [Setup]    Initialize PNF entry with correlation ID, PNF_IPv4_address and PNF_IPv6_address
+     ${PNF_entry_dict}=  Create Dictionary  correlation_id=ABCDEFG1234567  PNF_IPv4_address=13.13.13.13  PNF_IPv6_address=2001:0db8:0:0:0:0:1428:57ab
+     Log  Initial PNF entry ${PNF_entry_dict}
      Create A&AI antry without SO and succesfully registrate PNF  ${PNF_entry_dict}
-     [Teardown]  Cleanup PNF entry in A&AI  ${PNF_entry_dict}
-
-
-*** Keyword ***
-
-Initialize PNF entry with correlation ID, PNF_IPv4_address and PNF_IPv6_address
-    [Documentation]  Setup test case variable
-    ${PNF_entry_dict}=  Create Dictionary  correlation_id=ABCDEFG1234567  PNF_IPv4_address=13.13.13.13  PNF_IPv6_address=2001:0db8:0:0:0:0:1428:57ab
-    Set Test Variable  ${PNF_entry_dict}
-    Log  Initial PNF entry ${PNF_entry_dict}
-
+     [Teardown]  Cleanup PNF entry in A&AI  ${PNF_entry_dict}
\ No newline at end of file
diff --git a/robot/testsuites/portalApp.robot b/robot/testsuites/portalApp.robot
index d441e19..6a447e8 100644
--- a/robot/testsuites/portalApp.robot
+++ b/robot/testsuites/portalApp.robot
@@ -2,15 +2,16 @@
 Test Timeout    5 minute
 Documentation    This is RobotFrame work script
 Resource	../resources/portal-sdk/portalDef.robot
-Resource	../resources/portal-sdk/portalSdkDef.robot
+Resource    ../resources/portal_interface.robot
+Library        SeleniumLibrary
 Suite Setup     Generate Random User Name
+Suite Teardown    Close All Browsers
 
 *** Test Cases ***
      
 Login into Portal URL
     [TAGS]  portal
-    Close All Browsers
-    Portal admin Login To Portal GUI  
+    Portal admin Login To Portal GUI
 
 Portal Change REST URL Of X-DemoApp
     [TAGS]  portal
@@ -21,10 +22,6 @@
     [TAGS]  portal
     [Documentation]    ONAP Portal R1 functionality for AAF test
     Portal AAF new fields
-	  
-#Create Microse service onboarding
-#    [TAGS]  portal
-#	Portal admin Microservice Onboarding
 
 EP Admin widget layout reset
     [TAGS]  portal
@@ -41,17 +38,7 @@
 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
@@ -76,18 +63,6 @@
     [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
-
 Logout from Portal GUI as Portal Admin
     [TAGS]  portal
     Portal admin Logout from Portal GUI
@@ -96,19 +71,7 @@
 	 
 Login To Portal GUI as APP Admin
     [TAGS]  portal
-	Application admin Login To Portal GUI
-
-#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
+    Application admin Login To Portal GUI
 
 Logout from Portal GUI as APP Admin
     [TAGS]  portal
@@ -116,12 +79,7 @@
    
 #Standard User Test cases
    
-Login To Portal GUI as Standared User
-    [TAGS]  portal
-	Standared user Login To Portal GUI
-
 Logout from Portal GUI as Standared User
     [TAGS]  portal
 	Standared User Logout from Portal GUI
     Close All Browsers
-    
diff --git a/robot/testsuites/update_onap_page.robot b/robot/testsuites/update_onap_page.robot
index 2e14eb4..57a433b 100644
--- a/robot/testsuites/update_onap_page.robot
+++ b/robot/testsuites/update_onap_page.robot
@@ -49,7 +49,7 @@
 
     ${values}=   Create Dictionary
     ${keys}=    Get Dictionary Keys    ${oam_ip_map}
-    :for   ${oam_ip}   in    @{keys}
+    :FOR   ${oam_ip}   IN    @{keys}
     \    ${value_name}=   Get From Dictionary    ${oam_ip_map}   ${oam_ip}
     \    Set Public Ip    ${server_map}    ${oam_ip}   ${value_name}   ${values}
     Log    ${values}
@@ -82,7 +82,7 @@
 Get Public Ip
     [Arguments]   ${server_map}    ${oam_ip}
     ${servers}   Get Dictionary Values    ${server_map}
-    :for   ${server}   in   @{servers}
+    :FOR   ${server}   IN   @{servers}
     \    ${status}   ${public_ip}   Run Keyword And Ignore Error   Search Addresses   ${server}   ${oam_ip}
     \    Return From Keyword If   '${status}'=='PASS'   ${public_ip}
     Fail  ${oam_ip} Server Not Found
@@ -124,7 +124,7 @@
 
 Get V4 IP
     [Arguments]   ${ipmaps}
-    :for   ${ipmap}   in   @{ipmaps}
+    :FOR   ${ipmap}   IN   @{ipmaps}
     \    ${ip}   Get From Dictionary   ${ipmap}   addr
     \    ${version}   Get From Dictionary   ${ipmap}   version
     \    Return from Keyword if   '${version}' == '4'   ${ip}
@@ -133,7 +133,7 @@
 Get V4 IP Openstack
     [Arguments]   ${addresses}   ${testtype}
     ${ipmaps}=   Get From Dictionary   ${addresses}   ${testtype}
-    :for   ${ipmap}   in   @{ipmaps}
+    :FOR   ${ipmap}   IN   @{ipmaps}
     \    ${ip}   Get From Dictionary   ${ipmap}   addr
     \    ${version}   Get From Dictionary   ${ipmap}   version
     \    Return from Keyword if   '${version}'=='4'   ${ip}
@@ -141,7 +141,7 @@
 
 Get V4 IP Openstack 2
     [Arguments]   ${ipmaps}   ${testtype}
-    :for   ${ipmap}   in   @{ipmaps}
+    :FOR   ${ipmap}   IN   @{ipmaps}
     \    ${type}   Get From Dictionary   ${ipmap}   OS-EXT-IPS:type
     \    ${ip}   Get From Dictionary   ${ipmap}   addr
     \    ${version}   Get From Dictionary   ${ipmap}   version
