Bug 2327 fix to verify ipaddress in sol003_02 testsuite
[osm/tests.git] / README.md
index aa3b58c..7be9050 100644 (file)
--- a/README.md
+++ b/README.md
@@ -17,116 +17,127 @@ limitations under the License
 
 # OSM test automation project - osm/tests
 
 
 # OSM test automation project - osm/tests
 
-This repository contains tools and configuration files for testing and automation needs of OSM projet
+This repository contains tools and configuration files for testing and automation needs of OSM project.
 
 ## Prerequisites
 
 
 ## 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. How to run tests using OSM docker images
 
 
-This bash script can be used to setup your environment to execute the tests.
+### Configure the environment file
+
+Create a file `envconfig.rc` copying from `envconfig-local.rc` and set the required variables.
 
 
-```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}
+```
+OSM_HOSTNAME=<OSM_IP_ADDRESS>
+VIM_TARGET=<VIM_REGISTERED_AT_OSM>
+VIM_MGMT_NET=<NAME_OF_THE_MGMT_NETWORK_IN_THE_VIM>
+OS_CLOUD=<OPENSTACK_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
+### Run the tests
 
 ```bash
 
 ```bash
-# VIM Setup
-OS_USERNAME=<openstack_username>
-OS_PASSWORD=<openstack_password>
-OS_TENANT_NAME=<openstack_tenant_name>
-OS_AUTH_URL=<openstack_authorization_url>
-OS_TENANT_ID=<openstack_tenant_id>
-
-# OSM Setup
-OSM_HOSTNAME=<osm_ip_address>
-VIM_TARGET=<osm_vim_name>
-VIM_MGMT_NET=<osm_vim_mgmt_name>
-
-# Clouds file datacenter
-OS_CLOUD=<datacenter_in_clouds_file>
-# SDNCs file
-OS_SDNC=<SDN_controller_in_sdncs_file>
-
-# K8S config file
-K8S_CREDENTIALS=<path_to_kubeconfig>
-
-# The following set of environment variables will be used in host
-# of the robot framework. Not needed for docker execution
+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 \
+           opensourcemano/tests:testing-daily \
+           -t sanity
+```
 
 
-# Folder where Robot tests are stored
-ROBOT_DEVOPS_FOLDER=robot-systest
+You can use a different robot tag instead of `sanity`. The whole list of tags are gathered below in this README.
 
 
-# Folder to save alternative DUT environments (optional)
-ENVIRONMENTS_FOLDER=environments
+## How to build docker container for tests and run tests from there
 
 
-# Folder where all required packages are stored
-PACKAGES_FOLDER=osm-packages
+### Create the docker container
 
 
-# Folder where test results should be exported
-ROBOT_REPORT_FOLDER=results
+```bash
+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
 
 ```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
-
-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 folder `robot-systest`, including all libraries and testuites, and will execute the testsuite `sol003_01`:
 
 ```bash
 
 ```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/robot-systest:/robot-systest \
+           -v ~/tests/reports:/robot-systest/reports \
+           -v ~/osm-packages:/robot-systest/osm-packages \
+           opensourcemano/tests:testing-daily \
+           -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
 
 
 - `--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:
+## How to run tests from a host
 
 
-- <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
+In general, testing from docker images is the best way if you want to develop for OSM. However, sometimes it could be useful to run tests directly from the host.
 
 
-Then, run the tests:
+### Install dependencies
+
+This bash script can be used to setup your environment to execute the tests.
 
 ```bash
 
 ```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 `envconfig.rc` copying from `envconfig-local.rc` and set the required variables (in this case, the use of `export` is mandatory).
+
+```
+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 OS_CLOUD=<OPENSTACK_CLOUD>    # OpenStack Cloud defined in $HOME/.config/openstack/clouds.yaml or in /etc/openstack/clouds.yaml
+export K8S_CREDENTIALS= # path to the kubeconfig file of the K8s cluster to be tested
+export OCI_REGISTRY_URL= # URL of the OCI registry where helm charts used in test packages are stored. 
+export OCI_REGISTRY_USER= # User of the OCI registry
+export OCI_REGISTRY_PASSWORD= # Password of the OCI registry
+```
+
+### Running the tests
+
+```bash
+source envconfig.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
 
 ```bash
 git clone https://osm.etsi.org/gerrit/osm/devops
@@ -156,9 +167,7 @@ docker run --rm=true -t osmtests --env-file <env_file> \
 
 ## Test tags
 
 
 ## 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/
 
 ```bash
 robot -i <tag_01> -i <tag_02> testsuite/
@@ -176,17 +185,17 @@ The following tags exist for each testsuite:
   - `cluster_relations`: `basic_11`, `basic_13`, `basic_14`
   - `cluster_epa`: `epa_01`, `epa_02`, `epa_03`, `epa_04`, `epa_05`
   - `cluster_k8s`: `k8s_01`, `k8s_02`, `k8s_03`, `k8s_04`, `k8s_05`, `k8s06`,
   - `cluster_relations`: `basic_11`, `basic_13`, `basic_14`
   - `cluster_epa`: `epa_01`, `epa_02`, `epa_03`, `epa_04`, `epa_05`
   - `cluster_k8s`: `k8s_01`, `k8s_02`, `k8s_03`, `k8s_04`, `k8s_05`, `k8s06`,
-    `k8s_07`, `k8s_08`, `k8s_09`, `k8s_10`, `k8s_11`, `sa_08`
+    `k8s_07`, `k8s_08`, `k8s_09`, `k8s_10`, `k8s_11`, `k8s_12`, `k8s_13`, `sa_08`
   - `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_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`
+  - `cluster_osm_rest`: `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
 - 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
-  stage3 to be successfully verified by Jenkins, currently `basic_07`,
-  `basic_11`, `k8s_03`, `k8s_04`, `sa_02`, `hackfest_basic`, `hackfest_cloudinit`
+  stage3 to be successfully verified by Jenkins, currently `k8s_04`,
+  `sa_02`, `hackfest_basic`, `hackfest_cloudinit`
 
 In addition, the tag "cleanup" exists in those tests that perform
 any deletion. In that way, it can be invoked to retry the deletion if
 
 In addition, the tag "cleanup" exists in those tests that perform
 any deletion. In that way, it can be invoked to retry the deletion if
@@ -248,5 +257,5 @@ We use [SemVer](http://semver.org/) for versioning. For the versions available,
 
 ## License
 
 
 ## License
 
-This project is licensed under the Apache2 License - see the [LICENSE.md](LICENSE) file for details
+This project is licensed under the Apache2 License - see the [LICENSE](LICENSE) file for details