From 437637ceb4f984b3d3d9a0f31201cd171b37efd9 Mon Sep 17 00:00:00 2001 From: garciadeblas Date: Tue, 23 May 2023 11:31:29 +0200 Subject: [PATCH] Updated README with cleaner instructions Change-Id: Iac797372e88e71afb1322e2bd0e71feba4535f21 Signed-off-by: garciadeblas --- README.md | 108 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 63 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index 03d6054..6759fc0 100644 --- a/README.md +++ b/README.md @@ -21,77 +21,97 @@ 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 the environment - -Create a file `envfile.rc` copying from `envconfig-local.rc` and set the required variables. - -## Running the tests +### Create the docker container -### From the host machine +```bash +docker build -f docker/Dockerfile -t osmtests . +``` -If you have installed all the dependencies, 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 +``` + +### Configure the environment + +Create a file `envfile.rc` copying from `envconfig-local.rc` and set the required variables. + +### Running the tests + +```bash +source envfile.rc +mkdir reports +robot -d reports -i testsuite/ ``` -### From an environment identical to OSM CICD +## How to run tests from an environment identical to OSM CICD ```bash git clone https://osm.etsi.org/gerrit/osm/devops @@ -121,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/ -- 2.17.1