Add CDT CSIT support. 01/57101/1
authorAaron Hay <ah415j@att.com>
Sat, 21 Jul 2018 19:46:18 +0000 (15:46 -0400)
committerAaron Hay <ah415j@att.com>
Sat, 21 Jul 2018 19:48:36 +0000 (15:48 -0400)
Add six CDT CSIT tests for APPC.

Change-Id: I868541f014167973acb9bb5196cb6dbadc41efe0
Issue-ID: APPC-1091
Signed-off-by: Aaron Hay <ah415j@att.com>
test/csit/plans/appc/healthcheck/setup.sh
test/csit/plans/appc/healthcheck/testplan.txt
test/csit/tests/appc/cdt/__init__.robot [new file with mode: 0644]
test/csit/tests/appc/cdt/cdt.robot [new file with mode: 0644]
test/csit/tests/appc/cdt/common.robot [new file with mode: 0644]
test/csit/tests/appc/cdt/data/pd_Configure_vUSP - Revenue Assurance_0.0.1V.yaml [new file with mode: 0755]
test/csit/tests/appc/cdt/data/reference_AllAction_HealthCheckAnsible_0.0.1V.json [new file with mode: 0755]
test/csit/tests/appc/cdt/data/reference_AllAction_vUSP - Revenue Assurance_0.0.1V.json [new file with mode: 0755]
test/csit/tests/appc/cdt/data/template_Configure_vUSP - Revenue Assurance_0.0.1V.json [new file with mode: 0755]
test/csit/tests/appc/cdt/data/vUSP_User Input Spreadsheet v.07.xlsx [new file with mode: 0755]

index a0683fb..aac9e99 100755 (executable)
@@ -20,8 +20,8 @@
 SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 source ${WORKSPACE}/test/csit/scripts/appc/script1.sh
 
-export APPC_DOCKER_IMAGE_VERSION=1.4.0-SNAPSHOT-latest
-export CCSDK_DOCKER_IMAGE_VERSION=0.2-STAGING-latest
+export APPC_DOCKER_IMAGE_VERSION=1.3.0
+export CCSDK_DOCKER_IMAGE_VERSION=0.2.4
 export BRANCH=beijing
 export SOLUTION_NAME=onap
 
index 2a8c1ea..97d8278 100644 (file)
@@ -1,4 +1,5 @@
 # Test suites are relative paths under [integration.git]/test/csit/tests/.
 # Place the suites in run order.
 appc/healthcheck
+appc/cdt
 
diff --git a/test/csit/tests/appc/cdt/__init__.robot b/test/csit/tests/appc/cdt/__init__.robot
new file mode 100644 (file)
index 0000000..b03cdae
--- /dev/null
@@ -0,0 +1,15 @@
+# This does setup and tear down of the suite
+
+# NOTE 1: The subdirectories must include a symbolic link to this file
+#         in order to run an individual .robot file (as compared to directory)
+# NOTE 2: The Resource file must also be included in the test case .robot files
+
+*** Settings ***
+
+# Include a file of common variables, keywords and other settings
+| Resource | common.robot
+
+#| Suite Setup  | Run Keywords |  Setup1 | Setup2
+| Suite Setup  | Run Keywords |  Setup2 | Setup1
+| Suite Teardown | Close all browsers
+
diff --git a/test/csit/tests/appc/cdt/cdt.robot b/test/csit/tests/appc/cdt/cdt.robot
new file mode 100644 (file)
index 0000000..03ba3a4
--- /dev/null
@@ -0,0 +1,187 @@
+*** Settings ***
+| Resource | common.robot
+
+*** Test Cases ***
+# Based on Robot test cases created by Dawn Zelinski (dz2438@att.com).
+| Verify Home page and links
+# Access Home page - All tests files use this as starting point
+| | RefreshMainURL
+# Verify the links
+| | Page should contain link | Home
+| | Page should contain link | MY VNFs
+| | Page should contain link | Test
+| | Page should contain link | About us
+| | Page Should Not Contain | ${USER_ID}
+# Verify MY VNFs link will will ask for user entry
+| | Click Link | MY VNFs
+| | Wait Until Element Is Visible | id=userId | ${LONGTIME}
+| | Input Text | id=userId | ${USERID}
+| | Click Button | Submit
+| | Page Should Contain | ${USER_ID}
+| Verify Logout of user id
+# Access Home page - All tests files use this as starting point
+| | RefreshMainURL
+| | Page Should Contain | ${USER_ID}
+# Log out of user id and then see if My Vnfs asks for user entry
+| | Click Element | id=more-button
+# Line below also works.
+#| | Click Element | xpath=(//*[@class='android-more-button mdl-button mdl-js-button mdl-button--primary'])
+# Now Logout
+| | Wait Until Element Is Visible | xpath=(//*[@class='mdl-menu__item mdl-js-ripple-effect']) | ${LONGTIME}
+| | Click Element | xpath=(//*[@class='mdl-menu__item mdl-js-ripple-effect'])
+| | Page Should Not Contain | ${USER_ID}
+# Verify MY VNFs link will will ask for user entry
+| | Click Link | MY VNFs
+| | Wait Until Element Is Visible | id=userId | ${LONGTIME}
+| | Input Text | id=userId | ${USERID}
+| | Click Button | Submit
+| | Page Should Contain | ${USER_ID}
+
+| Test Uploading an existing VNF Reference file that was previously downloaded
+# Access Home page - All tests files use this as starting point
+| | RefreshMainURL
+| | Click Link | MY VNFs
+# Verify button element is ready before clicking it.
+| | Wait Until Page Contains Element | xpath=(//*[@class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary']) | ${LONGTIME}
+| | Click Button | Create New VNF Type or VNFC Type
+| | Page Should Contain | Enter VNF type and VNFC to proceed
+| | Page Should Contain Element | id=vnfType
+# Proceed without entering any new information
+| | Click Button | Proceed anyway
+| | Page Should Contain Element | id=cmbAction
+| | Click Button | Upload Reference File
+| | Choose File | id=inputFile |  ${CURDIR}/data/reference_AllAction_HealthCheckAnsible_0.0.1V.json
+| | Sleep | ${SHORTTIME}
+# Verify the screen is populated with the HealthCheck (action), dawnMay17 (VNF Type and ANSIBLE (device protocol)
+| | ${theVNFType} | Get Value | id=txtVnfType
+| | ${theAction} | Get Selected List Value | id=cmbAction
+| | ${theProtocol} | Get Selected List Value | id=txtDeviceProtocol
+| | Should Be Equal As Strings | ${theVNFType} | csit
+| | Should Be Equal As Strings | ${theAction} | HealthCheck
+| | Should Be Equal As Strings | ${theProtocol} | ANSIBLE
+
+| Test Creation of VNF
+# Access Home page - All tests files use this as starting point
+| | RefreshMainURL
+| | Click Link | MY VNFs
+# Verify button element is ready before clicking it.
+| | Wait Until Page Contains Element | xpath=(//*[@class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary']) | ${LONGTIME}
+| | Click Button | Create New VNF Type or VNFC Type
+| | Page Should Contain | Enter VNF type and VNFC to proceed
+| | Page Should Contain Element | id=vnfType
+# Create a date to use in VNF Type to make it unique
+| | ${THEDATE}  | Get Current Date | result_format=%m%d%H%M%S | exclude_millis=True
+| | Input Text | id=vnfType | csit${THEDATE}
+| | Click Button | Next
+| | Page Should Contain Element | id=cmbAction
+# Verify 17 selections available
+| | Select From List By Index | id=cmbAction | 17
+# Select HealthCheck and ANSIBLE and verify it gets created
+| | Select From List By Value | id=cmbAction | HealthCheck
+| | Select From List By Value | id=txtDeviceProtocol | ANSIBLE
+| | Click Button | saveToAppc
+| | Sleep | ${SHORTTIME}
+#| | Wait Until Page Contains | successfully uploaded the Reference Data | ${LONGTIME}
+| | Click Link | MY VNFs
+| | Page Should Contain | csit${THEDATE}
+
+| Test Creation of VNF with multiple VNFCs
+# This test is based on the 1806 Releases,
+# APPC-C Design Tool User Guide for Self-Service Onboarding (section 5.1)
+# Access Home page - All tests files use this as starting point
+| | RefreshMainURL
+| | Click Link | MY VNFs
+# Verify button element is ready before clicking it.
+| | Wait Until Page Contains Element | xpath=(//*[@class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary']) | ${LONGTIME}
+| | Click Button | Create New VNF Type or VNFC Type
+| | Wait Until Page Contains Element | id=vnfType | ${LONGTIME}
+# Create a date to use in VNF Type to make it unique
+| | ${THEDATE}  | Get Current Date | result_format=%m%d%H%M%S | exclude_millis=True
+| | Input Text | id=vnfType | csit${THEDATE}
+| | Click Button | Next
+| | Wait Until Page Contains Element | id=cmbAction | ${LONGTIME}
+# Populate the action and protocol
+| | Select From List By Value | id=cmbAction | Configure
+| | Select From List By Value | id=txtDeviceProtocol | NETCONF-XML
+# Populate the other VNF descriptors
+| | Select From List By Value | name=template | Y
+| | Input Text | name=loginUserName | ${USER_ID}
+| | Input Text | name=portNumber | 777
+# Describe the first VNFC Type and enter the number of VMs for this VNFC Type
+| | Input Text | name=samplevnfcType | VNFC_type_A
+| | Input Text | name=samplevnfcFunctionCode | aaa
+| | Select From List By Value | name=sampleIpaddress | Y
+| | Select From List By Value | name=sampleGroupNotation | first-vnfc-name
+| | Input Text | name=sampleGroupValue | pair
+| | Input Text | name=txtNumber23 | 2
+| | Click Button | Add VM Information
+| | Wait Until Page Contains | VM Number: 2 | ${LONGTIME}
+# Clear information about the first VNFC
+| | Click Button | Clear VNFC Info
+# Describe the second VNFC Type and enter the number of VMs for this VNFC Type
+| | Input Text | name=samplevnfcType | VNFC_type_B
+| | Input Text | name=samplevnfcFunctionCode | bbb
+| | Select From List By Value | name=sampleIpaddress | Y
+| | Select From List By Value | name=sampleGroupNotation | first-vnfc-name
+| | Input Text | name=sampleGroupValue | pair
+| | Input Text | name=txtNumber23 | 2
+| | Click Button | Add VM Information
+| | Wait Until Page Contains | VM Number: 4 | ${LONGTIME}
+| | Click Button | saveToAppc
+| | Sleep | ${SHORTTIME}
+#| | Wait Until Page Contains | successfully uploaded the Reference Data | ${LONGTIME}
+| | Click Link | MY VNFs
+| | Wait Until Page Contains | ARTIFACT NAME | ${LONGTIME}
+| | Page Should Contain | csit${THEDATE}
+
+| Test Creation of VNF with VNFC box checked
+# This test is based on the 1806 Releases,
+# APPC-C Design Tool User Guide for Self-Service Onboarding (section 5.1)
+# Access Home page - All tests files use this as starting point
+| | RefreshMainURL
+| | Click Link | MY VNFs
+# Verify button element is ready before clicking it.
+| | Wait Until Page Contains Element | xpath=(//*[@class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary']) | ${LONGTIME}
+| | Click Button | Create New VNF Type or VNFC Type
+| | Wait Until Page Contains Element | id=vnfType | ${LONGTIME}
+# Create a date to use in VNF Type to make it unique
+| | ${THEDATE}  | Get Current Date | result_format=%m%d%H%M%S | exclude_millis=True
+| | Input Text | id=vnfType | csit${THEDATE}
+# Check the box indicating VNFC templates
+| | Select Checkbox | id=vnfcRequired
+| | Input Text | id=vnfcType | csitVNFC
+| | Click Button | Next
+| | Wait Until Page Contains Element | id=cmbAction | ${LONGTIME}
+# Populate the action and protocol
+| | Select From List By Value | id=cmbAction | Configure
+| | Select From List By Value | id=txtDeviceProtocol | NETCONF-XML
+# Populate the other VNF descriptors
+| | Select From List By Value | name=template | Y
+| | Input Text | name=loginUserName | ${USER_ID}
+| | Input Text | name=portNumber | 777
+# Describe the first VNFC Type and enter the number of VMs for this VNFC Type
+| | Input Text | name=samplevnfcType | csitVNFC
+| | Input Text | name=samplevnfcFunctionCode | aaa
+| | Select From List By Value | name=sampleIpaddress | Y
+| | Select From List By Value | name=sampleGroupNotation | first-vnfc-name
+| | Input Text | name=sampleGroupValue | pair
+| | Input Text | name=txtNumber23 | 2
+| | Click Button | Add VM Information
+| | Wait Until Page Contains | VM Number: 2 | ${LONGTIME}
+# Clear information about the first VNFC
+| | Click Button | Clear VNFC Info
+# Describe the second VNFC Type and enter the number of VMs for this VNFC Type
+| | Input Text | name=samplevnfcType | csitVNFC
+| | Input Text | name=samplevnfcFunctionCode | bbb
+| | Select From List By Value | name=sampleIpaddress | Y
+| | Select From List By Value | name=sampleGroupNotation | first-vnfc-name
+| | Input Text | name=sampleGroupValue | pair
+| | Input Text | name=txtNumber23 | 2
+| | Click Button | Add VM Information
+| | Wait Until Page Contains | VM Number: 4 | ${LONGTIME}
+| | Click Button | saveToAppc
+| | Sleep | ${SHORTTIME}
+| | Click Link | MY VNFs
+| | Wait Until Page Contains | ARTIFACT NAME | ${LONGTIME}
+| | Page Should Contain | csit${THEDATE}
+
diff --git a/test/csit/tests/appc/cdt/common.robot b/test/csit/tests/appc/cdt/common.robot
new file mode 100644 (file)
index 0000000..3492924
--- /dev/null
@@ -0,0 +1,60 @@
+# CDT Regression Testing # Set the MAINURL via the command line
+# run as:  
+# 1) execute a .profile that sets and exports DEV2 and DEV4
+# 2) robot --variable MAINURL:$DEV# filename.robot
+
+
+*** Variables ***
+
+#  ${MAINURL} is now set from the command line per above
+|  ${BROWSER}  |  chrome
+|  ${SHORTTIME} | 5s
+|  ${LONGTIME} | 90s
+|  ${TENMINUTES} | 600s
+#|  ${FFPROFILE_DIR} |  /home/dvz/.mozilla/firefox/s87c07vn.AppCZoomed50
+|  ${MAINURL} | http://localhost:8080/index.html
+|  ${USER_ID} | csituser
+
+*** Keywords ***
+|  Setup1  | Open browser | ${MAINURL} | ${BROWSER} | | | | |
+|  Setup2  | SLEEP | 2s
+
+# Refresh the ${MAINURL} which is used as starting point within each test file
+| RefreshMainURL
+| | Go To | ${MAINURL}
+| | Wait Until Page Contains | WELCOME TO CONTROLLER DESIGN TOOL | ${LONGTIME}
+
+
+# Make sure you can get to APPC server - Wrap in implicit wait then reset
+# Want to wait a few seconds to see if Server error appears. 
+# Can't add an explicit wait to "Page should not contain"
+| CheckForServerError 
+| | [Arguments] | ${WAITTIME} 
+| | Set Selenium Implicit Wait  | ${WAITTIME} 
+| | Page Should Not Contain | Error in connecting to APPC Server
+| | Set Selenium Implicit Wait  | 0
+
+
+| ClickButtonByContent
+| | [Arguments] |  ${TEXT}
+| | ${RETVAL} | Execute Javascript | function clickButtonByTextContent(buttontext) { var buttons = document.querySelectorAll('button'); for (var i=0, l=buttons.length; i<l; i++) { if (buttons[i].firstChild.nodeValue == buttontext) { buttons[i].click(); return 0 } } return 1 }; var retval=clickButtonByTextContent('${TEXT}'); return retval;
+| | Return From Keyword | ${RETVAL}
+
+| ClickButtonByClassName
+| | [Arguments] |  ${TEXT}
+| | ${RETVAL} | Execute Javascript | function clickButtonByClassName(theclass) { var buttons = document.querySelectorAll('button'); for (var i=0, l=buttons.length; i<l; i++) { if (buttons[i].firstChild.nodeValue == theclass) { buttons[i].click(); return 0 } } return 1 }; var retval=clickButtonByClassName(${TEXT}); return retval;
+| | Return From Keyword | ${RETVAL}
+
+| EnterElementByClassName
+| | [Arguments] |  ${THECLASS} | ${INPUTVALUE}
+| | ${RETVAL} | Execute Javascript | function enterElementByClassName(theclass,theinput) { var element  = document.querySelector('.'+theclass).value = theinput; return 0 }; var retval=enterElementByClassName(${THECLASS},${INPUTVALUE}); return retval;
+| | Return From Keyword | ${RETVAL}
+
+*** Settings ***
+
+|  Library  |  ExtendedSelenium2Library
+|  Library  |  OperatingSystem
+#|  Library  |  Dialogs
+|  Library  |  DateTime
+
+
diff --git a/test/csit/tests/appc/cdt/data/pd_Configure_vUSP - Revenue Assurance_0.0.1V.yaml b/test/csit/tests/appc/cdt/data/pd_Configure_vUSP - Revenue Assurance_0.0.1V.yaml
new file mode 100755 (executable)
index 0000000..cea00f0
--- /dev/null
@@ -0,0 +1,13 @@
+---
+kind: "Property Definition"
+version: V1
+vnf-parameter-list:
+- name: vnf_name
+  type: null
+  description: dawnDescript
+  required: null
+  default: null
+  source: Manual
+  rule-type: null
+  request-keys: null
+  response-keys: null
diff --git a/test/csit/tests/appc/cdt/data/reference_AllAction_HealthCheckAnsible_0.0.1V.json b/test/csit/tests/appc/cdt/data/reference_AllAction_HealthCheckAnsible_0.0.1V.json
new file mode 100755 (executable)
index 0000000..90fd0ac
--- /dev/null
@@ -0,0 +1,48 @@
+{
+       "reference_data": [
+               {
+                       "action": "HealthCheck",
+                       "action-level": "vnf",
+                       "scope": {
+                               "vnf-type": "csit",
+                               "vnfc-type-list": [],
+                               "vnfc-type": ""
+                       },
+                       "template": "Y",
+                       "vm": [],
+                       "device-protocol": "ANSIBLE",
+                       "user-name": "",
+                       "port-number": "",
+                       "artifact-list": [
+                               {
+                                       "artifact-name": "template_HealthCheck_dawnMay17_0.0.1V.json",
+                                       "artifact-type": "config_template"
+                               },
+                               {
+                                       "artifact-name": "pd_HealthCheck_dawnMay17_0.0.1V.yaml",
+                                       "artifact-type": "parameter_definitions"
+                               },
+                               {
+                                       "artifact-name": "param_HealthCheck_dawnMay17_0.0.1V.json",
+                                       "artifact-type": "param_values"
+                               }
+                       ],
+                       "scopeType": "vnf-type"
+               },
+               {
+                       "action": "AllAction",
+                       "action-level": "vnf",
+                       "scope": {
+                               "vnf-type": "csit",
+                               "vnfc-type-list": [],
+                               "vnfc-type": ""
+                       },
+                       "artifact-list": [
+                               {
+                                       "artifact-name": "reference_AllAction_dawnMay17_0.0.1V.json",
+                                       "artifact-type": "reference_template"
+                               }
+                       ]
+               }
+       ]
+}
diff --git a/test/csit/tests/appc/cdt/data/reference_AllAction_vUSP - Revenue Assurance_0.0.1V.json b/test/csit/tests/appc/cdt/data/reference_AllAction_vUSP - Revenue Assurance_0.0.1V.json
new file mode 100755 (executable)
index 0000000..f78debe
--- /dev/null
@@ -0,0 +1,124 @@
+{
+       "reference_data": [
+               {
+                       "action": "Configure",
+                       "action-level": "vnf",
+                       "scope": {
+                               "vnf-type": "vUSP - Revenue Assurance",
+                               "vnfc-type": ""
+                       },
+                       "template": "Y",
+                       "vm": [
+                               {
+                                       "vm-instance": 1,
+                                       "vnfc": [
+                                               {
+                                                       "vnfc-instance": "1",
+                                                       "vnfc-function-code": "rar",
+                                                       "ipaddress-v4-oam-vip": "Y",
+                                                       "group-notation-type": "first-vnfc-name",
+                                                       "group-notation-value": "pair",
+                                                       "vnfc-type": "vUSP vRAR"
+                                               }
+                                       ]
+                               },
+                               {
+                                       "vm-instance": 2,
+                                       "vnfc": [
+                                               {
+                                                       "vnfc-instance": "1",
+                                                       "vnfc-function-code": "rar",
+                                                       "ipaddress-v4-oam-vip": "Y",
+                                                       "group-notation-type": "first-vnfc-name",
+                                                       "group-notation-value": "pair",
+                                                       "vnfc-type": "vUSP vRAR"
+                                               }
+                                       ]
+                               }
+                       ],
+                       "device-protocol": "ANSIBLE",
+                       "user-name": "att",
+                       "port-number": "5000",
+                       "artifact-list": [
+                               {
+                                       "artifact-name": "template_Configure_vUSP-RevenueAssurance_0.0.1V..json",
+                                       "artifact-type": "config_template"
+                               },
+                               {
+                                       "artifact-name": "pd_Configure_vUSP-RevenueAssurance_0.0.1V.yaml",
+                                       "artifact-type": "parameter_definitions"
+                               },
+                               {
+                                       "artifact-name": "param_Configure_vUSP-RevenueAssurance_0.0.1V.json",
+                                       "artifact-type": "param_values"
+                               }
+                       ],
+                       "scopeType": "vnf-type"
+               },
+               {
+                       "action": "ConfigBackup",
+                       "action-level": "vnf",
+                       "scope": {
+                               "vnf-type": "vUSP - Revenue Assurance",
+                               "vnfc-type": "",
+                               "vnfc-type-list": []
+                       },
+                       "template": "Y",
+                       "vm": [],
+                       "device-protocol": "ANSIBLE",
+                       "user-name": "att",
+                       "port-number": "5000",
+                       "artifact-list": [
+                               {
+                                       "artifact-name": "template_ConfigBackup_vUSP-vRAR_0.0.1V.json",
+                                       "artifact-type": "config_template"
+                               },
+                               {
+                                       "artifact-name": "pd_ConfigBackup_vUSP-vRAR_0.0.1V.yaml",
+                                       "artifact-type": "parameter_definitions"
+                               }
+                       ],
+                       "scopeType": "vnf-type"
+               },
+               {
+                       "action": "ConfigRestore",
+                       "action-level": "vnf",
+                       "scope": {
+                               "vnf-type": "vUSP - Revenue Assurance",
+                               "vnfc-type": "",
+                               "vnfc-type-list": []
+                       },
+                       "template": "Y",
+                       "vm": [],
+                       "device-protocol": "ANSIBLE",
+                       "user-name": "att",
+                       "port-number": "5000",
+                       "artifact-list": [
+                               {
+                                       "artifact-name": "template_ConfigRestore_vUSP-vRAR_0.0.1V.json",
+                                       "artifact-type": "config_template"
+                               },
+                               {
+                                       "artifact-name": "pd_ConfigRestore_vUSP-vRAR_0.0.1V.yaml",
+                                       "artifact-type": "parameter_definitions"
+                               }
+                       ],
+                       "scopeType": "vnf-type"
+               },
+               {
+                       "action": "AllAction",
+                       "action-level": "vnf",
+                       "scope": {
+                               "vnf-type": "vUSP - Revenue Assurance",
+                               "vnfc-type": "",
+                               "vnfc-type-list": []
+                       },
+                       "artifact-list": [
+                               {
+                                       "artifact-name": "reference_AllAction_vUSP-RevenueAssurance_0.0.1V.json",
+                                       "artifact-type": "reference_template"
+                               }
+                       ]
+               }
+       ]
+}
\ No newline at end of file
diff --git a/test/csit/tests/appc/cdt/data/template_Configure_vUSP - Revenue Assurance_0.0.1V.json b/test/csit/tests/appc/cdt/data/template_Configure_vUSP - Revenue Assurance_0.0.1V.json
new file mode 100755 (executable)
index 0000000..5dd853c
--- /dev/null
@@ -0,0 +1,5 @@
+{
+                  "PlaybookName": "rarf/latest/ansible/restore/site.yml", 
+                  "EnvParameters": {"vnf_instance":"${vnf_name}"},
+                   "Timeout": 600
+}
diff --git a/test/csit/tests/appc/cdt/data/vUSP_User Input Spreadsheet v.07.xlsx b/test/csit/tests/appc/cdt/data/vUSP_User Input Spreadsheet v.07.xlsx
new file mode 100755 (executable)
index 0000000..3a5efcb
Binary files /dev/null and b/test/csit/tests/appc/cdt/data/vUSP_User Input Spreadsheet v.07.xlsx differ