Table of Contents |
---|
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:
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Requirements
- Simple, run on single ubuntu serverserver
- Use Simulators for 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
Drawio | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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
...
Standard Ubuntu server
...
networking
run containers
...
execute and manage testcase
...
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
Drawio border true diagramName integrationtest subnetworks simpleViewer false width links auto tbstyle top lbox true diagramWidth 511 revision 1
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
- 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)