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-891Getting issue details... STATUS
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: https://git-highstreet-technologies.com/highstreet/CICD_environment
- 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 basport 55000 dir robot-nts-manager
- Integration test environment
- 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
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
- Create docker network
- 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 -
- Create a mountpoint in SDNR to mount the NTS Manager with the following parameters -
{
"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"
}
}
}
- Set the URL to - http://<SDNR-IP>:<SDNR-PORT>/restconf/config/network-topology:network-topology/topology/topology-netconf/node/<NTS Manager Mountpoint Name>/yang-ext:mount/network-topology-simulator:simulator-config
- Submit the request
- A "docker ps" should display new docker container(s) created with 10 ports per container, representing the simulated device(s)