[CORD-2872]Scale Tests for vcpe

Change-Id: Id528155334b67cf40be4df92c2e778cbc6a8ffb1
diff --git a/src/test/cord-api/Framework/utils/utils.py b/src/test/cord-api/Framework/utils/utils.py
index 254daaa..e116458 100644
--- a/src/test/cord-api/Framework/utils/utils.py
+++ b/src/test/cord-api/Framework/utils/utils.py
@@ -294,3 +294,9 @@
     def generate_random_slice_name(self):
         random_name = ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(10))
         return 'testloginbase' + random_name
+
+    def convertStringToInt(self,input_string):
+        return int(input_string)
+
+    def convertToString(self,input_value):
+        return str(input_value)
diff --git a/src/test/cord-api/Tests/Soak_ScaleVCPE.txt b/src/test/cord-api/Tests/Soak_ScaleVCPE.txt
new file mode 100644
index 0000000..448bf4a
--- /dev/null
+++ b/src/test/cord-api/Tests/Soak_ScaleVCPE.txt
@@ -0,0 +1,92 @@
+*** Settings ***
+Documentation     Test suite for Instance creation for multiple subscribers with same "s_tag" - Chameleon APIs
+Suite Setup       Read InputFile
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           HttpLibrary.HTTP
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Soak_ScaleVCPE.json
+${SCALE_COUNT}    1
+
+*** Test Cases ***
+Test Post Subscriber Create
+    [Documentation]     Tests creates subscribers based on the count
+    ${service_specific_id}=    utils.convertStringToInt    ${service_specific_id}
+    :FOR        ${i}    IN RANGE        ${SCALE_COUNT}
+    \   ${service_specific_id}=    Evaluate        ${service_specific_id} + 1
+    \   ${service_specific_id}=    utils.convertToString    ${service_specific_id}
+    \   &{subscriberDict}=    Create Dictionary    service_specific_id     ${service_specific_id}
+    \   ${api_result}=    restApi.ApiPost    VOLT_SUBSCRIBER    ${subscriberDict}
+    \   Should Be True    ${api_result}
+    # Volt Tenant Creation
+    \   ${json_result}=    restApi.ApiGet    VOLT_SUBSCRIBER
+    \   Log    ${json_result}
+    \   ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    \   ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result_list}    service_specific_id    ${service_specific_id}
+    \   ${Subscriber_Id}=    utils.getFieldValueFromDict    ${getJsonDict}    id
+    \   Log    ${Subscriber_Id}
+    \   ${s_tag}=       Evaluate        ${s_tag} + 0
+    \   ${c_tag}=       Evaluate        ${c_tag} + 1
+    \   &{voltDict}=     Create Dictionary       s_tag   ${s_tag}        c_tag   ${c_tag}
+    \   Log    ${voltDict}
+    \   ${postResult}=    restApi.ApiPost    VOLT_TENANT    ${voltDict}
+    \   Sleep    30
+    # Verifying GET operation after POST
+    \   ${get_result}=    restApi.ApiGet    VOLT_TENANT
+    \   ${get_result_list}=    Get From Dictionary    ${get_result}    items
+    \   ${getJsonDict}=    utils.getDictFromListofDict    ${get_result_list}    c_tag    ${c_tag}
+    \   Log    ${getJsonDict}
+    \   #${test_result}=    utils.compare_dict    ${voltDict}    ${getJsonDict}
+    \   #Should Be True    ${test_result}
+    \   ${Volt_Id}=    Get From Dictionary    ${getJsonDict}    id
+    \   ${provided_links_ids_list}=    utils.getFieldValueFromDict    ${getJsonDict}    provided_links_ids
+    \   Log    ${provided_links_ids_list}
+    \   ${provided_links_ids}=    Get From List    ${provided_links_ids_list}    0
+    \   Log    ${provided_links_ids}
+    # Get subscribed_links_ids from volttenant
+    \   ${subscribed_links_ids_list}=    utils.getFieldValueFromDict    ${getJsonDict}    subscribed_links_ids
+    \   ${subscribed_links_ids}=    Get From List    ${subscribed_links_ids_list}    0
+    # Retrieve service links using provided links ID
+    \   ${getServiceLink}=    restApi.ApiChameleonGet    CH_CORE_SERVICELINK    ${provided_links_ids}
+    \   ${provider_service_instance_id}=    Get From Dictionary    ${getServiceLink}    provider_service_instance_id
+    # Update the subscriber_service_instance_id to the required subscriber_id to establish desired link
+    \   ${serviceDict}=    Create Dictionary    subscriber_service_instance_id=${Subscriber_Id}
+    \   ${result}=    restApi.ApiChameleonPut    CH_CORE_SERVICELINK    ${serviceDict}    ${provided_links_ids}
+    \   Sleep    30
+    \   Should Be True    ${result}
+    # Validation of Instances
+    \   Log    ${instanceList}
+    \   ${serviceLinkDict}=    restApi.ApiChameleonGet    CH_CORE_SERVICELINK    ${subscribed_links_ids}
+    \   Log    ${serviceLinkDict}
+    \   ${VSGTenant}=    Get From Dictionary    ${serviceLinkDict}    provider_service_instance_id
+    # Retrieve VSGTenant to retrieve instance_id
+    \   ${getVSG_result}=    restApi.ApiChameleonGet    VSG_TENANT    ${VSGTenant}
+    \   ${instance_id}=    Get From Dictionary    ${getVSG_result}    instance_id
+    \   Append To List    ${instanceList}    ${instance_id}
+    \   Log    ${instanceList}
+    Log    ${c_tag}
+    Log    ${service_specific_id}
+
+*** Keywords ***
+Read InputFile
+    ${inputDict}=	utils.readFile	${PATHFILE}
+    Log To Console    \n ${inputDict}
+    ${service_specific_id}=	Get Json Value    ${inputDict}    /service_specific_id
+    Log   \n ${service_specific_id}
+    ${s_tag} =    Get Json Value    ${inputDict}    /s_tag
+    Log   \n ${s_tag}
+    ${c_tag} =    Get Json Value    ${inputDict}    /c_tag
+    Log   \n ${c_tag}
+    Set Suite Variable    ${service_specific_id}
+    Set Suite Variable    ${s_tag}
+    Set Suite Variable    ${c_tag}
+    @{instanceList}=    Create List
+    Set Suite Variable    @{instanceList}
diff --git a/src/test/cord-api/Tests/data/Soak_ScaleVCPE.json b/src/test/cord-api/Tests/data/Soak_ScaleVCPE.json
new file mode 100644
index 0000000..ade3e3f
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Soak_ScaleVCPE.json
@@ -0,0 +1,5 @@
+{
+  "s_tag" : 900
+  "c_tag" : 500
+  "service_specific_id" : 500
+}