aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_ml_payload.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_ml_response.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_payload_pm1.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_payload_pm2.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm1.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm2.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm3.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/ml_response.json69
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification1.json56
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification2.json56
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification3.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification4.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification5.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification6.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification7.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification8.json1
-rw-r--r--tests/dcaegen2-services-slice-analysis-ms/testcases/slice-analysis-ms-test.robot124
-rw-r--r--tests/so/etsi/data/responses/expectedArtifacts/image1
-rw-r--r--tests/so/etsi/etsi_vnf_package_management_tests.robot18
20 files changed, 338 insertions, 0 deletions
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_ml_payload.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_ml_payload.json
new file mode 100644
index 00000000..73425aaf
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_ml_payload.json
@@ -0,0 +1 @@
+{"name":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","serviceInstanceID":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","globalSubscriberId":"Customer-001","subscriptionServiceType":"Premium","networkType":"AN","additionalProperties":{"modifyAction":"reconfigure","snssaiList":["001-00110"],"sliceProfileId":"878f32c0-3699-4dbd-95a3-1f01d6c763fd","resourceConfig":{"snssai":"001-00110","data":[{"gNBCUName":"cucpserver1","nearRTRICId":"11","cellCUList":[{"cellLocalId":103593989,"configData":{"maxNumberofConns":"20","predictedMaxNumberofConns":"25","lastUpdatedTS":"yyyy/MM/dd HH:mm:ss"}}]}]},"nsiInfo":{"nsiName":"","nsiId":"23b250a7-61f3-460a-9bb2-d35923148541"},"scriptName":"AN"}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_ml_response.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_ml_response.json
new file mode 100644
index 00000000..576fc891
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_ml_response.json
@@ -0,0 +1 @@
+{"closedLoopControlName":"ControlLoop-Slicing-116d7b00-dbeb-4d03-8719-d0a658fa735b","closedLoopAlarmStart":1604468227374,"closedLoopEventClient":"microservice.sliceAnalysisMS","closedLoopEventStatus":"ONSET","requestID":"0196f8a4-117b-4e51-b013-92e0b7ad95a8","target":"vserver.vserver-name","payload":{"name":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","serviceInstanceID":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","globalSubscriberId":"Customer-001","subscriptionServiceType":"Premium","networkType":"AN","additionalProperties":{"modifyAction":"reconfigure","snssaiList":["001-00110"],"sliceProfileId":"878f32c0-3699-4dbd-95a3-1f01d6c763fd","resourceConfig":{"snssai":"001-00110","data":[{"gNBCUName":"cucpserver1","nearRTRICId":"11","cellCUList":[{"cellLocalId":103593989,"configData":{"maxNumberofConns":"20","predictedMaxNumberofConns":"25","lastUpdatedTS":"yyyy/MM/dd HH:mm:ss"}}]}]},"nsiInfo":{"nsiName":"","nsiId":"2d43ff64-76bd-437b-ab98-1e7aa3e5df5f"},"scriptName":"AN"}},"from":"DCAE","version":"1.0.2","target_type":"VNF","AAI":{"vserver.is-closed-loop-disabled":"false","vserver.prov-status":"ACTIVE","vserver.vserver-name":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82"}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_payload_pm1.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_payload_pm1.json
new file mode 100644
index 00000000..545b90c7
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_payload_pm1.json
@@ -0,0 +1 @@
+{"name":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","serviceInstanceID":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","globalSubscriberId":"Customer-001","subscriptionServiceType":"Premium","networkType":"AN","additionalProperties":{"modifyAction":"reconfigure","snssaiList":["001-00110"],"sliceProfileId":"878f32c0-3699-4dbd-95a3-1f01d6c763fd","resourceConfig":{"11":{"dLThptPerSlice":50,"uLThptPerSlice":40}},"nsiInfo":{"nsiName":"","nsiId":"b149c982-a124-4aaf-a917-89c32ec7b284"},"scriptName":"AN"}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_payload_pm2.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_payload_pm2.json
new file mode 100644
index 00000000..b1ea24b1
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_payload_pm2.json
@@ -0,0 +1 @@
+{"name":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","serviceInstanceID":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","globalSubscriberId":"Customer-001","subscriptionServiceType":"Premium","networkType":"AN","additionalProperties":{"modifyAction":"reconfigure","snssaiList":["001-010000"],"sliceProfileId":"878f32c0-3699-4dbd-95a3-1f01d6c763fd","resourceConfig":{"11":{"dLThptPerSlice":29,"uLThptPerSlice":32},"22":{"dLThptPerSlice":25,"uLThptPerSlice":28}},"nsiInfo":{"nsiName":"","nsiId":"493bf7aa-59a5-4f72-b1bc-f1bad9fc8600"},"scriptName":"AN"}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm.json
new file mode 100644
index 00000000..a1b49165
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm.json
@@ -0,0 +1 @@
+{"closedLoopControlName":"ControlLoop-Slicing-116d7b00-dbeb-4d03-8719-d0a658fa735b","closedLoopAlarmStart":1608198244852,"closedLoopEventClient":"microservice.sliceAnalysisMS","closedLoopEventStatus":"ONSET","requestID":"4fae9c22-59f1-47e8-a8a2-c4cbb79418cc","target":"vserver.vserver-name","payload":{"name":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","serviceInstanceID":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","globalSubscriberId":"Customer-001","subscriptionServiceType":"Premium","networkType":"AN","additionalProperties":{"modifyAction":"reconfigure","snssaiList":["001-010000"],"sliceProfileId":"878f32c0-3699-4dbd-95a3-1f01d6c763fd","resourceConfig":{"11":{"dLThptPerSlice":29,"uLThptPerSlice":32},"22":{"dLThptPerSlice":25,"uLThptPerSlice":28}},"nsiInfo":{"nsiName":"","nsiId":"f61681df-cbbe-4851-9ab6-fab24c8c77b4"},"scriptName":"AN"}},"from":"DCAE","version":"1.0.2","target_type":"VNF","AAI":{"vserver.is-closed-loop-disabled":"false","vserver.prov-status":"ACTIVE","vserver.vserver-name":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82"}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm1.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm1.json
new file mode 100644
index 00000000..bd4ca924
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm1.json
@@ -0,0 +1 @@
+{"closedLoopControlName":"ControlLoop-Slicing-116d7b00-dbeb-4d03-8719-d0a658fa735b","closedLoopAlarmStart":1604494201291,"closedLoopEventClient":"microservice.sliceAnalysisMS","closedLoopEventStatus":"ONSET","requestID":"0afb48b6-db08-45d6-aff3-675255f51ed5","target":"vserver.vserver-name","payload":{"name":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","serviceInstanceID":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","globalSubscriberId":"Customer-001","subscriptionServiceType":"Premium","networkType":"AN","additionalProperties":{"modifyAction":"reconfigure","snssaiList":["001-00110"],"sliceProfileId":"878f32c0-3699-4dbd-95a3-1f01d6c763fd","resourceConfig":{"11":{"dLThptPerSlice":50,"uLThptPerSlice":40}},"nsiInfo":{"nsiName":"","nsiId":"a7f1242d-5889-46c3-bb0a-800c6ae388d1"},"scriptName":"AN"}},"from":"DCAE","version":"1.0.2","target_type":"VNF","AAI":{"vserver.is-closed-loop-disabled":"false","vserver.prov-status":"ACTIVE","vserver.vserver-name":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82"}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm2.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm2.json
new file mode 100644
index 00000000..bd4ca924
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm2.json
@@ -0,0 +1 @@
+{"closedLoopControlName":"ControlLoop-Slicing-116d7b00-dbeb-4d03-8719-d0a658fa735b","closedLoopAlarmStart":1604494201291,"closedLoopEventClient":"microservice.sliceAnalysisMS","closedLoopEventStatus":"ONSET","requestID":"0afb48b6-db08-45d6-aff3-675255f51ed5","target":"vserver.vserver-name","payload":{"name":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","serviceInstanceID":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82","globalSubscriberId":"Customer-001","subscriptionServiceType":"Premium","networkType":"AN","additionalProperties":{"modifyAction":"reconfigure","snssaiList":["001-00110"],"sliceProfileId":"878f32c0-3699-4dbd-95a3-1f01d6c763fd","resourceConfig":{"11":{"dLThptPerSlice":50,"uLThptPerSlice":40}},"nsiInfo":{"nsiName":"","nsiId":"a7f1242d-5889-46c3-bb0a-800c6ae388d1"},"scriptName":"AN"}},"from":"DCAE","version":"1.0.2","target_type":"VNF","AAI":{"vserver.is-closed-loop-disabled":"false","vserver.prov-status":"ACTIVE","vserver.vserver-name":"3f2f23fa-c567-4dd8-8f15-f95ae3e6fd82"}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm3.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm3.json
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/expected_pm3.json
@@ -0,0 +1 @@
+
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/ml_response.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/ml_response.json
new file mode 100644
index 00000000..d287d036
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/ml_response.json
@@ -0,0 +1,69 @@
+{
+
+
+
+"snssai":"001-00110",
+
+
+
+"data":[
+
+
+
+{
+
+
+
+"gNBCUName":"cucpserver1",
+
+
+
+"cellCUList":[
+
+
+
+{
+
+
+
+"cellLocalId":103593989,
+
+
+
+"configData":{
+
+
+
+"maxNumberofConns":"20",
+
+
+
+"predictedMaxNumberofConns":"25",
+
+
+
+"lastUpdatedTS":"yyyy/MM/dd HH:mm:ss"
+
+
+
+}
+
+
+
+}
+
+
+
+]
+
+
+
+}
+
+
+
+]
+
+
+
+}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification1.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification1.json
new file mode 100644
index 00000000..1919e95d
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification1.json
@@ -0,0 +1,56 @@
+{
+ "event": {
+ "commonEventHeader": {
+ "domain": "perf3gpp",
+ "eventId": "9e7c7db8-7a51-4bff-94f5-b530296edd7c",
+ "sequence": 0,
+ "eventName": "perf3gpp_AcmeNode-Acme_pmMeasResult",
+ "sourceName": "oteNB5309",
+ "reportingEntityName": "",
+ "priority": "Normal",
+ "startEpochMicrosec": 1538478000000,
+ "lastEpochMicrosec": 1538478900000,
+ "version": "4.0",
+ "vesEventListenerVersion": "7.1",
+ "timeZoneOffset": "UTC+05:00"
+ },
+ "perf3gppFields": {
+ "perf3gppFieldsVersion": "1.0",
+ "measDataCollection": {
+ "granularityPeriod": 1538482500000,
+ "measuredEntityUserName": "",
+ "measuredEntityDn": "1",
+ "measuredEntitySoftwareVersion": "r0.1",
+ "measInfoList": [{
+ "measInfoId": {
+ "sMeasInfoId": "some measInfoId"
+ },
+ "measTypes": {
+ "sMeasTypesList": ["SM.PrbUsedDl.001-00110", "SM.PrbUsedUl.001-00110"]
+ },
+ "measValuesList": [{
+ "measObjInstId": "103593989",
+ "suspectFlag": "false",
+ "measResults": [{
+ "p": 1,
+ "sValue": "75"
+ }, {
+ "p": 2,
+ "sValue": "84"
+ }]
+ }, {
+ "measObjInstId": "103593999",
+ "suspectFlag": "false",
+ "measResults": [{
+ "p": 1,
+ "sValue": "90"
+ }, {
+ "p": 2,
+ "sValue": "95"
+ }]
+ }]
+ }]
+ }
+ }
+ }
+}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification2.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification2.json
new file mode 100644
index 00000000..7ca8a652
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification2.json
@@ -0,0 +1,56 @@
+{
+ "event": {
+ "commonEventHeader": {
+ "domain": "perf3gpp",
+ "eventId": "9e7c7db8-7a51-4bff-94f5-b530296edd7c",
+ "sequence": 0,
+ "eventName": "perf3gpp_AcmeNode-Acme_pmMeasResult",
+ "sourceName": "oteNB5309",
+ "reportingEntityName": "",
+ "priority": "Normal",
+ "startEpochMicrosec": 1538478000000,
+ "lastEpochMicrosec": 1538478900000,
+ "version": "4.0",
+ "vesEventListenerVersion": "7.1",
+ "timeZoneOffset": "UTC+05:00"
+ },
+ "perf3gppFields": {
+ "perf3gppFieldsVersion": "1.0",
+ "measDataCollection": {
+ "granularityPeriod": 1538482500000,
+ "measuredEntityUserName": "",
+ "measuredEntityDn": "1",
+ "measuredEntitySoftwareVersion": "r0.1",
+ "measInfoList": [{
+ "measInfoId": {
+ "sMeasInfoId": "some measInfoId"
+ },
+ "measTypes": {
+ "sMeasTypesList": ["SM.PrbUsedDl.001-010000", "SM.PrbUsedUl.001-010000"]
+ },
+ "measValuesList": [{
+ "measObjInstId": "103593989",
+ "suspectFlag": "false",
+ "measResults": [{
+ "p": 1,
+ "sValue": "75"
+ }, {
+ "p": 2,
+ "sValue": "84"
+ }]
+ }, {
+ "measObjInstId": "103593999",
+ "suspectFlag": "false",
+ "measResults": [{
+ "p": 1,
+ "sValue": "90"
+ }, {
+ "p": 2,
+ "sValue": "95"
+ }]
+ }]
+ }]
+ }
+ }
+ }
+}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification3.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification3.json
new file mode 100644
index 00000000..78f5ccb6
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification3.json
@@ -0,0 +1 @@
+{"event": {"commonEventHeader": {"domain":"perf3gpp","eventId": "65e9a550-5f74-4952-bb89-07ce5aa51ce3","sequence": 0,"eventName": "perf3gpp_AcmeNode-Acme_pmMeasResult","sourceName": "oteNB5309","reportingEntityName": "","priority": "Normal","startEpochMicrosec": 1538478000000,"lastEpochMicrosec": 1538478900000,"version": "4.0","vesEventListenerVersion": "7.1","timeZoneOffset": "UTC+05:00"},"perf3gppFields": {"perf3gppFieldsVersion": "1.0","measDataCollection": {"granularityPeriod": 1538482500000,"measuredEntityUserName": "","measuredEntityDn": "2","measuredEntitySoftwareVersion": "r0.1","measInfoList": [{"measInfoId": {"sMeasInfoId": "some measInfoId"},"measTypes": {"sMeasTypesList":["SM.PrbUsedDl.001-010000","SM.PrbUsedUl.001-010000"]},"measValuesList": [{"measObjInstId": "95697155","suspectFlag": "false","measResults": [{"p": 1,"sValue": "80"},{"p": 2,"sValue": "70"}]},{"measObjInstId": "95697175","suspectFlag": "false","measResults": [{"p": 1,"sValue": "82"},{"p": 2,"sValue": "72"}]},{"measObjInstId": "95697174","suspectFlag": "false","measResults": [{"p": 1,"sValue": "85"},{"p": 2,"sValue": "75"}]}]}]}}}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification4.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification4.json
new file mode 100644
index 00000000..4f81e9ba
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification4.json
@@ -0,0 +1 @@
+{"event": {"commonEventHeader": {"domain": "perf3gpp","eventId": "0556fcae-e684-41fe-b85f-d033a11fe161","sequence": 0,"eventName": "perf3gpp_AcmeNode-Acme_pmMeasResult","sourceName": "oteNB5309","reportingEntityName": "","priority": "Normal","startEpochMicrosec": 1538478000000,"lastEpochMicrosec": 1538478900000,"version": "4.0","vesEventListenerVersion": "7.1","timeZoneOffset": "UTC+05:00"},"perf3gppFields": {"perf3gppFieldsVersion": "1.0","measDataCollection": {"granularityPeriod": 1538482500000,"measuredEntityUserName": "","measuredEntityDn": "2","measuredEntitySoftwareVersion": "r0.1","measInfoList": [{"measInfoId": {"sMeasInfoId": "some measInfoId"},"measTypes": {"sMeasTypesList":["SM.PrbUsedDl.001-010000","SM.PrbUsedUl.001-010000"]},"measValuesList": [{"measObjInstId": "95697155","suspectFlag": "false","measResults": [{"p": 1,"sValue": "81"},{"p": 2,"sValue": "71"}]},{"measObjInstId": "95697175","suspectFlag": "false","measResults": [{"p": 1,"sValue": "83"},{"p": 2,"sValue": "73"}]},{"measObjInstId": "95697174","suspectFlag": "false","measResults": [{"p": 1,"sValue": "86"},{"p": 2,"sValue": "76"}]}]}]}}}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification5.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification5.json
new file mode 100644
index 00000000..877d205b
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification5.json
@@ -0,0 +1 @@
+{"event": {"commonEventHeader": {"domain": "perf3gpp","eventId": "246cd43f-3e6e-4e54-84cd-c9dcf2723c3c","sequence": 0,"eventName": "perf3gpp_AcmeNode-Acme_pmMeasResult","sourceName": "oteNB5309","reportingEntityName": "","priority": "Normal","startEpochMicrosec": 1538478000000,"lastEpochMicrosec": 1538478900000,"version": "4.0","vesEventListenerVersion": "7.1","timeZoneOffset": "UTC+05:00"},"perf3gppFields": {"perf3gppFieldsVersion": "1.0","measDataCollection": {"granularityPeriod": 1538482500000,"measuredEntityUserName": "","measuredEntityDn": "2","measuredEntitySoftwareVersion": "r0.1","measInfoList": [{"measInfoId": {"sMeasInfoId": "some measInfoId"},"measTypes": {"sMeasTypesList":["SM.PrbUsedDl.001-010000","SM.PrbUsedUl.001-010000"]},"measValuesList": [{"measObjInstId": "95697155","suspectFlag": "false","measResults": [{"p": 1,"sValue": "82"},{"p": 2,"sValue": "72"}]},{"measObjInstId": "95697175","suspectFlag": "false","measResults": [{"p": 1,"sValue": "84"},{"p": 2,"sValue": "74"}]},{"measObjInstId": "95697174","suspectFlag": "false","measResults": [{"p": 1,"sValue": "87"},{"p": 2,"sValue": "77"}]}]}]}}}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification6.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification6.json
new file mode 100644
index 00000000..74857e02
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification6.json
@@ -0,0 +1 @@
+{"event": {"commonEventHeader": {"domain": "perf3gpp","eventId": "c37b045f-4339-4ef2-9b64-3b781d6d8378","sequence": 0,"eventName": "perf3gpp_AcmeNode-Acme_pmMeasResult","sourceName": "oteNB5309","reportingEntityName": "","priority": "Normal","startEpochMicrosec": 1538478000000,"lastEpochMicrosec": 1538478900000,"version": "4.0","vesEventListenerVersion": "7.1","timeZoneOffset": "UTC+05:00"},"perf3gppFields": {"perf3gppFieldsVersion": "1.0","measDataCollection": {"granularityPeriod": 1538482500000,"measuredEntityUserName": "","measuredEntityDn": "4","measuredEntitySoftwareVersion": "r0.1","measInfoList": [{"measInfoId": {"sMeasInfoId": "some measInfoId"},"measTypes": {"sMeasTypesList":["SM.PrbUsedDl.001-010000","SM.PrbUsedUl.001-010000"]},"measValuesList": [{"measObjInstId": "112951561","suspectFlag": "false","measResults": [{"p": 1,"sValue": "70"},{"p": 2,"sValue": "60"}]},{"measObjInstId": "112951562","suspectFlag": "false","measResults": [{"p": 1,"sValue": "72"},{"p": 2,"sValue": "63"}]},{"measObjInstId": "112951568","suspectFlag": "false","measResults": [{"p": 1,"sValue": "75"},{"p": 2,"sValue": "65"}]}]}]}}}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification7.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification7.json
new file mode 100644
index 00000000..312bc547
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification7.json
@@ -0,0 +1 @@
+{"event": {"commonEventHeader": {"domain": "perf3gpp","eventId": "88a3ad1f-9b58-4f49-85ba-2645856bb885","sequence": 0,"eventName": "perf3gpp_AcmeNode-Acme_pmMeasResult","sourceName": "oteNB5309","reportingEntityName": "","priority": "Normal","startEpochMicrosec": 1538478000000,"lastEpochMicrosec": 1538478900000,"version": "4.0","vesEventListenerVersion": "7.1","timeZoneOffset": "UTC+05:00"},"perf3gppFields": {"perf3gppFieldsVersion": "1.0","measDataCollection": {"granularityPeriod": 1538482500000,"measuredEntityUserName": "","measuredEntityDn": "4","measuredEntitySoftwareVersion": "r0.1","measInfoList": [{"measInfoId": {"sMeasInfoId": "some measInfoId"},"measTypes": {"sMeasTypesList":["SM.PrbUsedDl.001-010000","SM.PrbUsedUl.001-010000"]},"measValuesList": [{"measObjInstId": "112951561","suspectFlag": "false","measResults": [{"p": 1,"sValue": "71"},{"p": 2,"sValue": "61"}]},{"measObjInstId": "112951562","suspectFlag": "false","measResults": [{"p": 1,"sValue": "73"},{"p": 2,"sValue": "63"}]},{"measObjInstId": "112951568","suspectFlag": "false","measResults": [{"p": 1,"sValue": "76"},{"p": 2,"sValue": "66"}]}]}]}}}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification8.json b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification8.json
new file mode 100644
index 00000000..82cec2c6
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/data/performance_notification8.json
@@ -0,0 +1 @@
+{"event": {"commonEventHeader": {"domain": "perf3gpp","eventId": "c99eb88b-2907-4aec-8bf3-4532ebd9d50b","sequence": 0,"eventName": "perf3gpp_AcmeNode-Acme_pmMeasResult","sourceName": "oteNB5309","reportingEntityName": "","priority": "Normal","startEpochMicrosec": 1538478000000,"lastEpochMicrosec": 1538478900000,"version": "4.0","vesEventListenerVersion": "7.1","timeZoneOffset": "UTC+05:00"},"perf3gppFields": {"perf3gppFieldsVersion": "1.0","measDataCollection": {"granularityPeriod": 1538482500000,"measuredEntityUserName": "","measuredEntityDn": "4","measuredEntitySoftwareVersion": "r0.1","measInfoList": [{"measInfoId": {"sMeasInfoId": "some measInfoId"},"measTypes": {"sMeasTypesList":["SM.PrbUsedDl.001-010000","SM.PrbUsedUl.001-010000"]},"measValuesList": [{"measObjInstId": "112951561","suspectFlag": "false","measResults": [{"p": 1,"sValue": "72"},{"p": 2,"sValue": "62"}]},{"measObjInstId": "112951562","suspectFlag": "false","measResults": [{"p": 1,"sValue": "74"},{"p": 2,"sValue": "64"}]},{"measObjInstId": "112951568","suspectFlag": "false","measResults": [{"p": 1,"sValue": "77"},{"p": 2,"sValue": "67"}]}]}]}}}}
diff --git a/tests/dcaegen2-services-slice-analysis-ms/testcases/slice-analysis-ms-test.robot b/tests/dcaegen2-services-slice-analysis-ms/testcases/slice-analysis-ms-test.robot
new file mode 100644
index 00000000..db9925f8
--- /dev/null
+++ b/tests/dcaegen2-services-slice-analysis-ms/testcases/slice-analysis-ms-test.robot
@@ -0,0 +1,124 @@
+*** Settings ***
+Library Collections
+Library Process
+Library RequestsLibrary
+Library String
+Library OperatingSystem
+
+Suite Teardown Delete All Sessions
+
+*** Variables ***
+${SLICE_ANALYSIS_MS_BASE_URL} http://${SLICE_ANALYSIS_MS_IP}:8080
+${HEALTHCHECK_ENDPOINT} /healthcheck
+${DMAAP_URL} http://${DMAAP_IP}:3904/events
+${unauthenticated.DCAE_CL_OUTPUT} /unauthenticated.DCAE_CL_OUTPUT/23/23
+${POST_DMAAP_EVENT_FOR_ML_NOTIF_URL} http://${DMAAP_IP}:3904/events/unauthenticated.ML_RESPONSE_TOPIC
+${POST_DMAAP_EVENT_FOR_PM_NOTIF_URL} http://${DMAAP_IP}:3904/events/unauthenticated.PERFORMANCE_MEASUREMENTS
+
+
+*** Test Cases ***
+
+HealthCheck
+
+ Create Session sliceanalysisms ${SLICE_ANALYSIS_MS_BASE_URL}
+ ${resp}= Get Request sliceanalysisms ${HEALTHCHECK_ENDPOINT}
+ Should Be Equal As Strings ${resp.status_code} 200
+
+
+Post ml notification to dmaap
+ Create Session dmaap ${DMAAP_URL}
+ ${headers}= Create Dictionary Content-Type application/json
+ ${data}= Get File ${TEST_ROBOT_DIR}/data/ml_response.json
+ ${response}= Evaluate requests.post('${POST_DMAAP_EVENT_FOR_ML_NOTIF_URL}', data=$data)
+ Should Be Equal As Strings ${response.status_code} 200
+
+
+Verify ml notification trigger
+ Create Session dmaap ${DMAAP_URL}
+ FOR ${i} IN RANGE 30
+ ${result}= Get Request dmaap ${unauthenticated.DCAE_CL_OUTPUT}
+ Exit For Loop If ${result.json()} != @{EMPTY}
+ Log Waiting for slice-analysis-ms to handle trigger... console=${True}
+ Sleep 5s
+ END
+
+ ${expected_string}= Get File ${TEST_ROBOT_DIR}/data/expected_ml_payload.json
+ ${expected_payload}= Evaluate json.loads("""${expected_string}""") json
+ ${result}= Convert To String ${result.content}
+ ${result_string}= Get Substring ${result} 2 -2
+ ${actual_data}= Evaluate json.loads("""${result_string}""") json
+ ${actual_payload_str}= Set Variable ${actual_data['payload']}
+ ${actual_payload}= Evaluate json.loads("""${actual_payload_str}""") json
+ set to dictionary ${expected_payload['additionalProperties']['nsiInfo']} nsiId=${actual_payload['additionalProperties']['nsiInfo']['nsiId']}
+ Should Be True """${actual_payload}""".strip() == """${expected_payload}""".strip()
+
+
+Post pm notification-1 to dmaap
+ ${data}= Get File ${TEST_ROBOT_DIR}/data/performance_notification1.json
+ FOR ${j} IN RANGE 6
+ ${response}= Evaluate requests.post('${POST_DMAAP_EVENT_FOR_PM_NOTIF_URL}', data=$data)
+ Sleep 10s
+ END
+ Should Be Equal As Strings ${response.status_code} 200
+
+
+Verify pm notification-1 trigger
+ Create Session dmaap ${DMAAP_URL}
+ FOR ${i} IN RANGE 20
+ ${result}= Get Request dmaap ${unauthenticated.DCAE_CL_OUTPUT}
+ Exit For Loop If ${result.json()} != @{EMPTY}
+ Log Waiting for sliceanalysisms to handle trigger... console=${True}
+ Sleep 30s
+ END
+ ${expected_string}= Get File ${TEST_ROBOT_DIR}/data/expected_payload_pm1.json
+ ${expected_payload}= Evaluate json.loads("""${expected_string}""") json
+ ${result}= Convert To String ${result.content}
+ ${result_string}= Get Substring ${result} 2 -2
+ ${actual_data}= Evaluate json.loads("""${result_string}""") json
+ ${actual_payload_str}= Set Variable ${actual_data['payload']}
+ ${actual_payload}= Evaluate json.loads("""${actual_payload_str}""") json
+ set to dictionary ${expected_payload['additionalProperties']['nsiInfo']} nsiId=${actual_payload['additionalProperties']['nsiInfo']['nsiId']}
+ Should Be True """${actual_payload}""".strip() == """${expected_payload}""".strip()
+
+
+
+Post pm notification-2 to dmaap
+ ${data}= Get File ${TEST_ROBOT_DIR}/data/performance_notification3.json
+ ${data1}= Get File ${TEST_ROBOT_DIR}/data/performance_notification4.json
+ ${data2}= Get File ${TEST_ROBOT_DIR}/data/performance_notification5.json
+ ${data3}= Get File ${TEST_ROBOT_DIR}/data/performance_notification6.json
+ ${data4}= Get File ${TEST_ROBOT_DIR}/data/performance_notification7.json
+ ${data5}= Get File ${TEST_ROBOT_DIR}/data/performance_notification8.json
+ FOR ${i} IN RANGE 6
+ ${response}= Evaluate requests.post('${POST_DMAAP_EVENT_FOR_PM_NOTIF_URL}', data=$data)
+ ${response1}= Evaluate requests.post('${POST_DMAAP_EVENT_FOR_PM_NOTIF_URL}', data=$data1)
+ ${response2}= Evaluate requests.post('${POST_DMAAP_EVENT_FOR_PM_NOTIF_URL}', data=$data2)
+ ${response3}= Evaluate requests.post('${POST_DMAAP_EVENT_FOR_PM_NOTIF_URL}', data=$data3)
+ ${response4}= Evaluate requests.post('${POST_DMAAP_EVENT_FOR_PM_NOTIF_URL}', data=$data4)
+ ${response5}= Evaluate requests.post('${POST_DMAAP_EVENT_FOR_PM_NOTIF_URL}', data=$data5)
+ END
+ Should Be Equal As Strings ${response.status_code} 200
+ Should Be Equal As Strings ${response1.status_code} 200
+ Should Be Equal As Strings ${response2.status_code} 200
+ Should Be Equal As Strings ${response3.status_code} 200
+ Should Be Equal As Strings ${response4.status_code} 200
+ Should Be Equal As Strings ${response5.status_code} 200
+
+
+Verify pm notification-2 trigger
+ Create Session dmaap ${DMAAP_URL}
+ FOR ${i} IN RANGE 20
+ ${result}= Get Request dmaap ${unauthenticated.DCAE_CL_OUTPUT}
+ Exit For Loop If ${result.json()} != @{EMPTY}
+ Log Waiting for sliceanalysisms to handle trigger... console=${True}
+ Sleep 30s
+ END
+ ${expected_string}= Get File ${TEST_ROBOT_DIR}/data/expected_payload_pm2.json
+ ${expected_payload}= Evaluate json.loads("""${expected_string}""") json
+ ${result}= Convert To String ${result.content}
+ ${result_string}= Get Substring ${result} 2 -2
+ ${actual_data}= Evaluate json.loads("""${result_string}""") json
+ ${actual_payload_str}= Set Variable ${actual_data['payload']}
+ ${actual_payload}= Evaluate json.loads("""${actual_payload_str}""") json
+ set to dictionary ${expected_payload['additionalProperties']['nsiInfo']} nsiId=${actual_payload['additionalProperties']['nsiInfo']['nsiId']}
+ Should Be True """${actual_payload}""".strip() == """${expected_payload}""".strip()
diff --git a/tests/so/etsi/data/responses/expectedArtifacts/image b/tests/so/etsi/data/responses/expectedArtifacts/image
new file mode 100644
index 00000000..f31d15df
--- /dev/null
+++ b/tests/so/etsi/data/responses/expectedArtifacts/image
@@ -0,0 +1 @@
+ubuntu_16.04
diff --git a/tests/so/etsi/etsi_vnf_package_management_tests.robot b/tests/so/etsi/etsi_vnf_package_management_tests.robot
index 11041c1d..b7cd337f 100644
--- a/tests/so/etsi/etsi_vnf_package_management_tests.robot
+++ b/tests/so/etsi/etsi_vnf_package_management_tests.robot
@@ -99,6 +99,24 @@ Get VNF Package VNFD
Remove Directory ${TEMPDIR}${/}${TEST_DIR} recursive=True
Log To Console \nexecuted with expected result
+Get A VNF Package Artifact
+ ${artifactPath}= Convert To String image
+ Create Session so_vnfm_adapter_session http://${REPO_IP}:9092
+ &{headers}= Create Dictionary Authorization=${BASIC_AUTH} Content-Type=application/json Accept=application/octet-stream
+ Log to Console \nGetting ${artifactPath} artifact from Vnf Package with id ${vnf_package_id} from so-vnfm-adapter
+ ${response}= Get On Session so_vnfm_adapter_session ${PACKAGE_MANAGEMENT_BASE_URL}/vnf_packages/${vnf_package_id}/artifacts/${artifactPath} headers=${headers}
+ Log To Console Response:${response}
+ Run Keyword If '${response.status_code}' == '200' Log To Console \nexecuted with expected result
+ Should Be Equal As Strings '${response.status_code}' '200'
+ Create Directory ${TEMPDIR}${/}${TEST_DIR}
+ Empty Directory ${TEMPDIR}${/}${TEST_DIR}
+ Create Binary File ${TEMPDIR}${/}${TEST_DIR}${/}${artifactPath} ${response.content}
+ ${expectedArtifact}= Get Binary File ${CURDIR}${/}data${/}responses${/}expectedArtifacts${/}${artifactPath}
+ ${actualArtifact}= Get Binary File ${TEMPDIR}${/}${TEST_DIR}${/}${artifactPath}
+ Should Be Equal As Strings ${expectedArtifact} ${actualArtifact}
+ Remove Directory ${TEMPDIR}${/}${TEST_DIR} recursive=True
+ Log To Console \nexecuted with expected result
+
*** Keywords ***
Should Be Equal File Size
[Arguments] ${file1} ${file2}