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 - Getting 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 PortComponentName (docker,dns)
8181, 8101SDN-R Webitsdnr
9200Elasticsearch 6.8.5 ←Wrong versionitsdnrdb
8300NTSim ORAN ManagementNTS_Manager
50000 .. 5000910 NTSim ORAN devicesgenerated names
8323Sim 12600 is "2230"netconfserversimulator
8080
vescollector
2181
zookeeper
9092
kafka
3904-3905
onap-dmaap

Environment

Location

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"
                 }
       }
}




  • No labels