Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Table Of Contents

...

Addresses 

Jira Legacy
serverSystem JiraONAP JIRA
serverId4733707d425b2b0a-2057557c-3a0f3c0c-ae5eb515-4fd8aff50176579789cceedb
keyCPS-188

Initial implementation presentation can be found in CPS Developers Team Meeting Recordings


Overview

CSIT (Continuous System and Integration Testing) is expected to be a part of automated verification procedure invoked on review and merge stages.

...

  • Builds an image within a local docker (no publishing)
  • Executes the integration testing using shell script which iswhich 
    • on startup stage - runs creates and starts the docker containers based on image built together with other containers required (using docker-compose),
      ensures the applications application is initialized
    • on test execution stage - executes integration tests test suites using Robot framework
    • on tear down stage  - stops and removes containers running
  • Collects the Robot framework reports

More details are described in following documenton flowProject-specific CSIT structure

CSIT migration notes

Previously all the CSIT tests for all the ONAP projects were allocated in a same repository  integration/csit

Using shared repository did cause organisational difficulties (review approval etc) maintaining the tests, so it was decided to store CSIT tests on a per project basis.

More details: Moving CSIT to project repositories


Implementation approach

Test resources

All the CSIT related resources are allocated in csit/ folder in the project repository root.
The entry point for testing is run-projects-csit.sh shell script

The directory structure:

  • plans/ contains testing plans, each sub-folder represents a separate test plan, contains
    • startup.sh  - serves docker containers startup
    • testplan.txt  - lists test-suits
    • teardown.sh  - serves docker containers stopping and images removal
  • scripts/ contains shell scripts used on tests executions
  • tests/ contains test suits which are processed by folder name (relative to tests folder) taken from testplan.txt

Jenkins jobs

Jenkins jobs configuration is managed using ci-management repository.
Both legacy and new job templates are defined in jjb/integration/integration-templates-csit.yaml

The legacy CSIT job templates are

Code Block
'{project-name}-{stream}-verify-csit-{functionality}'
'{project-name}-{stream}-csit-{functionality}'

New CSIT job templates are

Code Block
'{project-name}-review-verification-maven-{stream}'
'{project-name}-merge-verification-maven-{stream}'

The example of on per project CSIT is ccsdk/distribution project
The associated Jenkins job is described in jjb/ccsdk/ccsdk-csit.yaml

NB. the Jenkins job template publishing Robot Framework reports is the only reason the use of Robot Framework is currently necessary.
It requires job templates update (new templates) in order to use alternative tools. 

Resources