Development Integration test
Overview
For testing SDN-R with its basic use cases an automated test setup should be used.
Beside "SDN-R Development integratoin test" there is the "SDN-R Solution integration test"
Related issue: SDNC-891: Integration of SDN-R, DMaaP, VES, AAFClosed
Requirements
Simple, run on single ubuntu server
Use Simulators instead of devices
Use as far as possible real ONAP server components, if not possible test tools, like VES-test-collector
Is compatible with ONAP integration tests setup
Test setup
Name/IP/Port to access from jenkins/robotframework
Host Server Port | Component | Name (docker,dns) |
---|---|---|
8181, 8101 | SDN-R Web | itsdnr |
9200 | Elasticsearch 6.8.5 ←Wrong version | itsdnrdb |
8300 | NTSim ORAN Management | NTS_Manager |
50000 .. 50009 | 10 NTSim ORAN devices | generated names |
8323 | Sim 12600 is "2230" | netconfserversimulator |
8080 | vescollector | |
2181 | zookeeper | |
9092 | kafka | |
3904-3905 | onap-dmaap |
Environment
Location
Repository for robot test scripts and test plans: https://git-highstreet-technologies.com/highstreet/onap-csit/tree/master/plans/sdnr/local
Parts used for integration test are in subdirectory: "local"
Repository for setup of integration test: https://git-highstreet-technologies.com/highstreet/ccsdk/tree/master/integration
OSNL Based (https://www.osn-lab.com/) access required to be able to follow the links below
Jenkins/robot framework scripts: http://10.20.6.10:30080/view/ONAP_SDNR_WT_FRANKFURT/job/60_device_onboarding_Frankfurt/
Docker-image: http://10.20.6.10:30000/v2/highstreet/robot/tags/list
ntsim: https://github.com/Melacon/ntsim/tree/master/ntsimulator
Infrastructure Basic information
Server "Test VM": sdnr-frankfurt-int 10.20.5.5 provides docker based test environment
Static environment for otto
oran NTS_Manager 8300 baseport 50000 dir 3gppsim
gran NTS_Manager_3GPP 9300 baseport 60000 dir oransim
Static environment for frankfurt development build robot
oran Robot_NTS_Manager 8200 baseport 55000 dir robot-nts-manager
Integration test environment
Jenkins entry: INT_SDNC_Frankfurt
Port ranges 8310 .. 8499, 40000 .. 49999
ntssim oran 8310, 40000 .. 40019
Docker internal static IP assignment in "integration" network (172.40.0.0/16) with names for /etc/hosts of docker host.
172.40.0.20 sdnrinit
172.40.0.21 sdnr
172.40.0.22-24 sdnr-0, sdnr-1, sdnr-2
172.40.0.30 sdnrdb
172.40.0.40 Netconfserversimulator
172.40.0.60 Zookeeper
172.40.0.70 Kafka
172.40.0.80 DMaaP
172.40.0.90 VESCollector
NTSim/ORan is using its own network. Communication takes place over the host IP and the mapped ports.
172.17.02 container with 10 ORan devices
Access to services from outsite are running over the host IP. See table.
Network setup
Development (old environment)
docker for networking, run containers
docker-compose starting a structure
bash initialization
manual execution of development tests
Test cases
Executed by Jenkins (http://10.20.6.10:30080/view/INT_SDNC_FRANKFURT/) job: INT_SDNC_Frankfurt
Test case "Mount devices" (basic) >available<
Startup
Mount NTSim manager
Create and mount two NTSim/"oran" devices
Test steps
Verify that mount of the two devices was successfully done
Test case "Mount and get alarms for 50 devices" (load)
Startup
Mount 10 devices at a time
Mount with delay next 10 devices till we have the 50
Test seps
wait till startup is done
count the current alarms
Test Ok if current alarms count in a expected range.
Test case "Inventory" (functional)
Startup
Create docker network
a static network setup with static IPs for the containers
add name to hosts and use this names
start docker - Simulator (e.g. Sim12600 with equipment)
start docker - DB
start docker - SDNC
Test steps
mount sim12600
Read over the RESTCONF Interface via data-provider the equipment
Compare if it is the expected data
Network Topology Simulator
Instantiating NetConf simulators
New NetConf simulators can be instantiated using the NTS Manager as follows -
Create a mountpoint in SDNR to mount the NTS Manager with the following parameters -
Name - "NTS_Manager" (No double quotes. Any name is OK, see below)
IP Address - NTS Manager Docker container IP or Host IP of the Docker container
Port - NTS Manager Docker container port or the port mapped to the Host
Username - netconf
Password - netconf
Next, Use any REST Client to send PUT requests
Set the "content-type" to "Application/json"
Copy the following json into the body of the REST request -
{
"simulator-config": {
"mounted-devices": 0,
"notification-config": {
"fault-notification-delay-period": 0,
"is-netconf-available": true,
"is-ves-available": true,
"ves-heartbeat-period": 0
},
"simulated-devices": 0, # Toggle this value between 0 and any number greater than 0 to create and remove docker containers that send pnfRegistration VES messages to a VES Collector whose IP is # configured using the "ves-endpoint-ip" field below
"ves-endpoint-details": {
"ves-endpoint-port": 8080,
"ves-registration": true,
"ves-endpoint-auth-method": "no-auth",
"ves-endpoint-ip": "10.20.5.5"
},
"controller-details": {
"controller-ip": "172.40.0.21",
"controller-port": 8181,
"controller-username": "admin",
"controller-password": "admin"
}
}
}
Submit the request
A "docker ps" should display new docker container(s) created with 10 ports per container, representing the simulated device(s)