...
Flow Step | Test Case Description | Status | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TC1 | Authenticate Connectionconnection | Verifying the connection can be established using TCP. |
| Not Tested
| |||||||||
TC2 | NF sends Real Time PM event and HV-VES Collector validates Eventevent | Verify that HV-VES Collector collector can receive and validate the hvMeas event—a) success—event if event header and field population agrees with GPB and b) failure event does not agree with GPB specification. |
| Not Tested
| |||||||||
TC3 | Publish Eventevent | Verify that direct publication is done successfully to Kafka). |
| Not Tested
| |||||||||
TC4 | Topic Content Validationcontent validation | Using a simple analytics program subscribe to the RTPM topic and verify amount events in topic. |
| Not Tested
| |||||||||
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) |
| ||||||||||
TC6 | Additional Test Case for Performance | PNF High Volume Simulator sends N correct messages. DCAE Analytics application should consume N messages from DMaaP Kafka |
| ||||||||||
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 |
| ||||||||||
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 |
| ||||||||||
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 |
| ||||||||||
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 |
|
Detail test cases
TC1 : Authenticate Connection
Message validation based on domain | N1=5 correct, N2=3 incorrect due to wrong domain, N3=5 correct messages are sent to HV-VES. The collector should publish N1+N3 messages to DMaaP Kafka topic. |
| |||||||||
TC6 | Message validation based on WTP marker byte | N1=5 correct, N2=3 incorrect due to wrong wire protocol, N3=5 correct messages are sent to HV-VES. The collector should publish N1 messages to DMaaP Kafka topic. |
| ||||||||
TC7 | Message validation based on undecodable GPB | N1=5 correct, N2=3 incorrect due to undecodable GPB, N3=5 correct messages are sent to HV-VES. The collector should publish N1+N3 messages to DMaaPKafka topic. |
| ||||||||
TC8 | Message validation based on payload size | N1=5 correct, N2=3 incorrect due to payload size greater than 1MB, N3=5 correct messages are sent to HV-VES. The collector should publish N1 messages to DMaaP Kafka topic. |
| ||||||||
TC9 | Message validation based on WTP invalid format | N1=5 correct, N2=3 incorrect due to WTP invalid format, N3=5 correct messages are sent to HV-VES. The collector should publish N1+N3 messages to DMaaPKafka topic. |
| ||||||||
TC10 | Message over SSL | Verify that HV-VES collector can receive message over SSL. |
|
Detail test cases
Precondition:
ONAP setup with: consul, dcaegen2, dmaap, msb.
SSL activated in HV-VES (HV-VES simulator#VESsimulator-HV-VESwithSSLenabled)
TC1 : Authenticate Connection
TC1 : Authenticate Connection | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TC1 : Authenticate Connection | |||||||||||||||
Spec flow | 1. | ||||||||||||||
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.:
| Expected results | 1. | HV-VES supports TCP and TLS connections:
| ||||||||||
2. | Gather TCP traffic during event is sent to HV-VES via XNF simulator, e.g. :
| 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
...
Send valid GPB format event to HV-VES and check logs , e.g.
No Format | ||
---|---|---|
| ||
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:~# |
...
Message is sent properly :
No Format | ||
---|---|---|
| ||
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
|
...
Send invalid GPB format event to HV-VES and check logs :
No Format | ||
---|---|---|
| ||
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:~# ./simulator.sh send invalidXNF.json
{"response":"Request accepted"} |
...
Invalid message was not sent to DMaaP topic. HV-VES log points proper number of messages processed :
No Format | ||
---|---|---|
| ||
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
...
Start Kafka log on ves_hvRanMeas topic :
No Format | ||
---|---|---|
| ||
root@marekpl-rtpmsim:~# docker exec -ti 0e0d1e4599b6 sh
/ # kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic ves_hvRanMeas |
...
The log is enabled.
...
...
The message is published on DMaaP ves_hvRanMeas topic :
Code Block | ||
---|---|---|
| ||
/ # kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic ves_hvRanMeas
?
sample-version
*sample-version2sample-version:sample-version@???9H???9Rsample-nf-naming-codeZsample-nfc-naming-codebsample-reporting-entity-idjsample-reporting-entity-namersample-source-idzsample-source-named |
TC4 : Topic Content Validation
...
TC4 : Topic Content Validation
...
Start Kafka log.
...
The log is enabled.
...
TC2 : Collector validates event
TC2 : Collector validates event | |||||
---|---|---|---|---|---|
Steps | 1. | Send valid VesEvent (HV-VES simulator#VESsimulator-HV-VESmessagesimulationfromshell) to HV-VES and check logs. | Expected results | 1. | Message is received by the collector. |
2. | Send invalid VesEvent (WTP frame starting with 0xFF) to HV-VES and check logs. | 2. | Log is pointing that WTP frame should start with 0xAA instead of 0xFF. |
TC3 : Publish Event
TC3 : Publish Event | |||||
---|---|---|---|---|---|
Steps | 1. | Start Kafka log on HV_VES_PERF3GPP topic (HV-VES simulator#VESsimulator-HV-VESmessagesimulationfromshell). | Expected results | 1. | The log is enabled. |
2. | Send valid event to HV-VES. | 2. | The message is published on DMaaP: HV_VES_PERF3GPP topic. |
TC4 : Topic Content Validation
TC4 : Topic Content Validation | |||||
---|---|---|---|---|---|
Steps | 1. | Start Kafka log. | Expected results | 1. | The log is enabled. |
2. | Send valid event to HV-VES and validate its content (HV-VES simulator#VESsimulator-HV-VESmessagesimulationfromshell). | 2. | Published event contains expected content. |
TC5 : Message validation based on domain
TC5 : Message validation based on domain | |||||
---|---|---|---|---|---|
Steps | 1. | Send N1=5 correct, N2=3 incorrect due to wrong domain, N3=5 correct messages to HV-VES. | Expected results | 1. | N1+N3 messages are published on DMaaP Kafka topic. |
TC6 : Message validation based on WTP marker byte
TC6 : Message validation based on WTP marker byte | |||||
---|---|---|---|---|---|
Steps | 1. | Send N1=5 correct, N2=3 incorrect due to wrong Wire Transfer Protocol marker byte, N3=5 correct messages to HV-VES. | Expected results | 1. | N1 messages are published on DMaaP Kafka topic. TCP connection is interrupted by HV-VES when such a wrong message is received. |
TC7 : Message validation based on undecodable GPB
TC7 : Message validation based on undecodable GPB | |||||
---|---|---|---|---|---|
Steps | 1. | Send N1=5 correct, N2=3 incorrect due to undecodable GPB, N3=5 correct messages are sent to HV-VES. | Expected results | 1. | N1+N3 messages are published on DMaaP Kafka topic. |
TC8 : Message validation based on payload size
TC8 : Message validation based on payload size | |||||
---|---|---|---|---|---|
Steps | 1. | Send N1=5 correct, N2=3 incorrect due to payload size greater than 1MB, N3=5 correct messages to HV-VES. | Expected results | 1. | N1 messages are published on DMaaP Kafka topic. HV-VES interrupts connection when it encounters a message with too big GPB payload |
TC9 : Message validation based on WTP invalid format
TC9 : Message validation based on WTP invalid format | |||||
---|---|---|---|---|---|
Steps | 1. | Send N1=5 correct, N2=3 incorrect due to wrong Wire Transfer Protocol invalid format, N3=5 correct messages to HV-VES. | Expected results | 1. | N1+N3 messages are published on DMaaP Kafka topic. |
TC10 : Message over SSL
TC10 : Message over SSL | |||||
---|---|---|---|---|---|
Steps | 1. | Send valid event to HV-VES over SSL. | Expected results | 1. | SSL connection to HV-VES is setup and the message is published on DMaaP topic |
No Format | ||
---|---|---|
| ||
root@hv-ves-sim:~# cat hv-ves_sim/samples/xnf-simulator-smaller-valid-request_edited.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@hv-ves-sim:~# |
...
Published event contains expected content , e.g.
No Format | ||
---|---|---|
| ||
root@hv-ves-sim:~# kafkacat -C -b localhost:9092 -t ves_hvRanMeas -D "" -o -1 -c 1 | protoc --decode_raw --proto_path=/root/
1 {
1: "sample-version"
2: 11
3: 1
4: 1
5: "SAMPLE-EVENT-ID"
6: "sample-event-name"
7: "sample-event-type"
8: 120034455
9: 120034455
10: "sample-nf-naming-code"
11: "sample-nfc-naming-code"
12: "sample-reporting-entity-id"
13: "sample-reporting-entity-name"
14: "sample-source-id"
15: "SAMPLE-SOURCE-NAME"
}
2: "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
root@hv-ves-sim:~# |
To do
...
. |