Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Not TestedNot TestedNot TestedNot Tested

Flow Step

Test Case Description

Status
TC1

Authenticate Connectionconnection

Verifying the connection can be established using TCP.

Status
colourGreen
title

pass

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.

Status
colourGreen
title

pass

TC3

Publish Eventevent

Verify that direct publication is done successfully to Kafka).

Status
colourGreen
title

pass

TC4

Topic Content Validationcontent validation

Using a simple analytics program subscribe to the RTPM topic and verify amount events in topic.

Status
colourGreen
title

pass

TC5Topic 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)

Status
titleNot 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

Status
titleNot 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

Status
titleNot 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

Status
titleNot 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

Status
titleNot 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

Status
titleNot Tested

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.

Status
colourGreen
titlepass

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.

Status
colourGreen
titlepass

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.

Status
colourGreen
titlepass

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.

Status
colourGreen
titlepass

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.

Status
colourGreen
titlepass

TC10Message over SSLVerify that HV-VES collector can receive message over SSL.

Status
colourGreen
titlepass

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

HV-VES XNF simulator (https://wiki.onap.org/display/DW/HV-VES+simulator) integrated to ONAP.

TC1 : Authenticate Connection

TC1 : Authenticate Connection

Spec flow1.
StatusNo run
TesterMarek Pondel
Precondition

Steps1.

Check if HV-VES component supports TLS using nmap command, e.g.:

No Format
nopaneltrue
nmap --script ssl-enum-ciphers -p6061 172.18.0.5p30222 k8s_node_ip


Expected results1.

HV-VES supports TCP and TLS connections:

No Format
nopaneltrue
root@marekpl-rtpmsim:~# nmap --script ssl-enum-ciphers -p6061 172.18.0.5

Starting Nmap 7.01 ( https://nmap.org ) at 2018-0810-3015 1112:3956 UTC
Nmap scan report for 172.18.0.510-183-35-200.es-si-os-ohn-30.eecloud.nsn-net.net (10.183.35.200)
Host is up (0.000026s00079s latency).
PORT      STATE SERVICE
606130222/tcp open  unknown
| ssl-enum-ciphers: 
|   TLSv1.0: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1secp256k1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1secp256k1) - 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: serverclient
|   TLSv1.1: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1secp256k1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1secp256k1) - 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: serverclient
|   TLSv1.2: 
|     ciphers: 
|       TLS_ECDHE_RSA_WITH_AES_128_GCMCBC_SHA256SHA (secp256r1secp256k1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBCGCM_SHASHA256 (secp256r1secp256k1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1secp256k1) - A
|       TLS_RSA_WITH_AES_128_GCMCBC_SHA256SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBCGCM_SHASHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|     compressors: 
|       NULL
|     cipher preference: serverclient
|_  least strength: A

MACNmap Addressdone: 02:42:AC:12:00:05 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 01.7808 seconds
root@marekpl-rtpmsim:~#
2.

Gather TCP traffic during event is sent to HV-VES via XNF simulator, e.g. :

No Format
nopaneltrue
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 :

Image Removed

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
nopaneltrue
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
nopaneltrue
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
nopaneltrue
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
nopaneltrue
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
nopaneltrue
root@marekpl-rtpmsim:~# docker exec -ti 0e0d1e4599b6 sh
/ # kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic ves_hvRanMeas

...

The log is enabled.

...

Send valid event to HV-VES using XNF simulator.

...

The message is published on DMaaP ves_hvRanMeas topic :

Code Block
languagexml
/ # 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.

...

Send valid event to HV-VES and validate its content , e.g.


TC2 : Collector validates event

TC2 : Collector validates event

Steps1.

Send valid VesEvent (HV-VES simulator#VESsimulator-HV-VESmessagesimulationfromshell) to HV-VES and check logs.


Expected results1.

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

Steps1.

Start Kafka log on HV_VES_PERF3GPP topic (HV-VES simulator#VESsimulator-HV-VESmessagesimulationfromshell).



Expected results1.

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

Steps1.

Start Kafka log.

Expected results1.

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

Steps1.

Send N1=5 correct, N2=3 incorrect due to wrong domain, N3=5 correct messages to HV-VES.

Expected results1.

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

Steps1.

Send N1=5 correct, N2=3 incorrect due to wrong Wire Transfer Protocol marker byte, N3=5 correct messages to HV-VES.

Expected results1.

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

Steps1.

Send N1=5 correct, N2=3 incorrect due to undecodable GPB, N3=5 correct messages are sent to HV-VES.

Expected results1.

N1+N3 messages are published on DMaaP Kafka topic.

TC8 : Message validation based on payload size

TC8 : Message validation based on payload size

Steps1.

Send N1=5 correct, N2=3 incorrect due to payload size greater than 1MB, N3=5 correct messages to HV-VES.

Expected results1.

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

Steps1.

Send N1=5 correct, N2=3 incorrect due to wrong Wire Transfer Protocol invalid format, N3=5 correct messages to HV-VES.

Expected results1.

N1+N3 messages are published on DMaaP Kafka topic.

TC10 : Message over SSL

TC10 : Message over SSL

Steps1.

Send valid event to HV-VES over SSL.

Expected results1.

SSL connection to HV-VES is setup and the message is published on DMaaP topic

No Format
nopaneltrue
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
nopaneltrue
root@hv-ves-sim:~# kafkacat -C -b localhost:9092 -t ves_hvRanMeas -D "" -o -1 -c 1 | protoc --decode_raw --proto_path=~/hv-ves_sim/proto/
 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

...

.