Deployment diagram:
Hardware requirements:
- ONAP - standard ONAP instance located in Wind River lab
- Virtual machine dedicated for High Volume PNF Simulator
- 8 VCPU
- 30 GB of RAM
- 100 GB of HDD
Sequence diagram:
High level test cases:
Flow Step | Test Case Description | Status | |
---|---|---|---|
TC1 | Authenticate Connection | Verifying the connection can be established using TCP | NOT TESTED |
TC2 | NF sends Real Time PM event and HV-VES Collector validates Event | Verify that VES Collector can receive and validate the hvMeas event—a) success—event header and field population agrees with GPB and b) failure event does not agree with GPB specification | NOT TESTED |
TC3 | Publish Event | Verify that direct publication is done successfully to Kafka) | NOT TESTED |
TC4 | Topic Content Validation | Using a simple analytics program subscribe to the RTPM topic and verify amount events in topic. | |
TC5 | Topic Content Validation (stretched goal) | Using a simple analytics program subscribe to the RTPM topic and using PM Dictionary/e.g. PM Content Meta Data and proto file generated code decode the data and display (stretched goal) | NOT TESTED |
TC6 | Additional Test Case for Performance | PNF High Volume Simulator sends N correct messages. DCAE Analytics application should consume N messages from DMaaP Kafka | NOT TESTED |
TC7 | Additional Test Case for Performance | PNF High Volume Simulator sends N1 correct messages, N2 incorrect due to wrong domain, N3 correct ones. DCAE Analytics application should consume N1+N3 messages from DMaaP Kafka | NOT TESTED |
TC8 | Additional Test Case for Performance | PNF High Volume Simulator sends N1 correct messages, N2 incorrect due to wrong wireprotocol, N3 correct ones. DCAE Analytics application should consume N1+N3 messages from DMaaP Kafka | NOT TESTED |
TC9 | Additional Test Case for Performance | PNF High Volume Simulator sends N1 correct messages, N2 incorrect due to undecodable GPB, N3 correct ones. DCAE Analytics application should consume N1+N3 messages from DMaaP Kafka | NOT TESTED |
TC10 | Additional Test Case for Performance | PNF High Volume Simulator sends N1 correct messages wherein one message have to big GPB payload. DCAE Analytics application should consume less then N1 messages from DMaaP Kafka. Verify if HV-VES has disconnected from such PNF | NOT TESTED |
Detail test cases
TC1 : Authenticate Connection
TC1 : Authenticate Connection | |||||
---|---|---|---|---|---|
Status | No run | ||||
Tester | Marek Pondel | ||||
Precondition | HV-VES XNF simulator (https://wiki.onap.org/display/DW/HV-VES+simulator) integrated to ONAP. | ||||
Steps | 1. | Check if HV-VES component supports TLS using nmap command , e.g. : nmap --script ssl-enum-ciphers -p6061 172.18.0.5 | Expected results | 1. | HV-VES supports TCP and TLS connections : root@marekpl-rtpmsim:~# nmap --script ssl-enum-ciphers -p6061 172.18.0.5 Starting Nmap 7.01 ( https://nmap.org ) at 2018-08-30 11:39 UTC Nmap scan report for 172.18.0.5 Host is up (0.000026s latency). PORT STATE SERVICE 6061/tcp open unknown | ssl-enum-ciphers: | TLSv1.0: | ciphers: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A | compressors: | NULL | cipher preference: server | TLSv1.1: | ciphers: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A | compressors: | NULL | cipher preference: server | TLSv1.2: | ciphers: | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A | TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A | compressors: | NULL | cipher preference: server |_ least strength: A MAC Address: 02:42:AC:12:00:05 (Unknown) Nmap done: 1 IP address (1 host up) scanned in 0.78 seconds root@marekpl-rtpmsim:~# |
2. | Gather TCP traffic during event is sent to HV-VES via XNF simulator, e.g. : tcpdump -i br-2663c4bf9ffd -X tcp portrange 6060-6061 -w ~/ssl.cap | 2. | Based on gathered cap file check if TLS connection was established during message sending to HV-VES : |
TC2 : NF sends Real Time PM event and HV-VES Collector validates Event
TC2 : NF sends Real Time PM event and HV-VES Collector validates Event | |||||
---|---|---|---|---|---|
Status | No run | ||||
Tester | Marek Pondel | ||||
Precondition | HV-VES XNF simulator (https://wiki.onap.org/display/DW/HV-VES+simulator) integrated to ONAP. | ||||
Steps | 1. | Send valid GPB format event to HV-VES and check logs , e.g. root@marekpl-rtpmsim:~# cat validXNF.json [ { "commonEventHeader": { "version": "sample-version", "domain": "HVRANMEAS", "sequence": 1, "priority": 1, "eventId": "sample-event-id", "eventName": "sample-event-name", "eventType": "sample-event-type", "startEpochMicrosec": 120034455, "lastEpochMicrosec": 120034455, "nfNamingCode": "sample-nf-naming-code", "nfcNamingCode": "sample-nfc-naming-code", "reportingEntityId": "sample-reporting-entity-id", "reportingEntityName": "sample-reporting-entity-name", "sourceId": "sample-source-id", "sourceName": "sample-source-name" }, "messageType": "FIXED_PAYLOAD", "messagesAmount": 1 } ] root@marekpl-rtpmsim:~# ./simulator.sh send ./validXNF.json {"response":"Request accepted"} root@marekpl-rtpmsim:~# | Expected results | 1. | Message is sent properly : root@marekpl-rtpmsim:~# docker logs --tail 0 -f 26c0470fef94 2018-08-30T12:20:44.098Z INFO [o.o.d.c.v.i.s.NettyTcpServer ] - Handling connection from /172.18.0.6:60070 2018-08-30T12:20:44.099Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder ] - Got message with total size of 336 B 2018-08-30T12:20:44.099Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder ] - Wire payload size: 328 B 2018-08-30T12:20:44.100Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder ] - Received end-of-transmission message 2018-08-30T12:20:44.100Z INFO [o.o.d.c.v.i.VesHvCollector ] - Completing stream because of receiving EOT message 2018-08-30T12:20:44.101Z TRACE [o.o.d.c.v.i.a.k.KafkaSink ] - Message #76 has been sent to ves_hvRanMeas:0 2018-08-30T12:20:44.101Z INFO [o.o.d.c.v.i.s.NettyTcpServer ] - Connection from /172.18.0.6:60070 has been closed |
2. | Send invalid GPB format event to HV-VES and check logs : root@marekpl-rtpmsim:~# cat invalidXNF.json [ { "commonEventHeader": { "version": "sample-version", "domain": "HVRANMEAS", "sequence": 1, "priority": 1, "eventId": "sample-event-id", "eventName": "sample-event-name", "eventType": "sample-event-type", "startEpochMicrosec": 120034455, "lastEpochMicrosec": 120034455, "nfNamingCode": "sample-nf-naming-code", "nfcNamingCode": "sample-nfc-naming-code", "reportingEntityId": "sample-reporting-entity-id", "reportingEntityName": "sample-reporting-entity-name", "sourceId": "sample-source-id", "sourceName": "sample-source-name" }, "messageType": "VALID", "messagesAmount": 1 }, { "commonEventHeader": { "version": "sample-version", "domain": "HVRANMEAS", "sequence": 1, "priority": 1, "eventId": "sample-event-id", "eventName": "sample-event-name", "eventType": "sample-event-type", "startEpochMicrosec": 120034455, "lastEpochMicrosec": 120034455, "nfNamingCode": "sample-nf-naming-code", "nfcNamingCode": "sample-nfc-naming-code", "reportingEntityId": "sample-reporting-entity-id", "reportingEntityName": "sample-reporting-entity-name", "sourceId": "sample-source-id", "sourceName": "sample-source-name" }, "messageType": "INVALID_GPB_DATA", "messagesAmount": 1 }, { "commonEventHeader": { "version": "sample-version", "domain": "HVRANMEAS", "sequence": 1, "priority": 1, "eventId": "sample-event-id", "eventName": "sample-event-name", "eventType": "sample-event-type", "startEpochMicrosec": 120034455, "lastEpochMicrosec": 120034455, "nfNamingCode": "sample-nf-naming-code", "nfcNamingCode": "sample-nfc-naming-code", "reportingEntityId": "sample-reporting-entity-id", "reportingEntityName": "sample-reporting-entity-name", "sourceId": "sample-source-id", "sourceName": "sample-source-name" }, "messageType": "VALID", "messagesAmount": 1 } ] root@marekpl-rtpmsim:~# | 2. | Invalid message was not sent to DMaaP topic. HV-VES log points proper number of messages processed : root@marekpl-rtpmsim:~# docker logs --tail 0 -f 26c0470fef94 2018-08-30T12:41:22.941Z INFO [o.o.d.c.v.i.s.NettyTcpServer ] - Handling connection from /172.18.0.6:60880 2018-08-30T12:41:22.941Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder ] - Got message with total size of 693 B 2018-08-30T12:41:22.941Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder ] - Wire payload size: 327 B 2018-08-30T12:41:22.942Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder ] - Wire payload size: 16 B 2018-08-30T12:41:22.943Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder ] - Wire payload size: 328 B 2018-08-30T12:41:22.943Z TRACE [o.o.d.c.v.i.a.k.KafkaSink ] - Message #86 has been sent to ves_hvRanMeas:0 2018-08-30T12:41:22.944Z TRACE [o.o.d.c.v.i.w.WireChunkDecoder ] - Received end-of-transmission message 2018-08-30T12:41:22.944Z INFO [o.o.d.c.v.i.VesHvCollector ] - Completing stream because of receiving EOT message 2018-08-30T12:41:22.944Z TRACE [o.o.d.c.v.i.a.k.KafkaSink ] - Message #87 has been sent to ves_hvRanMeas:0 2018-08-30T12:41:22.945Z INFO [o.o.d.c.v.i.s.NettyTcpServer ] - Connection from /172.18.0.6:60880 has been closed |
TC3 : Publish Event
TC3 : Publish Event | |||||
---|---|---|---|---|---|
Status | No run | ||||
Tester | Marek Pondel | ||||
Precondition | HV-VES XNF simulator (https://wiki.onap.org/display/DW/HV-VES+simulator) integrated to ONAP. | ||||
Steps | 1. | Start Kafka log on ves_hvRanMeas topic : root@marekpl-rtpmsim:~# docker exec -ti 0e0d1e4599b6 sh / # kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic ves_hvRanMeas | Expected results | 1. | The log is enabled. |
2. | Send valid event to HV-VES using XNF simulator. | 2. | The message is published on DMaaP ves_hvRanMeas topic : / # kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic ves_hvRanMeas sample-version *sample-version2sample-version:sample-version@9H9Rsample-nf-naming-codeZsample-nfc-naming-codebsample-reporting-entity-idjsample-reporting-entity-namersample-source-idzsample-source-named |
TC4 : Topic Content Validation
TC4 : Topic Content Validation | |||||
---|---|---|---|---|---|
Status | No run | ||||
Tester | Marek Pondel | ||||
Precondition | HV-VES XNF simulator (https://wiki.onap.org/display/DW/HV-VES+simulator) integrated to ONAP. | ||||
Steps | 1. | Start Kafka log. | Expected results | 1. | The log is enabled. |
2. | Send valid events to HV-VES and validate it's content. | 2. | Proper amount of events are published on Kafka topic and contain expected content. |
To do
- Define non-functional (performance) requirements for HV-VES.
- TC5 - TC10 update based on non-functional HV-VES requirements.