diff --git a/tests/dcaegen2/testcases/assets/certs/outdated.crt b/tests/dcaegen2/testcases/assets/certs/outdated.crt
new file mode 100644
index 0000000..8768cff
--- /dev/null
+++ b/tests/dcaegen2/testcases/assets/certs/outdated.crt
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIEGDCCAgACFFgwd9DMpQEwVkrCkzJPGRq6xW3EMA0GCSqGSIb3DQEBCwUAMEUx
+CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
+cm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTkxMTE4MTIyMzIyWhcNMTkxMTE5MTIy
+MzIyWjBMMQswCQYDVQQGEwJQTDELMAkGA1UECAwCRGwxEDAOBgNVBAcMB1dyb2Ns
+YXcxDjAMBgNVBAoMBU5va2lhMQ4wDAYDVQQLDAVOb2tpYTCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBALIx4HC0SskTvE5dzcfHcrjsvBvKJeum7NkVvpk2
+4hxhcynfmhM6wJ0VJV0x6B4mHe0ja4tJZdY5IyfRMV/5Q79hiiLmwg6hgjXX7MKn
+7JnFCX1iMj+zXlQzCLgXVpB6ruBAMImiBjGn2MlTIHKthsNGX6Qf+hDmJqEfoRuI
+jp7SwI4BvN084ijIpNWARdxAsAQ1qJjrCLhvJ9Ob8btCqclAzv3ZPAcOD6DjORx5
+JxIMMJ6bXfHgmsECy4dbGBMnieKF1O8NNdoypVCE+NuqckSmE2JQiHIkRHZ5Bul4
+ihk+wSR2WxiNOOuMN7bp+0Yan44ritMB06wpFdp4jGMvyTsCAwEAATANBgkqhkiG
+9w0BAQsFAAOCAgEAYQEi9+o6+nlMvXJlal62QPoBPOQqFKWTBd5X0Wv+L0K/5yAO
+S2Sv0woQyDLydjsglNLEJB3VJuPQsoRZDGqv9aThJ0j+/BzylbkxwcReMs7P+rl2
+DIeqjdvsato3ZB0Rtp28jBDI7HrvBfmGQQFUaeBRI7eybe3AXqy8INozkdAGeeIr
+FxMmrZ0z7eQj5T8CE/ebmsbdIDRPmI672V8Tojd6nQSZFAG9/9q6f/iK45Mx6Qls
+Qqfl+bdL3ey0aNsUR6yWNa2DBA15HW9GvUQuMxeGDNQn0bxib0KsKgxfbX4vLYVF
+RgC/c1td9LJoSMl3tURoZwRfAHFX82jDxAExtlTMvZMleMlP3O/YRB0SNieFeidE
+O3OzuCHBvEpQEcDdUMxc4XfCnV1nE6QHLsBwz3Zwt4ZnL6dS8iBE0p3NN5qHVWF7
+Vxb59ZYPCrTQbgTsKlfHyX8aB2Nk0rCgDFBbov7gVevOHjIWqmDyFhrNEJEmXO+3
+MM8UrImojbr4kn89VsujMP62jMqyXifuejGzkoHf6tBuTENiNxwmPwiX+ZD5etVE
+kh8c7aoRZi6zv+vMUu6U1RpYUEPGMTGZKBsuk+2IABhfD5UcneGR3kX2Vtb34EZE
+8i29bJY7CmzNBUlkbubqv8axklF2hxiN7w8oRLj+tH8jnVMMP47KuHaNx+8=
+-----END CERTIFICATE-----
diff --git a/tests/dcaegen2/testcases/assets/certs/outdated.key b/tests/dcaegen2/testcases/assets/certs/outdated.key
new file mode 100644
index 0000000..860b30f
--- /dev/null
+++ b/tests/dcaegen2/testcases/assets/certs/outdated.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEAsjHgcLRKyRO8Tl3Nx8dyuOy8G8ol66bs2RW+mTbiHGFzKd+a
+EzrAnRUlXTHoHiYd7SNri0ll1jkjJ9ExX/lDv2GKIubCDqGCNdfswqfsmcUJfWIy
+P7NeVDMIuBdWkHqu4EAwiaIGMafYyVMgcq2Gw0ZfpB/6EOYmoR+hG4iOntLAjgG8
+3TziKMik1YBF3ECwBDWomOsIuG8n05vxu0KpyUDO/dk8Bw4PoOM5HHknEgwwnptd
+8eCawQLLh1sYEyeJ4oXU7w012jKlUIT426pyRKYTYlCIciREdnkG6XiKGT7BJHZb
+GI0464w3tun7RhqfjiuK0wHTrCkV2niMYy/JOwIDAQABAoIBAQCSYqLsM1AUa2AQ
+SMMZ0WEPRXsqoSARvKlplJFlME8D3ZJL3eKm1WcSJCLzsmHrEokXHDfmzr8YAww8
+U3/qRc0/1RMzpLnaZxeev+lB581YbSNkm1yINAPTy7Dn+lQkkIREuLam+jF4bViL
+2vwW+TJyDMfY/mPhqhAl4OPqyH3RPhSmC23zkPsqFU2ZXJQB/7CcDP9OtXN9OLM5
+/hjDTW0/+0/xLjzBDJbrzUSsBCD03/vis+mvZJ/pN31ZK+/zXz62yzGqN++bnoSA
+mlAUL6QrkVER9dKoLwUoNncbbsmeYnNSvJqmPNgdm0BSDKVzP1u0lvX93nSsRG0c
+vrHXb56xAoGBAOk5WwOfRtqUfkbGdJoX5R+PzRq9WGb6ZAquD8ST3rOtoQhPBQDI
+Cx26UbhJyH2xKhME8ZI0rjW0llI/erJbiLK9v668HzfqgoFZIly3t7nwmstFvoo9
+1CUo9TPsppGKQLo1iJV6iJIH14kPlOtSwIbGd9ixzqp1rBCIvwEi+Fq3AoGBAMOY
+x9ZlHmy2kmXTRjojf0zNPkkBsd8KatvH9AgYoUnulQBqdfCiTJTB+4JRyZ7sE6su
+mbtKP3SM9FJTGg0bNCDO2fwjkqia5WyssI9sVITwoPw5o11mR7WEXtfM1UtgLJbo
+xEN/TaFLoltW+kNaS0GzsJBzZvp8mbcmoFbx9hGdAoGAGVHjwqnpHFPgvbhP8mbD
+tkB7aPrDfTKT5+Drz1CqbeFcyTUi+um84zZWJubDwHmacsQnodLcUvJPG5DOtkxf
+s+ALzmGYFg78qiROKbi8VpB7jbP9sq5xuLMQo9l+X/CdhFnJgUjzSL9XNAcgCMhM
+JJWpbzomkLUDwCvIaMwuIFMCgYEAwv81exAkXM1G9izC/oMVDkQvrCj8YxfHoISf
+TNMBOOuZsGhyXAvxvPwG+cz/7Gf+09IJgSZsTI2ZpdkjR52vQmX1++Ca/Wwu/UDM
+ZK/jMwWR+OKdcyfcpaHpy8pxekvPKEO2JnRruDnnCpiTt0H1dPLnO5tRNrexp13i
+y8s9PiECgYEAzCk/b/62WIpEb7BPO19I7XR8xAT36QINiTJrOHqrh6iexD9T63Zf
+0OuNsnLna2uvPRsSKnoU8a0/frEKIu45LBrUh1XqKjgRP1PMktAI6KGwRvPXTzGT
+WVgznP2uU6wCyvd6obRfcX79egDeZrGfJ0xnuesaIEeYM+5CFgxqmHo=
+-----END RSA PRIVATE KEY-----
diff --git a/tests/dcaegen2/testcases/assets/json_events/ves7_batch_valid.json b/tests/dcaegen2/testcases/assets/json_events/ves7_batch_valid.json
new file mode 100644
index 0000000..1db81ee
--- /dev/null
+++ b/tests/dcaegen2/testcases/assets/json_events/ves7_batch_valid.json
@@ -0,0 +1,67 @@
+
+{
+   "eventList": [
+      {
+         "commonEventHeader": {
+            "version": "4.0.1",
+            "vesEventListenerVersion": "7.0.1",
+            "domain": "fault",
+            "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
+            "eventId": "fault0000250",
+            "sequence": 1,
+            "priority": "High",
+            "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
+            "reportingEntityName": "ibcx0001vm002oam0011234",
+            "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
+            "sourceName": "scfx0001vm002cap001",
+            "nfVendorName": "Ericsson",
+            "nfNamingCode": "scfx",
+            "nfcNamingCode": "ssc",
+            "startEpochMicrosec": 1413378172000000,
+            "lastEpochMicrosec": 1413378172000000,
+            "timeZoneOffset": "UTC-05:30"
+         },
+         "faultFields": {
+            "faultFieldsVersion": "4.0",
+            "alarmCondition": "PilotNumberPoolExhaustion",
+            "eventSourceType": "other",
+            "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
+            "eventSeverity": "CRITICAL",
+            "vfStatus": "Active",
+            "alarmAdditionalInformation": {
+                "PilotNumberPoolSize": "1000"
+            }
+         }
+      },
+      {
+         "commonEventHeader": {
+            "version": "4.0.1",
+            "vesEventListenerVersion": "7.0.1",
+            "domain": "fault",
+            "eventName": " Fault_Vscf:Acs-Ericcson_RecordingServerUnreachable",
+            "eventId": "fault0000251",
+            "sequence": 0,
+            "priority": "High",
+            "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
+            "reportingEntityName": "ibcx0001vm002oam0011234",
+            "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
+            "sourceName": "scfx0001vm002cap001",
+            "nfVendorName": "Ericsson",
+            "nfNamingCode": "scfx",
+            "nfcNamingCode": "ssc",
+            "startEpochMicrosec": 1413378172000010,
+            "lastEpochMicrosec": 1413378172000010,
+            "timeZoneOffset": "UTC-05:30"
+         },
+         "faultFields": {
+            "faultFieldsVersion": "4.0",
+            "alarmCondition": "RecordingServerUnreachable",
+            "eventSourceType": "other",
+            "specificProblem": "Recording server unreachable",
+            "eventSeverity": "CRITICAL",
+            "vfStatus": "Active"
+         }
+      }
+   ]
+}
+
diff --git a/tests/dcaegen2/testcases/dcae_ves.robot b/tests/dcaegen2/testcases/dcae_ves.robot
index c035423..f9a97b0 100644
--- a/tests/dcaegen2/testcases/dcae_ves.robot
+++ b/tests/dcaegen2/testcases/dcae_ves.robot
@@ -1,153 +1,72 @@
 *** Settings ***
-Documentation	  Testing DCAE VES Listener with various event feeds from VoLTE, vDNS, vFW and cCPE use scenarios
-Library     RequestsLibrary
+Documentation     Run healthchecks for DCAE VES
+...               Testing /eventListener/v7 and /eventListener/v7/eventBatch endpoints for DCEA VES v7.
+...               Testing /eventListener/v5 and /eventListener/v5/eventBatch for DCEA VES v5 with various event feeds from VoLTE, vFW and PNF
+Library           RequestsLibrary
 Library           OperatingSystem
 Library           Collections
 Library           DcaeLibrary
-Resource          resources/dcae_keywords.robot
-Resource          ../../common.robot
-Resource          resources/dcae_properties.robot
-Test Setup        Cleanup VES Events
+Resource          ./resources/dcae_keywords.robot
+Test Teardown     Cleanup VES Events
 Suite Setup       Run keywords  VES Collector Suite Setup DMaaP  Create sessions  Create header
-Suite Teardown    VES Collector Suite Shutdown DMaaP    
-
-*** Variables ***
-${VESC_URL_HTTPS}                        https://%{VESC_IP}:8443
-${VESC_URL}                              http://%{VESC_IP}:8080
-${VES_ANY_EVENT_PATH}                    /eventListener/v5
-${VES_BATCH_EVENT_PATH}             	 /eventListener/v5/eventBatch
-${VES_THROTTLE_STATE_EVENT_PATH}         /eventListener/v5/clientThrottlingState
-${VES_ENDPOINT}                          /eventListener/v7
-${VES_VALID_JSON_V7}                     %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves7_valid.json
-${VES_INVALID_JSON_V7}                   %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves7_invalid.json
-${EVENT_DATA_FILE}                       %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_single_fault_event.json
-${EVENT_MEASURE_FILE}                    %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_vfirewall_measurement.json
-${EVENT_DATA_FILE_BAD}                   %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_single_fault_event_bad.json
-${EVENT_BATCH_DATA_FILE}                 %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_fault_eventlist_batch.json
-${EVENT_THROTTLING_STATE_DATA_FILE}      %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_fault_provide_throttle_state.json
-${EVENT_PNF_REGISTRATION}                %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_pnf_registration_event.json
-
-#DCAE Health Check
-${CONFIG_BINDING_URL}                    http://localhost:8443
-${CB_HEALTHCHECK_PATH}                   /healthcheck
-${CB_SERVICE_COMPONENT_PATH}             /service_component/
-${VES_Service_Name1}                     dcae-controller-ves-collector
-${VES_Service_Name2}                     ves-collector-not-exist
+Suite Teardown    VES Collector Suite Shutdown DMaaP
 
 *** Test Cases ***
 
-#No authorization tests
+#No authentication tests
 
 VES Collector HTTP Health Check
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Ves Collector Health Check
-    ${uuid}=    Generate UUID
-    ${headers}=  Create Dictionary     Accept=*/*     X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
-    ${resp}= 	Get Request 	${suite_dcae_vesc_url_session} 	/healthcheck        headers=${headers}
-    Should Be Equal As Strings 	${resp.status_code} 	200
+    [Documentation]   Run healthcheck
+    Run Healthcheck
 
 Publish Single VES VNF Measurement Event API V7
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 202 Response
-    ${evtdata}=   Get Data From File   ${VES_VALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector No Auth    ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546015
-    Should Be Equal As Strings    ${ret}    true
-
+    [Documentation]   Post single event with valid data to /eventListener/v7 endpoint and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  202  ab305d54-85b4-a31b-7db2-fb6b9e546015
 
 Publish Single VES VNF Measurement Event with wrong JSON
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 400 Response
-    ${evtdata}=   Get Data From File   ${VES_INVALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector No Auth  ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	400
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    [Documentation]   Post single event with invalid data to /eventListener/v7 endpoint and expect 400 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_EVENTLISTENER_V7}  ${VES_INVALID_JSON_V7}  400
 
 Publish Single VES VNF Measurement Event with No Auth over HTTPS
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect ConnectionError
-    ${evtdata}=   Get Data From File   ${VES_VALID_JSON_V7}
-    ${err_msg}=  Run Keyword And Expect Error  ConnectionError:*   Publish Event To VES Collector   ${VES_ENDPOINT}  ${evtdata}
-    Should Contain  ${err_msg}  Errno 111
-    Log  Recieved error message ${err_msg}
+    [Documentation]   Post single event over HTTPS with authentication disabled and expect ConnectionError
+    @{err_content}  Create List  Errno 111
+    Send Request And Expect Error  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  ConnectionError:*  @{err_content}
 
 Publish Single VES VoLTE Fault Event
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 202 Response
-    ${evtdata}=   Get Data From File   ${EVENT_DATA_FILE}
-    ${resp}=  Publish Event To VES Collector No Auth    ${VES_ANY_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546015
-    Should Be Equal As Strings    ${ret}    true
+    [Documentation]   Post single event with valid data to /eventListener/v5 endpoint and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_ANY_EVENT_PATH}  ${EVENT_DATA_FILE}  202  ab305d54-85b4-a31b-7db2-fb6b9e546015
 
 Publish Single VES VNF Measurement Event API V5
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 202 Response
-    ${evtdata}=   Get Data From File   ${EVENT_MEASURE_FILE}
-    ${resp}=  Publish Event To VES Collector No Auth    ${VES_ANY_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    0b2b5790-3673-480a-a4bd-5a00b88e5af6
-    Should Be Equal As Strings    ${ret}    true
+    [Documentation]   Post single measurement event with valid data to /eventListener/v5 endpoint and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_ANY_EVENT_PATH}  ${EVENT_MEASURE_FILE}  202  0b2b5790-3673-480a-a4bd-5a00b88e5af6
 
 Publish VES VoLTE Fault Batch Events
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post batched events and expect 202 Response
-    ${evtdata}=   Get Data From File   ${EVENT_BATCH_DATA_FILE}
-    ${resp}=  Publish Event To VES Collector No Auth    ${VES_BATCH_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546025
-    Should Be Equal As Strings    ${ret}    true
-
+    [Documentation]   Post single event with valid data to /eventListener/v5/eventBatch endpoint and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_BATCH_EVENT_PATH}  ${EVENT_BATCH_DATA_FILE}  202  ab305d54-85b4-a31b-7db2-fb6b9e546025
 
 Publish VES Event With Invalid Method
     [Tags]    DCAE-VESC-R1
-    [Documentation]    Use invalid Put instead of Post method to expect 405 response
-    ${evtdata}=   Get Data From File   ${EVENT_DATA_FILE}
+    [Documentation]    Use invalid Put instead of Post method to expect 405 Response Status Code
     Log   Send HTTP Request with invalid method Put instead of Post
-    ${resp}=  Publish Event To VES Collector With Put Method No Auth  ${VES_ANY_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	405
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    Send Request And Validate Response  Publish Event To VES Collector With Put Method  ${http_session}  ${VES_ANY_EVENT_PATH}  ${EVENT_DATA_FILE}  405
 
 Publish VES Event With Invalid URL Path
     [Tags]    DCAE-VESC-R1
-    [Documentation]    Use invalid url path to expect 404 response
-    ${evtdata}=   Get Data From File   ${EVENT_DATA_FILE}
+    [Documentation]   Post single event to invalid url path and expect 404 Response  Status Code
     Log   Send HTTP Request with invalid /listener/v5/ instead of /eventListener/v5 path
-    ${resp}=  Publish Event To VES Collector No Auth    /listener/v5/  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	404
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  /listener/v5/  ${EVENT_DATA_FILE}  404
 
 Publish PNF Registration Event
     [Tags]    DCAE-VESC-R1
-    [Documentation]   Post PNF registration event and expect 200 Response
-    ${evtdata}=   Get Data From File   ${EVENT_PNF_REGISTRATION}
-    ${resp}=  Publish Event To VES Collector No Auth    ${VES_ANY_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    QTFCOC540002E-reg
-    Should Be Equal As Strings    ${ret}    true
-
+    [Documentation]   Post PNF registration event and expect 200 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_ANY_EVENT_PATH}  ${EVENT_PNF_REGISTRATION}  202  QTFCOC540002E-reg
 
 # Auth by certificate and basic auth username / password
 
@@ -155,130 +74,110 @@
     [Tags]    DCAE-VESC-R1
     [Documentation]  Enable VESC Https and Authentication and Run Health Check
     Enable VESC with certBasicAuth
+    Run Healthcheck
+
+Healthcheck with Outdated Cert
+    [Tags]    DCAE-VESC-R1
+    [Documentation]  Run healthcheck with outdated cert
     ${uuid}=    Generate UUID
     ${headers}=  Create Dictionary     Accept=*/*     X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
-    ${resp}= 	Get Request 	${suite_dcae_vesc_url_session} 	/healthcheck        headers=${headers}
-    Should Be Equal As Strings 	${resp.status_code} 	200
-
-
-Publish Single VES Fault Event Over HTTPS
-    [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 202 Response
-    ${evtdata}=   Get Data From File   ${EVENT_DATA_FILE}
-    Log  Login User=${VESC_HTTPS_USER}, Pd=${VESC_HTTPS_PD}
-    ${resp}=  Publish Event To VES Collector    ${VES_ANY_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546015
-    Should Be Equal As Strings    ${ret}    true
-
-Publish Single VES Measurement Event Over HTTPS
-    [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 202 Response
-    ${evtdata}=   Get Data From File   ${EVENT_MEASURE_FILE}
-    ${resp}=  Publish Event To VES Collector  ${VES_ANY_EVENT_PATH}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    0b2b5790-3673-480a-a4bd-5a00b88e5af6
-    Should Be Equal As Strings    ${ret}    true
-
-Publish VES Fault Batch Events Over HTTPS
-    [Tags]    DCAE-VESC-R1
-    [Documentation]   Post batched events and expect 202 Response
-    ${evtdata}=   Get Data From File   ${EVENT_BATCH_DATA_FILE}
-    ${resp}=  Publish Event To VES Collector  ${VES_BATCH_EVENT_PATH}  ${evtdata}
-    Should Be Equal As Strings 	${resp.status_code} 	202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546025
-    Should Be Equal As Strings    ${ret}    true
-
-
-Publish VES Event With Invalid URL Path HTTPS
-    [Tags]    DCAE-VESC-R1
-    [Documentation]    Use invalid url path to expect 404 response
-    ${evtdata}=   Get Data From File   ${EVENT_DATA_FILE}
-    Log   Send HTTP Request with invalid /eventlistener/v5/ instead of /eventListener/v5 path
-    ${resp}=  Publish Event To VES Collector  /eventlistener/v5  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	404
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-
-Publish Single VES VNF Measurement Event over HTTP
-    [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event over HTTP and expect 400 Response
-    ${evtdata}=   Get Data From File   ${VES_VALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector No Auth    ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTP Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	400
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-
-
-Publish Single VES VNF Measurement Event with certBasicAuth over HTTPS
-    [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 202 Response
-    ${evtdata}=   Get Data From File   ${VES_VALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector   ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546015
-    Should Be Equal As Strings    ${ret}    true
-
-Publish Single VES VNF Measurement Event over HTTPS with wrong JSON
-    [Tags]    DCAE-VESC-R1
-    [Documentation]   Post single event and expect 400 Response
-    ${evtdata}=   Get Data From File   ${VES_INVALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector   ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	400
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-
-Publish Single VES VNF Measurement Event With Wrong Auth
-    [Tags]  DCAE-VESC-R1
-    [Documentation]  Post single event and expect 401 response
-    ${evtdata}=  Get Data From File  ${VES_VALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector With Wrong Auth   ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings  ${resp.status_code}  401
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-
-Publish Single VES VNF Measurement Event With Cert
-    [Tags]  DCAE-VESC-R1
-    [Documentation]  Post single event and expect 202 response
-    ${evtdata}=  Get Data From File  ${VES_VALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector With Cert  ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings 	${resp.status_code} 	202
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
-    ${ret}=  DMaaP Message Receive    ab305d54-85b4-a31b-7db2-fb6b9e546015
-    Should Be Equal As Strings    ${ret}    true
-
-Publish Single VES VNF Measurement Event With Wrong Cert
-    [Tags]  DCAE-VESC-R1
-    [Documentation]  Post single event and expect SSLError with bad handshake
-    ${evtdata}=  Get Data From File  ${VES_VALID_JSON_V7}
-    ${err_msg}=  Run Keyword And Expect Error  SSLError:*  Publish Event To VES Collector With Wrong Cert  ${VES_ENDPOINT}  ${evtdata}
+    ${err_msg}=  Run Keyword And Expect Error  SSLError:*  Get Request 	${https_outdated_cert_session} 	/healthcheck  headers=${headers}
     Should Contain  ${err_msg}  bad handshake
     Should Contain  ${err_msg}  certificate unknown
     Log  Recieved error message ${err_msg}
 
+Publish Single VES Fault Event Over HTTPS
+    [Tags]    DCAE-VESC-R1
+    [Documentation]   Post single event with valid data to /eventListener/v5 endpoint over HTTPS and expect 202 Response Status Code
+    Log  Login User=${VESC_HTTPS_USER}, Pd=${VESC_HTTPS_PD}
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_ANY_EVENT_PATH}  ${EVENT_DATA_FILE}  202  ab305d54-85b4-a31b-7db2-fb6b9e546015
+
+Publish Single VES Measurement Event Over HTTPS
+    [Tags]    DCAE-VESC-R1
+    [Documentation]   Post single measurement event with valid data to /eventListener/v5 endpoint over HTTPS and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_ANY_EVENT_PATH}  ${EVENT_MEASURE_FILE}  202  0b2b5790-3673-480a-a4bd-5a00b88e5af6
+
+Publish VES Fault Batch Events Over HTTPS
+    [Tags]    DCAE-VESC-R1
+    [Documentation]   Post single event with valid data to /eventListener/v5/eventBatch endpoint over HTTPS and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_BATCH_EVENT_PATH}  ${EVENT_BATCH_DATA_FILE}  202  ab305d54-85b4-a31b-7db2-fb6b9e546025
+
+Publish VES Event With Invalid URL Path HTTPS
+    [Tags]    DCAE-VESC-R1
+    [Documentation]    Post single event to invalid url path over HTTPS and expect 404 response Status Code
+    Log   Send HTTP Request with invalid /eventlistener/v5/ instead of /eventListener/v5 path
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  /eventlistener/v5  ${EVENT_DATA_FILE}  404
+
+Publish Single VES VNF Measurement Event over HTTP
+    [Tags]    DCAE-VESC-R1
+    [Documentation]   Post single event over HTTP with authentication enabled and expect 400 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${http_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  400
+
+Publish Single VES VNF Measurement Event with certBasicAuth over HTTPS
+    [Tags]    DCAE-VESC-R1
+    [Documentation]   Post single event with valid data and valid username/password to /eventListener/v7 endpoint over HTTPS and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  202  ab305d54-85b4-a31b-7db2-fb6b9e546015
+
+Publish Single VES VNF Measurement Event over HTTPS with wrong JSON
+    [Tags]    DCAE-VESC-R1
+    [Documentation]   Post single event with invalid data and valid username/password to /eventListener/v7 endpoint over HTTPS and expect 400 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_EVENTLISTENER_V7}  ${VES_INVALID_JSON_V7}  400
+
+Publish Single VES VNF Measurement Event With Wrong Auth
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and invalid username/password to /eventListener/v7 endpoint over HTTPS and expect 401 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_wrong_auth_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  401
+
+Publish Single VES VNF Measurement Event With Cert
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and valid certificate to /eventListener/v7 endpoint over HTTPS and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_valid_cert_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  202  ab305d54-85b4-a31b-7db2-fb6b9e546015
+
+Publish Single VES VNF Measurement Event With Wrong Cert
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and invalid certificate to /eventListener/v7 endpoint over HTTPS and expect SSLError with bad handshake
+    @{err_content}  Create List  bad handshake  certificate unknown
+    Send Request And Expect Error  Publish Event To VES Collector  ${https_invalid_cert_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  SSLError:*  @{err_content}
+
+Publish Single VES VNF Measurement Event With Outdated Cert
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and outdated certificate to /eventListener/v7 endpoint over HTTPS and expect SSLError with bad handshake
+    @{err_content}  Create List  bad handshake  certificate unknown
+    Send Request And Expect Error  Publish Event To VES Collector  ${https_outdated_cert_session}  ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  SSLError:*  @{err_content}
+
 Publish Single VES VNF Measurement Event Without Auth And Cert
     [Tags]  DCAE-VESC-R1
-    [Documentation]  Post single event and expect 401 response
-    ${evtdata}=  Get Data From File  ${VES_VALID_JSON_V7}
-    ${resp}=  Publish Event To VES Collector Without Auth And Cert  ${VES_ENDPOINT}  ${evtdata}
-    Log    Receive HTTPS Status code ${resp.status_code}
-    Should Be Equal As Strings  ${resp.status_code}  401
-    ${isEmpty}=   Is Json Empty    ${resp}
-    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    [Documentation]  Post single event with valid data and without certificate or username/password to /eventListener/v7 endpoint over HTTPS and expect 401 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_no_cert_no_auth_session}   ${VES_EVENTLISTENER_V7}  ${VES_VALID_JSON_V7}  401
+
+Publish V7 Batch Event with certBasicAuth over HTTPS
+    [Tags]    DCAE-VESC-R1
+    [Documentation]   Post single event with valid data and valid username/password to /eventListener/v7/eventBatch endpoint over HTTPS and expect 202 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_basic_auth_session}  ${VES_BATCH_EVENT_ENDPOINT_V7}  ${VES_VALID_BATCH_JSON_V7}  202  Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion
+
+Publish V7 Batch Event With Wrong Auth
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and invalid username/password to /eventListener/v7/eventBatch endpoint over HTTPS and expect 401 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector   ${https_wrong_auth_session}  ${VES_BATCH_EVENT_ENDPOINT_V7}  ${VES_VALID_BATCH_JSON_V7}  401
+
+Publish V7 Batch Event With Cert
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and valid certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect 202 Response
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_valid_cert_session}  ${VES_BATCH_EVENT_ENDPOINT_V7}  ${VES_VALID_BATCH_JSON_V7}  202  Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion
+
+Publish V7 Batch With Wrong Cert
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and invalid certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect SSLError with bad handshake
+    @{err_content}  Create List  bad handshake  certificate unknown
+    Send Request And Expect Error  Publish Event To VES Collector   ${https_invalid_cert_session}  ${VES_BATCH_EVENT_ENDPOINT_V7}  ${VES_VALID_BATCH_JSON_V7}  SSLError:*  @{err_content}
+
+Publish V7 Batch Event With Outdated Cert
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and outdated certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect SSLError with bad handshake
+    @{err_content}  Create List  bad handshake  certificate unknown
+    Send Request And Expect Error  Publish Event To VES Collector   ${https_outdated_cert_session}  ${VES_BATCH_EVENT_ENDPOINT_V7}  ${VES_VALID_BATCH_JSON_V7}  SSLError:*  @{err_content}
+
+Publish V7 Batch Event Without Auth And Cert
+    [Tags]  DCAE-VESC-R1
+    [Documentation]  Post single event with valid data and without certificate or username/password to /eventListener/v7/eventBatch endpoint over HTTPS and expect 401 Response Status Code
+    Send Request And Validate Response  Publish Event To VES Collector  ${https_no_cert_no_auth_session}   ${VES_BATCH_EVENT_ENDPOINT_V7}  ${VES_VALID_BATCH_JSON_V7}  401
diff --git a/tests/dcaegen2/testcases/resources/dcae_keywords.robot b/tests/dcaegen2/testcases/resources/dcae_keywords.robot
index c4cdbb9..16a8a8a 100644
--- a/tests/dcaegen2/testcases/resources/dcae_keywords.robot
+++ b/tests/dcaegen2/testcases/resources/dcae_keywords.robot
@@ -5,31 +5,31 @@
 Library           OperatingSystem
 Library           Collections
 Variables         ../resources/DcaeVariables.py
+Resource          ../../../common.robot
 Resource          ../resources/dcae_properties.robot
 
-*** Variables ***
-${DCAE_HEALTH_CHECK_BODY}    %{WORKSPACE}/tests/dcae/testcases/assets/json_events/dcae_healthcheck.json
-
-
 *** Keywords ***
 Create sessions
     [Documentation]  Create all required sessions
-    Create Session    dcae_vesc_url    ${VESC_URL}
-    Set Suite Variable    ${suite_dcae_vesc_url_session}    dcae_vesc_url
     ${auth}=  Create List  ${VESC_HTTPS_USER}   ${VESC_HTTPS_PD}
-    Create Session    dcae_vesc_url_https    ${VESC_URL_HTTPS}  auth=${auth}  disable_warnings=1
-    Set Suite Variable    ${suite_dcae_vesc_url_https_session}    dcae_vesc_url_https
     ${wrong_auth}=  Create List  ${VESC_HTTPS_WRONG_USER}  ${VESC_HTTPS_WRONG_PD}
-    Create Session  dcae_vesc_url_https_wrong_auth  ${VESC_URL_HTTPS}  auth=${wrong_auth}  disable_warnings=1
-    Set Suite Variable  ${suite_dcae_vesc_url_https_wrong_auth_session}  dcae_vesc_url_https_wrong_auth
     ${certs}=  Create List  ${VESC_ROOTCA_CERT}  ${VESC_ROOTCA_KEY}
-    Create Client Cert Session  dcae_vesc_url_https_cert  ${VESC_URL_HTTPS}  client_certs=${certs}  disable_warnings=1
-    Set Suite Variable  ${suite_dcae_vesc_url_https_cert_session}  dcae_vesc_url_https_cert
     ${wrong_certs}=  Create List  ${VESC_WRONG_CERT}  ${VESC_WRONG_KEY}
+    ${outdated_certs}=  Create List  ${VESC_OUTDATED_CERT}  ${VESC_OUTDATED_KEY}
+    Create Session    dcae_vesc_url    ${VESC_URL}
+    Set Suite Variable    ${http_session}    dcae_vesc_url
+    Create Session    dcae_vesc_url_https    ${VESC_URL_HTTPS}  auth=${auth}  disable_warnings=1
+    Set Suite Variable    ${https_basic_auth_session}    dcae_vesc_url_https
+    Create Session  dcae_vesc_url_https_wrong_auth  ${VESC_URL_HTTPS}  auth=${wrong_auth}  disable_warnings=1
+    Set Suite Variable  ${https_wrong_auth_session}  dcae_vesc_url_https_wrong_auth
+    Create Client Cert Session  dcae_vesc_url_https_cert  ${VESC_URL_HTTPS}  client_certs=${certs}  disable_warnings=1
+    Set Suite Variable  ${https_valid_cert_session}  dcae_vesc_url_https_cert
     Create Client Cert Session  dcae_vesc_url_https_wrong_cert  ${VESC_URL_HTTPS}  client_certs=${wrong_certs}  disable_warnings=1  verify=${False}
-    Set Suite Variable  ${suite_dcae_vesc_url_https_wrong_cert_session}  dcae_vesc_url_https_wrong_cert
+    Set Suite Variable  ${https_invalid_cert_session}  dcae_vesc_url_https_wrong_cert
+    Create Client Cert Session  dcae_vesc_url_https_outdated_cert  ${VESC_URL_HTTPS}  client_certs=${outdated_certs}  disable_warnings=1  verify=${False}
+    Set Suite Variable  ${https_outdated_cert_session}  dcae_vesc_url_https_outdated_cert
     Create Session  dcae_vesc_url_https_wo_auth  ${VESC_URL_HTTPS}  disable_warnings=1
-    Set Suite Variable  ${suite_dcae_vesc_url_https_wo_auth_session}  dcae_vesc_url_https_wo_auth
+    Set Suite Variable  ${https_no_cert_no_auth_session}  dcae_vesc_url_https_wo_auth
 
 Create header
     ${headers}=    Create Dictionary    Content-Type=application/json
@@ -37,7 +37,6 @@
 
 Get DCAE Nodes
     [Documentation]    Get DCAE Nodes from Consul Catalog
-    #Log    Creating session   ${GLOBAL_DCAE_CONSUL_URL}
     ${session}=    Create Session 	dcae 	${GLOBAL_DCAE_CONSUL_URL}
     ${uuid}=    Generate UUID
     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json  X-Consul-Token=abcd1234  X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
@@ -64,7 +63,6 @@
     ${len}=  Get Length  ${StatusList}
     Should Not Be Equal As Integers   ${len}   0
     DCAE Check Health Status    ${NodeName}   ${StatusList[0]}    Serf Health Status
-    #Run Keyword if  ${len} > 1  DCAE Check Health Status  ${NodeName}  ${StatusList[1]}  Serf Health Status
 
 DCAE Check Health Status
     [Arguments]    ${NodeName}    ${ItemStatus}   ${CheckType}
@@ -128,50 +126,47 @@
     ${resp}= 	Get Request 	dcae-service-component 	${urlpath}
     [Return]    ${resp}
 
-Publish Event To VES Collector No Auth
-    [Documentation]    Send an event to VES Collector
-    [Arguments]     ${evtpath}   ${evtdata}
-    ${resp}= 	Post Request 	${suite_dcae_vesc_url_session} 	${evtpath}     data=${evtdata}   headers=${suite_headers}
-    [Return] 	${resp}
-
 Publish Event To VES Collector
     [Documentation]    Send an event to VES Collector
-    [Arguments]     ${evtpath}   ${evtdata}
-    ${resp}= 	Post Request 	${suite_dcae_vesc_url_https_session}  	${evtpath}     data=${evtdata}   headers=${suite_headers}
+    [Arguments]     ${session}  ${evtpath}   ${evtdata}
+    ${resp}= 	Post Request 	${session}  	${evtpath}     data=${evtdata}   headers=${suite_headers}
     [Return] 	${resp}
 
 Publish Event To VES Collector With Put Method
     [Documentation]    Send an event to VES Collector
-    [Arguments]     ${evtpath}   ${evtdata}
-    ${resp}= 	Put Request 	${suite_dcae_vesc_url_https_session}  	${evtpath}     data=${evtdata}   headers=${suite_headers}
+    [Arguments]     ${session}  ${evtpath}   ${evtdata}
+    ${resp}= 	Put Request 	${session}  	${evtpath}     data=${evtdata}   headers=${suite_headers}
     [Return] 	${resp}
 
-Publish Event To VES Collector With Put Method No Auth
-    [Documentation]    Send an event to VES Collector
-    [Arguments]     ${evtpath}   ${evtdata}
-    ${resp}= 	Put Request 	${suite_dcae_vesc_url_session} 	${evtpath}     data=${evtdata}   headers=${suite_headers}
-    [Return] 	${resp}
+Send Request And Validate Response
+    [Documentation]  Post singel event to passed url with passed data and validate received response
+    [Arguments]  ${keyword}  ${session}  ${evtpath}  ${evtjson}  ${resp_code}  ${msg_code}=None
+    ${evtdata}=  Get Data From File  ${evtjson}
+    ${resp}=  Run Keyword  ${keyword}  ${session}  ${evtpath}  ${evtdata}
+    Log    Receive HTTPS Status code ${resp.status_code}
+    Should Be Equal As Strings 	${resp.status_code} 	${resp_code}
+    ${isEmpty}=   Is Json Empty    ${resp}
+    Run Keyword If   '${isEmpty}' == False   Log  ${resp.json()}
+    Run Keyword If  '${msg_code}' != 'None'  Check Whether Message Received  ${msg_code}
 
-Publish Event To VES Collector With Wrong Auth
-    [Documentation]   Send an event to VES Collector by session with wrong auth
-    [Arguments]   ${evtpath}  ${evtdata}
-    ${resp}=  Post Request  ${suite_dcae_vesc_url_https_wrong_auth_session}  ${evtpath}  data=${evtdata}  headers=${suite_headers}
-    [Return]   ${resp}
+Check Whether Message Received
+    [Documentation]  Validare if message has been received
+    [Arguments]  ${msg_code}
+    ${ret}=  DMaaP Message Receive  ${msg_code}
+    Should Be Equal As Strings    ${ret}    true
 
-Publish Event To VES Collector With Cert
-    [Documentation]   Send an event to VES Collector by session with certs
-    [Arguments]   ${evtpath}  ${evtdata}
-    ${resp}=  Post Request  ${suite_dcae_vesc_url_https_cert_session}  ${evtpath}  data=${evtdata}  headers=${suite_headers}
-    [Return]   ${resp}
+Send Request And Expect Error
+    [Documentation]  Post singel event to passed url with passed data and expect error
+    [Arguments]  ${keyword}  ${session}  ${evtpath}  ${evtjson}  ${error_type}  @{error_content}
+    ${evtdata}=  Get Data From File  ${evtjson}
+    ${err_msg}=  Run Keyword And Expect Error  ${error_type}  ${keyword}  ${session}  ${evtpath}  ${evtdata}
+    :FOR    ${content}    IN    @{error_content}
+    \    Should Contain   ${err_msg}  ${content}
+    Log  Recieved error message ${err_msg}
 
-Publish Event To VES Collector With Wrong Cert
-    [Documentation]   Send an event to VES Collector by session with wrong certs
-    [Arguments]   ${evtpath}  ${evtdata}
-    ${resp}=  Post Request  ${suite_dcae_vesc_url_https_wrong_cert_session}  ${evtpath}  data=${evtdata}  headers=${suite_headers}
-    [Return]   ${resp}
-
-Publish Event To VES Collector Without Auth And Cert
-    [Documentation]   Send an event to VES Collector by session without Auth and Cert
-    [Arguments]   ${evtpath}  ${evtdata}
-    ${resp}=  Post Request  ${suite_dcae_vesc_url_https_wo_auth_session}  ${evtpath}  data=${evtdata}  headers=${suite_headers}
-    [Return]   ${resp}
+Run Healthcheck
+    [Documentation]  Run Healthcheck
+    ${uuid}=    Generate UUID
+    ${headers}=  Create Dictionary     Accept=*/*     X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid}    X-FromAppId=${GLOBAL_APPLICATION_ID}
+    ${resp}= 	Get Request 	${http_session} 	/healthcheck        headers=${headers}
+    Should Be Equal As Strings 	${resp.status_code} 	200
diff --git a/tests/dcaegen2/testcases/resources/dcae_properties.robot b/tests/dcaegen2/testcases/resources/dcae_properties.robot
index 7505fab..de5519e 100644
--- a/tests/dcaegen2/testcases/resources/dcae_properties.robot
+++ b/tests/dcaegen2/testcases/resources/dcae_properties.robot
@@ -4,17 +4,44 @@
 ...                   make sure you prepend them with GLOBAL so that other files can easily see it is from this file.
 
 *** Variables ***
-${GLOBAL_APPLICATION_ID}           robot-dcaegen2
-${GLOBAL_DCAE_CONSUL_URL}          http://135.205.228.129:8500
-${GLOBAL_DCAE_CONSUL_URL1}         http://135.205.228.170:8500
-${GLOBAL_DCAE_VES_URL}             http://localhost:8443/eventlistener/v5
-${GLOBAL_DCAE_USERNAME}            console
-${GLOBAL_DCAE_PASSWORD}            ZjJkYjllMjljMTI2M2Iz
-${VESC_HTTPS_USER}                 sample1
-${VESC_HTTPS_PD}                   sample1
-${VESC_HTTPS_WRONG_PD}             sample
-${VESC_HTTPS_WRONG_USER}           sample
-${VESC_ROOTCA_CERT}                %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/rootCA.crt
-${VESC_ROOTCA_KEY}                 %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/rootCAdec.key
-${VESC_WRONG_CERT}                 %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/wrong.crt
-${VESC_WRONG_KEY}                  %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/wrong.key
\ No newline at end of file
+${GLOBAL_APPLICATION_ID}                 robot-dcaegen2
+${GLOBAL_DCAE_CONSUL_URL}                http://135.205.228.129:8500
+${GLOBAL_DCAE_CONSUL_URL1}               http://135.205.228.170:8500
+${GLOBAL_DCAE_VES_URL}                   http://localhost:8443/eventlistener/v5
+${GLOBAL_DCAE_USERNAME}                  console
+${GLOBAL_DCAE_PASSWORD}                  ZjJkYjllMjljMTI2M2Iz
+${VESC_HTTPS_USER}                       sample1
+${VESC_HTTPS_PD}                         sample1
+${VESC_HTTPS_WRONG_PD}                   sample
+${VESC_HTTPS_WRONG_USER}                 sample
+${VESC_ROOTCA_CERT}                      %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/rootCA.crt
+${VESC_ROOTCA_KEY}                       %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/rootCAdec.key
+${VESC_WRONG_CERT}                       %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/wrong.crt
+${VESC_WRONG_KEY}                        %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/wrong.key
+${VESC_OUTDATED_CERT}                    %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/outdated.crt
+${VESC_OUTDATED_KEY}                     %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/outdated.key
+
+${VESC_URL_HTTPS}                        https://%{VESC_IP}:8443
+${VESC_URL}                              http://%{VESC_IP}:8080
+${VES_ANY_EVENT_PATH}                    /eventListener/v5
+${VES_BATCH_EVENT_PATH}             	 /eventListener/v5/eventBatch
+${VES_THROTTLE_STATE_EVENT_PATH}         /eventListener/v5/clientThrottlingState
+${VES_EVENTLISTENER_V7}                  /eventListener/v7
+${VES_BATCH_EVENT_ENDPOINT_V7}           /eventListener/v7/eventBatch
+${VES_VALID_JSON_V7}                     %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves7_valid.json
+${VES_INVALID_JSON_V7}                   %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves7_invalid.json
+${VES_VALID_BATCH_JSON_V7}               %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves7_batch_valid.json
+${EVENT_DATA_FILE}                       %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_single_fault_event.json
+${EVENT_MEASURE_FILE}                    %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_vfirewall_measurement.json
+${EVENT_DATA_FILE_BAD}                   %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_single_fault_event_bad.json
+${EVENT_BATCH_DATA_FILE}                 %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_fault_eventlist_batch.json
+${EVENT_THROTTLING_STATE_DATA_FILE}      %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_fault_provide_throttle_state.json
+${EVENT_PNF_REGISTRATION}                %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_pnf_registration_event.json
+${DCAE_HEALTH_CHECK_BODY}                %{WORKSPACE}/tests/dcae/testcases/assets/json_events/dcae_healthcheck.json
+
+#DCAE Health Check
+${CONFIG_BINDING_URL}                    http://localhost:8443
+${CB_HEALTHCHECK_PATH}                   /healthcheck
+${CB_SERVICE_COMPONENT_PATH}             /service_component/
+${VES_Service_Name1}                     dcae-controller-ves-collector
+${VES_Service_Name2}                     ves-collector-not-exist
\ No newline at end of file
