Updated README with cleaner instructions 35/13435/2
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Tue, 23 May 2023 09:31:29 +0000 (11:31 +0200)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Mon, 29 May 2023 09:35:09 +0000 (11:35 +0200)
Change-Id: Iac797372e88e71afb1322e2bd0e71feba4535f21
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
README.md

index 03d6054..6759fc0 100644 (file)
--- 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=<OSM_IP_ADDRESS>
+export VIM_TARGET=<VIM_REGISTERED_AT_OSM>
+export VIM_MGMT_NET=<NAME_OF_THE_MGMT_NETWORK_IN_THE_VIM>
+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 <testing_tags> 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:
+
+- <path_to_reports> [OPTIONAL]: the absolute path to reports location in the host
+- <path_to_clouds.yaml> [OPTIONAL]: the absolute path to the clouds.yaml file in the host
+- <path_to_sdncs.yaml> [OPTIONAL]: the absolute path to the sdncs.yaml file in the host
+- <path_to_kubeconfig> [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 <osmclient_version>` [OPTIONAL]: It is used to specify a particular osmclient version. Default: latest
 - `-p <package_branch>` [OPTIONAL]: OSM packages repository branch. Default: master
 - `-t <testing_tags>` [OPTIONAL]: Robot tests tags. [sanity, regression, particular_test]. Default: sanity
 
-Volumes:
 
-- <path_to_reports> [OPTIONAL]: It is the absolute path to reports location in the host
-- <path_to_clouds.yaml> [OPTIONAL]: It is the absolute path to the clouds.yaml file in the host
-- <path_to_sdncs.yaml> [OPTIONAL]: It is the absolute path to the sdncs.yaml file in the host
-- <path_to_kubeconfig> [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 <env_file> \
-       -v <path_to_reports>:/reports osmtests \
-       -v <path_to_clouds.yaml>:/robot-systest/clouds.yaml \
-       -v <path_to_sdncs.yaml>:/robot-systest/sdncs.yaml \
-       -v <path_to_kubeconfig>:/root/.kube/config \
-       -o <osmclient_version> \
-       -p <package_branch> \
-       -t <testing_tags>
+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 <testing_tags> 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 <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 <tag_01> -i <tag_02> testsuite/