This repository contains integration tests for SONATA's Service Platform. They have been divided in different subprojects depenending on the modules and the features to be tested. Designed to run in Jenkins, each project consists of:
All the integration tests of this repository are described with more details in the Continuous Integration/Continuous Delivery section of the SONATA wiki, defining, for each test, the list of involved componentes, the list of involved US and a diagram describing the workflow of the test.
Integration tests between the Business Support System and the Gatekeeper. The tested features are:
Integration test betwen the Gatekeeper and the Catalogue for packages. The scripts included in this project test that:
Tests for the Graphical User Interface. This set of integration test procedures consist of several Grunt tasks (http://gruntjs.com) which perform connectivity checks between GK-GUI implementation with Gatekeeper and Monitoring server. The features tested are:
Tests for the plugin management functionalities of MANO framework. It checks the correct registration and unregistration of plugins from the SON MANO framwork by implementing a testing plugin.
Integration tests for the Monitoring of the Service Platform. This test procedure checks the connectivity between Monitoring server and Infrastructure components (SLM, Monitoring probes and Message Broker). The tests are based on a VNF with a monitoring rule, which is triggered in order to produce an alarm. The list of tested features is:
Inntegration tests for the SDK. The SDK is composed by a lot of tools, and supports a wide set of workflows. In this project the CLI is tested. It consists of different independent tools, which are the son-workspace, the son-package and the son-publish
The test starts with an empty filesystem, creates a workspace, a project, and packages it, following a set of orderes steps:
Integration tests covering the communication between the Gatekeeper and the MANO framework when deploying a new service. When user requests to Business Support System (BSS) to instantiate a new service, Gatekeeper passes the Network Service Descriptor(NSD) and the Virtual Network Functions Descriptors (VNFDs) to the MANO framework in order to request a service instantiation. The tests included in this project check following assumptions after requesting a service instantiation to the Gatekeeper:
Integation tests between the Service Lifecycle Manager (SLM) and the Infrastructure Adapter. Upon receiving a service deployment request, the SLM would contact the Infrastrucure Adapter to get the list of VIMs and their resources. After that, a basic placement would be executed. The tests included in this project perform following checks:
Integration tests between the Service Lifecycle Manager and the NSR/VNFR Repositories. After deploying a service upon a service deployment request, SLM should store the Network Service Record and the Virtual Network Function Records in the repository, building them from the Infrastructure Adapter response and the according NSD and VNDs. It also triggers the monitoring process by sending a custom message to the Monitoring Manager. The test included in this task triggers this process simulating an Infrastructure Adaptor response to the service deployment request and it's checked that:
Service Platform instantiation. This test tries to deploy all major components of the service platform. The goal is to verify that all components are in a deployable state and can directly interact with each other after they have been deployed on a single system.
Tests for the RabbitMQ communication between components of the SONATA Service Platform. Some of the modules composing the SONATA SP communicate through RabbitMQ. The script included in this project connects to the RabbitMQ server and prints all messages that the different modules exchange.
NGINX is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. NGINX is known for its high performance, stability, rich feature set, simple configuration, and low resource consumption. This project contains an eample on how to deploy it in a docker by listening requests on port 80.
In order to contribute to repository, you'll need to:
The license of the SONATA Integration Tests is Apache 2.0