Contents
Overview of ONAP Testing Requirements
TODO
Beijing Release Testing
OOF Beijing Release CSIT Functional Test Cases
Acknowlegment: adapted from Policy Team's CSIT Functional Test Cases created by Pamela Dragosh
Id | Description | Pre-conditions | Test Steps | Expected Results |
A: Tests Related to Health Checks | ||||
A.1: OOF Component Health Checks via GET methods Notes: (a) check whether https can be used, and (b) check whether mutual TLS is required when using OOM/K8S | ||||
A.1a | Perform healthcheck for the OOF components using Healthcheck API
| OSDF and HAS application components (<list components>) should be up and running Server and authentication details should be configured at $OOF_HOME/config/feature-healthcheck.properties | API – healthcheck Method - GET Endpoint: http://<host>:<port>/healthcheck OR https://<host>:<port>/healthcheck | All components should return health status as “true” (HTTP code 200, content as string "true") |
A.2: (Robot Driven?) Health Checks for Dependencies (Real Components; test cases also useful for integration testing) Testing whether dependencies (external components such as Policy, A&AI, Multi Cloud, etc., and all OOF containers) are responding to health checks. | ||||
A.2a | Perform healthcheck for the following external components and OOF components using Healthcheck API
| Service configuration file(s) should be available and loaded. Services should be up and running. | API – healthcheck Method - GET Endpoint: http://<host>:<port>/healthcheck OR https://<host>:<port>/healthcheck | All components should return health status as “true” (HTTP code 200, content as string "true") Note 1: Verify whether the external components also have standardized on "true" as the value Note 2: Verify if this step is required or optional (it will help in quickly debugging but will add extra logic in our testing) |
Checking Dependencies (Mostly external components) via Emulators Testing whether dependencies (mostly external components such as Policy, A&AI, Multi Cloud, etc., and in some cases other OOF containers) are available and return expected data. The external components will be mock emulators, while internal components may be mock or real. | ||||
2 | Retrieve data from mock emulators for the following components or links via emulators:
| Emulator configuration file should be available and loaded. Emulator services should be up and running. For some internal component testing, emulators may be replaced by real systems when convenient | API – specific to each component Method - POST in most cases; GET in some cases Endpoint: http://<host>:<port>/<specific-API> Notes:
| Should receive expected data TODO: Expand individual cases as separate cells within this section |
Health Checks for Dependencies (Real Components; test cases also useful for integration testing) Testing whether dependencies (external components such as Policy, A&AI, Multi Cloud, etc., and all OOF containers) are responding to health checks. | ||||
3 | Retrieve data from mock emulators for the following components or links via emulators:
| Policy components up and running | API – CreateConfig Method – PUT Endpoint: https://<host>:8081/Pdp/createPolicy | Config Policy should be created in Policy Engine (PAP) |
4 | Push Config policy to the PDP Engines for the following use cases
| Policy components up and running | API - pushPolicy Method - PUT Endpoint: https:// <host>:8081/Pdp/pushPolicy | Config Policy should be pushed to the PDP group |
5 | Create Operational policy for the following use cases
| Policy components up and running | API - createPolicy Method – PUT Endpoint: https://<host>:8081/Pdp/createPolicy | Operational Policy should be created in Policy Engine (PAP) |
6 | Push operational Policy to the PDP Engines for each use case
| Policy components up and running | API - pushPolicy Method - PUT Endpoint: https:// <host>:8081/Pdp/pushPolicy | Operational Policy should be pushed to the PDP group |
7 | Retrieve the configs for the following use cases
| Policy components up and running | API – getConfig Method – POST Endpoint: https://<host>:8081/Pdp/getConfig | Both Config and Operational Policies configured for each use case should be retrieved successfully |
vFirewall Use Case
tca_policy: "{ "domain": "measurementsForVfScaling", "metricsPerEventName": [ { "eventName": "vFirewallBroadcastPackets", "controlLoopSchemaType": "VNF", "policyScope": "DCAE", "policyName": "DCAE.Config_tca-hi-lo", "policyVersion": "v0.0.1",
"thresholds": [ { "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a", "version": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta", "thresholdValue": 300, "direction": "LESS_OR_EQUAL", "severity": "MAJOR", "closedLoopEventStatus": "ONSET" }, { "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a", "version": "1.0.2", "fieldPath": "$.event.measurementsForVfScalingFields.vNicUsageArray[*].receivedTotalPacketsDelta", "thresholdValue": 700, "direction": "GREATER_OR_EQUAL", "severity": "CRITICAL", "closedLoopEventStatus": "ONSET" } ] } ]
}" |
controlLoop: version: 2.0.0 controlLoopName: ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a trigger_policy: unique-policy-id-1-modifyConfig timeout: 1200 abatement: false policies: - id: unique-policy-id-1-modifyConfig name: modify packet gen config description: actor: APPC recipe: ModifyConfig target: # TBD - Cannot be known until instantiation is done resourceID: Eace933104d443b496b8.nodes.heat.vpg type: VNF retry: 0 timeout: 300 success: final_success failure: final_failure failure_timeout: final_failure_timeout failure_retries: final_failure_retries failure_exception: final_failure_exception failure_guard: final_failure_guard |
{ "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca", "policyVersion": "1.0.0.5", "policyName": "vFirewall", "policyScope": "resource=SampleResource,service=SampleService,type=SampleType,closedLoopControlName=SampleClosedLoop", "target_type": "VNF", "AAI": { "generic-vnf.vnf-name": "zdfw1fwl01fwl02" }, "closedLoopAlarmStart": 1484855291527925, "closedLoopEventStatus": "ONSET", "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a", "version": "1.0.2", "target": "generic-vnf.vnf-name", "requestID": "8c1b8bd8-06f7-493f-8ed7-daaa4cc481bc", "from": "DCAE" } |
https://{aai}/aai/v11/network/generic-vnfs/generic-vnf?vnf-name=zdfw1fwl01fwl02 |
*TODO |
{ "CommonHeader": { "TimeStamp": 1500997725298, "APIver": "1.01", "RequestID": "664be3d2-6c12-4f4b-a3e7-c349acced200", "RequestTrack": [], "Flags": [] }, "Action": "ModifyConfig", "Payload": { "generic-vnf.vnf-id": "fw0001vm001fw001", "pg-streams": { "pg-stream": [ { "id": "fw_udp1", "is-enabled": "true" }, { "id": "fw_udp2", "is-enabled": "true" }, { "id": "fw_udp3", "is-enabled": "true" }, { "id": "fw_udp4", "is-enabled": "true" }, { "id": "fw_udp5", "is-enabled": "true" }] } } } |
ACCEPT response { "Status": { "Value": "ACCEPTED", "Code": "100" }, "Payload": { "pg-streams": "{\\\"pg-streams\\\": {\\\"pg-stream\\\":[{\\\"id\\\":\\\"fw_udp1\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp2\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp3\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp4\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp5\\\", \\\"is-enabled\\\":\\\"true\\\"}]}}", "generic-vnf.vnf-id": "fw0001vm001fw001" }, "CommonHeader": { "TimeStamp": "1493841850199", "APIver": "1.01", "RequestID": "664be3d2-6c12-4f4b-a3e7-c349acced200", "SubrequestID": null, "OriginatorID": null } } SUCCESS response { "Status": { "Value": "SUCCESS", "Code": "400" }, "Payload": { "pg-streams": "{\\\"pg-streams\\\": {\\\"pg-stream\\\":[{\\\"id\\\":\\\"fw_udp1\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp2\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp3\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp4\\\", \\\"is-enabled\\\":\\\"true\\\"},{\\\"id\\\":\\\"fw_udp5\\\", \\\"is-enabled\\\":\\\"true\\\"}]}}", "generic-vnf.vnf-id": "fw0001vm001fw001" }, "CommonHeader": { "TimeStamp": "1493841850199", "APIver": "1.01", "RequestID": "664be3d2-6c12-4f4b-a3e7-c349acced200", "SubrequestID": null, "OriginatorID": null } } |