X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=README.md;h=6759fc0f8180f6d42da98ec6ac40a55c579a0829;hb=062faaf5ba6a9523abbb074fa765893330699637;hp=7eff36f0c74702a7c4a048ae6b2094939f2cf537;hpb=434ec965d5b598351e609cbca3200042b9677e49;p=osm%2Ftests.git diff --git a/README.md b/README.md index 7eff36f..6759fc0 100644 --- a/README.md +++ b/README.md @@ -21,114 +21,99 @@ This repository contains tools and configuration files for testing and automatio ## Prerequisites -- **Robot Framework** -- **Packages**: ssh ping yq git -- **Python3 packages**: haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary robotframework-sshlibrary -- Clone **osm-packages** from gitlab -- Environment config file for your infrastructure `envfile.rc` +- OSM running +- VIM already registered in OSM +- K8s cluster already registered in OSM (for tests involving a K8s cluster) -## Installing +## Quickstart (run tests using docker) -This bash script can be used to setup your environment to execute the tests. +### Configure the environment file -```bash -python3 -m pip install -r requirements.txt -python3 -m pip install -r requirements-dev.txt -# Download community packages -PACKAGES_FOLDER=osm-packages -git clone https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git ${PACKAGES_FOLDER} +``` +export OSM_HOSTNAME= +export VIM_TARGET= +export VIM_MGMT_NET= +export K8S_CREDENTIALS= # path to the kubeconfig file of the K8s cluster to be tested +export OS_CLOUD= # OpenStack Cloud defined in $HOME/.config/openstack/clouds.yaml or in /etc/openstack/clouds.yaml ``` -Configure a file `envfile.rc` copying from `envconfig-local.rc` and set the required variables +### Create the docker container ```bash -# VIM Setup -OS_USERNAME= -OS_PASSWORD= -OS_TENANT_NAME= -OS_AUTH_URL= -OS_TENANT_ID= - -# OSM Setup -OSM_HOSTNAME= -VIM_TARGET= -VIM_MGMT_NET= - -# Clouds file datacenter -OS_CLOUD= -# SDNCs file -OS_SDNC= - -# K8S config file -K8S_CREDENTIALS= - -# The following set of environment variables will be used in host -# of the robot framework. Not needed for docker execution - -# Folder where Robot tests are stored -ROBOT_DEVOPS_FOLDER=robot-systest - -# Folder to save alternative DUT environments (optional) -ENVIRONMENTS_FOLDER=environments - -# Folder where all required packages are stored -PACKAGES_FOLDER=osm-packages - -# Folder where test results should be exported -ROBOT_REPORT_FOLDER=results +docker build -f docker/Dockerfile -t osmtests . ``` -## Running the tests - -### From the host machine - -If you have installed all the dependecnies, the way of executing the tests is via the following command: +### Run the tests ```bash -source envfile.rc -robot -d reports -i testsuite/ +docker run --rm=true --name tests -t --env-file envconfig.rc \ + -v ~/.config/openstack/clouds.yaml:/etc/openstack/clouds.yaml \ + -v ~/tests/reports:/robot-systest/reports \ + osmtests \ + -t sol003_01 ``` -### From docker container +You can use a different robot tag instead of `sol003_01`. The whole list of tags are gathered below in this README. -It is possible to run the tests directly from the repository or using a docker container with the tests. +## How to mount local tests folder for developing purposes -Create the docker container: +The following line will mount the required files for SOL003_01 testuite and will execute the test `sol003_01` ```bash -docker build -f docker/Dockerfile -t osmtests . +docker run --rm=true --name tests -t --env-file envconfig.rc \ + -v ~/.config/openstack/clouds.yaml:/etc/openstack/clouds.yaml \ + -v ~/tests/reports:/robot-systest/reports \ + -v ~/tests/robot-systest/lib/sol003_common_lib.robot:/robot-systest/lib/sol003_common_lib.robot \ + osmtests \ + -t sol003_01 ``` -Options: +Relevant volumes to be mounted are: + +- [OPTIONAL]: the absolute path to reports location in the host +- [OPTIONAL]: the absolute path to the clouds.yaml file in the host +- [OPTIONAL]: the absolute path to the sdncs.yaml file in the host +- [OPTIONAL]: the kubeconfig file to be used for k8s clusters + +Other relevant options to run tests are: - `--env-file`: It is the environmental file where is described the OSM target and VIM - `-o ` [OPTIONAL]: It is used to specify a particular osmclient version. Default: latest - `-p ` [OPTIONAL]: OSM packages repository branch. Default: master - `-t ` [OPTIONAL]: Robot tests tags. [sanity, regression, particular_test]. Default: sanity -Volumes: -- [OPTIONAL]: It is the absolute path to reports location in the host -- [OPTIONAL]: It is the absolute path to the clouds.yaml file in the host -- [OPTIONAL]: It is the absolute path to the sdncs.yaml file in the host -- [OPTIONAL]: It is the kubeconfig file to be used for k8s clusters +## How to run tests from a host -Then, run the tests: +### Installing + +This bash script can be used to setup your environment to execute the tests. ```bash -docker run --rm=true -t osmtests --env-file \ - -v :/reports osmtests \ - -v :/robot-systest/clouds.yaml \ - -v :/robot-systest/sdncs.yaml \ - -v :/root/.kube/config \ - -o \ - -p \ - -t +sudo apt-get update +sudo apt-get install ssh ping yq git +# Python packages used for the tests +python3 -m pip install -r requirements.txt +python3 -m pip install -r requirements-dev.txt +# Download community packages +git clone https://osm.etsi.org/gitlab/vnf-onboarding/osm-packages.git ``` -### From an environment identical to OSM CICD +### Configure the environment + +Create a file `envfile.rc` copying from `envconfig-local.rc` and set the required variables. -````bash +### Running the tests + +```bash +source envfile.rc +mkdir reports +robot -d reports -i testsuite/ +``` + +## How to run tests from an environment identical to OSM CICD + +```bash git clone https://osm.etsi.org/gerrit/osm/devops git clone https://osm.etsi.org/gerrit/osm/IM git clone https://osm.etsi.org/gerrit/osm/osmclient @@ -156,9 +141,7 @@ docker run --rm=true -t osmtests --env-file \ ## Test tags -All tests in the testsuites have tags. Tags allow to run only a set of tests -identified by a tag. Several tags can be specified when running robot in the -following way: +All tests in the testsuites have tags. Tags allow to run only a set of tests identified by a tag. Several tags can be specified when running robot in the following way: ```bash robot -i -i testsuite/ @@ -180,6 +163,8 @@ The following tags exist for each testsuite: - `cluster_k8s_charms`: `k8s_05`, `k8s_06` - `cluster_sa`: `sa_01`, `sa_02`, `sa_07` - `cluster_slices`: `slice_01`, `slice_02` + - `cluster_heal`: `heal_01`, `heal_02`, `heal_03`, `heal_04` + - `cluster_sol003`: `sol003_01` - daily: for all testsuites that will run in the daily job - regression: for all testsuites that should pass in the current stable branch - sanity: for all testsuites that should be passed by each commit in the @@ -192,11 +177,11 @@ the tests were forcefully stopped. - For helping in the migration tests and other scenarios in which you don't want to destroy the deployments immediately, the following tags are used: - - prepare: for the tests that are used to deploy the network + - `prepare`: for the tests that are used to deploy the network services under test - - verify: for the tests that perform the actual testing, or changes for + - `verify`: for the tests that perform the actual testing, or changes for additional verifications (e.g. scaling). - - cleanup: already described above. + - `cleanup`: already described above. So, for instance, you could first deploy a number of network services executing the tests with "prepare" tag, migrate to another OSM version, and then