diff --git a/test/csit/plans/portal-sdk/testsuite/.env b/test/csit/plans/portal-sdk/testsuite/.env
new file mode 100644
index 0000000..1e882a0
--- /dev/null
+++ b/test/csit/plans/portal-sdk/testsuite/.env
@@ -0,0 +1,22 @@
+# Environment settings
+# used by docker-compose AND by other shell scripts
+# Host directory with config files
+
+LOGS_DIR=./logs
+PROPS_DIR=./properties
+
+
+# Directory within containers
+WEBAPPS_DIR=/opt/apache-tomcat-8.0.37/webapps
+
+# Following are ALSO used in demo/boot/portal_vm_init.sh
+EP_IMG_NAME=onap/portal-apps
+DB_IMG_NAME=onap/portal-db
+WMS_IMG_NAME=onap/portal-wms
+CLI_IMG_NAME=onap/cli
+
+# Tag all images with this
+PORTAL_TAG=1.3.0
+DOCKER_IMAGE_VERSION=1.3-STAGING-latest
+CLI_DOCKER_VERSION=1.1-STAGING-latest
+NEXUS_DOCKER_REPO=nexus3.onap.org:10003
diff --git a/test/csit/plans/portal-sdk/testsuite/docker-compose.yml b/test/csit/plans/portal-sdk/testsuite/docker-compose.yml
new file mode 100644
index 0000000..b92766f
--- /dev/null
+++ b/test/csit/plans/portal-sdk/testsuite/docker-compose.yml
@@ -0,0 +1,95 @@
+# docker-compose for ONAP portal containers: database, microservice, portal apps.
+# Relies on .env file in current directory.
+# Works in multiple environments; does not pull from a Nexus registry.
+# Exposes the portal apps docker (but not DB nor WMS dockers) on the host network.
+# Images must be pulled from ONAP Nexus registry after logging in like this:
+# docker login -u USER -p PASS nexus3.onap.org:10001
+
+version: '2.0'
+
+services:
+
+  cli:
+    image: ${CLI_IMG_NAME}:${PORTAL_TAG}
+    environment:
+      CLI_MODE: 'daemon'
+    ports:
+      - 8080:80
+      - 9090:8080
+    logging:
+      driver: json-file
+
+  # Config files may use hostname "portal-db"
+  portal-db:
+    image: ${DB_IMG_NAME}:${PORTAL_TAG}
+    environment:
+      MYSQL_ROOT_PASSWORD: 'Aa123456'
+    expose:
+      - 3306
+    volumes:
+      # Just specify a path and let the Engine create a volume
+      - /var/lib/mysql
+    logging:
+      driver: json-file
+
+  # An environment variable here CAN override the database URL;
+  # instead the value in the config file uses hostname from above
+  portal-wms:
+    image: ${WMS_IMG_NAME}:${PORTAL_TAG}
+    expose:
+      - 8082
+    links:
+      - portal-db
+    depends_on:
+      - portal-db
+    volumes:
+      - ${PROPS_DIR}/ECOMPWIDGETMS/application.properties:/application.properties
+    command:
+      - /wait-for.sh
+      - -t
+      - "420"
+      - portal-db:3306
+      - --
+      - /start-wms-cmd.sh
+    logging:
+      driver: json-file
+
+  # Environment variables here CANNOT override the database URL because
+  # two apps use identical configuration keys with different values
+  portal-apps:
+    image: ${EP_IMG_NAME}:${PORTAL_TAG}
+    expose:
+      - 8989
+    ports:
+      - 8989:8080
+      - 8010:8009
+      - 8006:8005
+    links:
+      - portal-db
+      - portal-wms
+    depends_on:
+      - portal-db
+      - portal-wms
+    volumes:
+      - ${PROPS_DIR}/ECOMPPORTALAPP/system.properties:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/conf/system.properties
+      - ${PROPS_DIR}/ECOMPPORTALAPP/fusion.properties:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/fusion/conf/fusion.properties
+      - ${PROPS_DIR}/ECOMPPORTALAPP/portal.properties:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/classes/portal.properties
+      - ${PROPS_DIR}/ECOMPPORTALAPP/openid-connect.properties:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/classes/openid-connect.properties
+      - ${PROPS_DIR}/ECOMPPORTALAPP/logback.xml:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/classes/logback.xml
+      - ${PROPS_DIR}/ECOMPSDKAPP/fusion.properties:${WEBAPPS_DIR}/ECOMPSDKAPP/WEB-INF/fusion/conf/fusion.properties
+      - ${PROPS_DIR}/ECOMPSDKAPP/system.properties:${WEBAPPS_DIR}/ECOMPSDKAPP/WEB-INF/conf/system.properties
+      - ${PROPS_DIR}/ECOMPSDKAPP/portal.properties:${WEBAPPS_DIR}/ECOMPSDKAPP/WEB-INF/classes/portal.properties
+      - ${PROPS_DIR}/ECOMPDBCAPP/system.properties:${WEBAPPS_DIR}/ECOMPDBCAPP/WEB-INF/conf/system.properties
+      - ${PROPS_DIR}/ECOMPDBCAPP/portal.properties:${WEBAPPS_DIR}/ECOMPDBCAPP/WEB-INF/classes/portal.properties
+      - ${PROPS_DIR}/ECOMPDBCAPP/dbcapp.properties:${WEBAPPS_DIR}/ECOMPDBCAPP/WEB-INF/dbcapp/dbcapp.properties
+      - ${PROPS_DIR}/ECOMPDBCAPP/fusion.properties:${WEBAPPS_DIR}/ECOMPDBCAPP/WEB-INF/fusion/conf/fusion.properties
+      - ${LOGS_DIR}:/opt/apache-tomcat-8.0.37/logs
+    command:
+      - /wait-for.sh
+      - -t
+      - "420"
+      - portal-db:3306
+      - --
+      - /start-apps-cmd.sh
+    logging:
+      driver: json-file
diff --git a/test/csit/plans/portal-sdk/testsuite/setup.sh b/test/csit/plans/portal-sdk/testsuite/setup.sh
new file mode 100644
index 0000000..71d1105
--- /dev/null
+++ b/test/csit/plans/portal-sdk/testsuite/setup.sh
@@ -0,0 +1,166 @@
+#!/bin/bash
+# Starts docker containers for ONAP Portal
+# This version for Amsterdam/R1 of Portal, uses docker-compose.
+# Temporarily maintained in portal/deliveries area;
+# replicated from the ONAP demo/boot area due to release concerns.
+
+# Start Xvfb
+echo -e "Starting Xvfb on display ${DISPLAY} with res ${RES}"
+Xvfb ${DISPLAY} -ac -screen 0 ${RES} +extension RANDR &
+XVFBPID=$!
+# Get pid of this spawned process to make sure we kill the correct process later
+
+#Get current IP of VM
+HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}')
+export HOST_IP=${HOST_IP}
+
+if ! ifconfig docker0; then
+if ! ifconfig ens3; then
+echo "Could not determine IP address"
+exit 1
+fi
+export DOCKER_IP_IP=`ifconfig ens3 | awk -F: '/inet addr/ {gsub(/ .*/,"",$2); print $2}'`
+else
+export DOCKER_IP=`ifconfig docker0 | awk -F: '/inet addr/ {gsub(/ .*/,"",$2); print $2}'`
+fi
+echo $DOCKER_IP
+
+
+# Pass any variables required by Robot test suites in ROBOT_VARIABLES
+#ROBOT_VARIABLES="-v MOCK_IP:${MOCK_IP} -v IP:${IP} -v POLICY_IP:${POLICY_IP} -v DOCKER_IP:${DOCKER_IP}"
+#export PORTAL_IP=${PORTAL_IP}
+ROBOT_VARIABLES="-v MOCK_IP:${MOCK_IP} -v IP:${IP}  -v DOCKER_IP:${DOCKER_IP}"
+export DOCKER_IP=${DOCKER_IP}
+
+
+# be verbose
+set -x
+
+# Establish environment variables
+NEXUS_USERNAME=docker
+NEXUS_PASSWD=docker
+NEXUS_DOCKER_REPO=nexus3.onap.org:10003
+
+
+
+CURR="$(pwd)"
+git clone http://gerrit.onap.org/r/portal
+
+# Refresh configuration and scripts
+cd portal
+git pull
+cd deliveries
+rm .env
+rm docker-compose.yml
+cp $CURR/.env .
+cp $CURR/docker-compose.yml .
+#cd  properties_rackspace/ECOMPPORTALAPP
+#rm  system.properties
+#cp  $CURR/system.properties .
+#cd ../..
+# Get image names used below from docker-compose environment file
+source $CURR/.env
+
+# Copy property files to new directory
+mkdir -p $PROPS_DIR
+cp -r properties_rackspace/* $PROPS_DIR
+# Also create logs directory
+mkdir -p $LOGS_DIR
+
+
+# Refresh images
+docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
+docker pull $NEXUS_DOCKER_REPO/${DB_IMG_NAME}:$DOCKER_IMAGE_VERSION
+docker pull $NEXUS_DOCKER_REPO/${EP_IMG_NAME}:$DOCKER_IMAGE_VERSION
+docker pull $NEXUS_DOCKER_REPO/${WMS_IMG_NAME}:$DOCKER_IMAGE_VERSION
+docker pull $NEXUS_DOCKER_REPO/$CLI_IMG_NAME:$CLI_DOCKER_VERSION
+
+# Tag them as expected by docker-compose file
+docker tag $NEXUS_DOCKER_REPO/${DB_IMG_NAME}:$DOCKER_IMAGE_VERSION $DB_IMG_NAME:$PORTAL_TAG
+docker tag $NEXUS_DOCKER_REPO/${EP_IMG_NAME}:$DOCKER_IMAGE_VERSION $EP_IMG_NAME:$PORTAL_TAG
+docker tag $NEXUS_DOCKER_REPO/${WMS_IMG_NAME}:$DOCKER_IMAGE_VERSION $WMS_IMG_NAME:$PORTAL_TAG
+docker tag $NEXUS_DOCKER_REPO/$CLI_IMG_NAME:$CLI_DOCKER_VERSION $CLI_IMG_NAME:$PORTAL_TAG
+
+
+# compose is not in /usr/bin
+docker-compose down
+docker-compose up -d
+
+#${HOSTNAME}="portal.api.simpledemo.openecomp.org"
+#echo "$HOST_IP ${HOSTNAME}" >> /etc/hosts
+
+#echo "$HOST_IP portal.api.simpledemo.openecomp.org" >> /etc/hosts
+#sudo sed -i "2i$HOST_IP  portal.api.simpledemo.openecomp.org"   /etc/hosts
+
+#HOST="portal.api.simpledemo.openecomp.org"
+#sudo sed -i "/$HOST/ s/.*/$HOST_IP\t$HOST/g" /etc/hosts
+
+# insert/update hosts entry
+ip_address=$HOST_IP
+host_name="portal.api.simpledemo.openecomp.org"
+# find existing instances in the host file and save the line numbers
+matches_in_hosts="$(grep -n $host_name /etc/hosts | cut -f1 -d:)"
+host_entry="${ip_address} ${host_name}"
+
+echo "$host_entry"
+
+if [ ! -z "$matches_in_hosts" ]
+then
+echo "Updating existing hosts entry."
+# iterate over the line numbers on which matches were found
+while read -r line_number; do
+# replace the text of each line with the desired host entry
+sudo sed -i '' "${line_number}s/.*/${host_entry} /" /etc/hosts
+echo "${line_number}   ${host_entry}"
+done <<< "$matches_in_hosts"
+else
+echo "Adding new hosts entry."
+echo "$host_entry" | sudo tee -a /etc/hosts > /dev/null
+fi
+
+sleep 3m
+
+# WAIT 5 minutes maximum and test every 5 seconds if Portal up using HealthCheck API
+TIME_OUT=500
+INTERVAL=20
+TIME=0
+while [ "$TIME" -lt "$TIME_OUT" ]; do
+  response=$(curl --write-out '%{http_code}' --silent --output /dev/null http://portal.api.simpledemo.openecomp.org:8989/ECOMPPORTAL/portalApi/healthCheck); echo $response
+
+  if [ "$response" == "200" ]; then
+    echo Portal and its database well started in $TIME seconds
+    break;
+  fi
+
+  echo Sleep: $INTERVAL seconds before testing if Portal is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds
+  sleep $INTERVAL
+  TIME=$(($TIME+$INTERVAL))
+done
+
+if [ "$TIME" -ge "$TIME_OUT" ]; then
+   echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for tests...
+fi
+
+#sleep 3m
+
+
+
+#if [ "$TIME" -ge "$TIME_OUT" ]; then
+#   echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for tests...
+#fi
+
+
+
+
+
+#Get current IP of VM
+HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}')
+export HOST_IP=${HOST_IP}
+
+docker logs deliveries_portal-db_1
+docker logs deliveries_portal-apps_1
+docker logs deliveries_portal-wms_1
+
+
+
+
diff --git a/test/csit/plans/portal-sdk/testsuite/teardown.sh b/test/csit/plans/portal-sdk/testsuite/teardown.sh
new file mode 100644
index 0000000..e0431a7
--- /dev/null
+++ b/test/csit/plans/portal-sdk/testsuite/teardown.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+#
+# Copyright 2017 AT&T Intellectual Property. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+docker kill $(docker ps -q)
+
+
diff --git a/test/csit/plans/portal-sdk/testsuite/testplan.txt b/test/csit/plans/portal-sdk/testsuite/testplan.txt
new file mode 100644
index 0000000..27f8af3
--- /dev/null
+++ b/test/csit/plans/portal-sdk/testsuite/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration.git]/test/csit/tests/.
+# Place the suites in run order.
+portal-sdk/testsuites
diff --git a/test/csit/tests/portal-sdk/testsuites/__init__.robot b/test/csit/tests/portal-sdk/testsuites/__init__.robot
new file mode 100644
index 0000000..b1df467
--- /dev/null
+++ b/test/csit/tests/portal-sdk/testsuites/__init__.robot
@@ -0,0 +1,2 @@
+*** Settings ***
+Documentation    Portal-SDK - Testcases
diff --git a/test/csit/tests/portal-sdk/testsuites/test1.robot b/test/csit/tests/portal-sdk/testsuites/test1.robot
new file mode 100644
index 0000000..ad332c5
--- /dev/null
+++ b/test/csit/tests/portal-sdk/testsuites/test1.robot
@@ -0,0 +1,148 @@
+*** Settings ***
+Documentation    This is RobotFrame work script
+Library    ExtendedSelenium2Library
+Library    OperatingSystem
+Library     	XvfbRobot
+
+
+*** Variables ***
+${PORTAL_URL}		http://portal.api.simpledemo.openecomp.org:8989
+${PORTAL_ENV}            /ECOMPPORTAL
+${PORTAL_LOGIN_URL}                ${PORTAL_URL}${PORTAL_ENV}/login.htm
+${PORTAL_HOME_PAGE}        ${PORTAL_URL}${PORTAL_ENV}/applicationsHome
+${PORTAL_MICRO_ENDPOINT}    ${PORTAL_URL}${PORTAL_ENV}/commonWidgets
+${PORTAL_HOME_URL}                ${PORTAL_URL}${PORTAL_ENV}/applicationsHome
+${GLOBAL_APPLICATION_ID}           robot-functional
+${GLOBAL_PORTAL_ADMIN_USER}		demo
+${GLOBAL_PORTAL_ADMIN_PWD}		demo123456!
+${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 ***
+
+Portal admin Login To Portal GUI
+    [Documentation]   Logs into Portal GUI
+    ## Setup Browser Now being managed by test case
+#    Setup Browser
+	Start Virtual Display    1920    1080
+	Open Browser    ${PORTAL_LOGIN_URL}    chrome
+#    Go To    ${PORTAL_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_URL}${PORTAL_ENV}
+   # Handle Proxy Warning
+    Title Should Be    Login
+    Input Text    xpath=//input[@ng-model='loginId']    ${GLOBAL_PORTAL_ADMIN_USER}
+    Input Password    xpath=//input[@ng-model='password']    ${GLOBAL_PORTAL_ADMIN_PWD}
+    Click Link    xpath=//a[@id='loginBtn']
+    Wait Until Page Contains Element    xpath=//img[@alt='Onap Logo']    ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}    
+    Log    Logged in to ${PORTAL_URL}${PORTAL_ENV}
+
+
+Portal Admin Navigation Application Link Tab    
+    [Documentation]   Logs into Portal GUI as Portal admin
+    
+    Click Element    xpath=.//h3[contains(text(),'xDemo App')]/following::div[1]
+    Page Should Contain    ONAP Portal
+   
+    
+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 Element    xpath=(.//span[@id='tab-Home'])[1]
+    
+Click Sample Pages and validate sub Menu  
+     [Documentation]   Click Sample Pages
+    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  
+    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 Link    xpath=//a[@id='parent-item-Home']
+    
+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   
+    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
+    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 
+    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
+    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   
+    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  
+    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
+    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  
+     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          
+    
+       
+Teardown  
+    [Documentation]    Close All Open browsers     
+    Close All Browsers    
+    
+
+    
+
+    
+
+*** Keywords ***
